diff -Nru deja-dup-7.4/acinclude.m4 deja-dup-10.0/acinclude.m4 --- deja-dup-7.4/acinclude.m4 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/acinclude.m4 2009-06-02 17:48:49.000000000 -0400 @@ -1,4 +1,5 @@ -## acinclude.m4 -*-Shell-script-*- +## -*- Mode: m4; indent-tabs-mode: nil; tab-width: 2 -*- +## ## Copyright (C) 2001 Eazel, Inc. ## Author: Maciej Stachowiak ## Kenneth Christiansen diff -Nru deja-dup-7.4/aclocal.m4 deja-dup-10.0/aclocal.m4 --- deja-dup-7.4/aclocal.m4 2009-02-11 21:13:29.000000000 -0500 +++ deja-dup-10.0/aclocal.m4 2009-06-02 17:51:10.000000000 -0400 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- +# generated automatically by aclocal 1.10.2 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008 Free Software Foundation, Inc. @@ -13,8 +13,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(AC_AUTOCONF_VERSION, [2.61],, -[m4_warning([this file was generated for autoconf 2.61. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, +[m4_warning([this file was generated for autoconf 2.63. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) @@ -55,10 +55,11 @@ AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files]) AC_ARG_ENABLE(schemas-install, - [ --disable-schemas-install Disable the schemas installation], + AC_HELP_STRING([--disable-schemas-install], + [Disable the schemas installation]), [case ${enableval} in yes|no) ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-schemas-install) ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-install]) ;; esac]) AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no]) ]) @@ -221,7 +222,7 @@ fi[]dnl ])# PKG_CHECK_MODULES -# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -236,7 +237,7 @@ [am__api_version='1.10' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.10.1], [], +m4_if([$1], [1.10.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -250,12 +251,12 @@ # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.10.1])dnl +[AM_AUTOMAKE_VERSION([1.10.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- @@ -505,57 +506,68 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 3 +#serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done done -done +} ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -849,13 +861,13 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 3 +# serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- @@ -872,7 +884,7 @@ # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- diff -Nru deja-dup-7.4/applet/applet.c deja-dup-10.0/applet/applet.c --- deja-dup-7.4/applet/applet.c 2009-01-29 15:50:09.000000000 -0500 +++ deja-dup-10.0/applet/applet.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,23 +1,80 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "applet.h" +#include +#include #include #include #include #include -#include -#include -#include "StatusIcon.h" +#include +#include +#include + + +#define TYPE_DEJA_DUP_APPLET (deja_dup_applet_get_type ()) +#define DEJA_DUP_APPLET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEJA_DUP_APPLET, DejaDupApplet)) +#define DEJA_DUP_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEJA_DUP_APPLET, DejaDupAppletClass)) +#define IS_DEJA_DUP_APPLET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEJA_DUP_APPLET)) +#define IS_DEJA_DUP_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEJA_DUP_APPLET)) +#define DEJA_DUP_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEJA_DUP_APPLET, DejaDupAppletClass)) + +typedef struct _DejaDupApplet DejaDupApplet; +typedef struct _DejaDupAppletClass DejaDupAppletClass; +typedef struct _DejaDupAppletPrivate DejaDupAppletPrivate; + +#define TYPE_STATUS_ICON (status_icon_get_type ()) +#define STATUS_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STATUS_ICON, StatusIcon)) +#define STATUS_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STATUS_ICON, StatusIconClass)) +#define IS_STATUS_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STATUS_ICON)) +#define IS_STATUS_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STATUS_ICON)) +#define STATUS_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STATUS_ICON, StatusIconClass)) +typedef struct _StatusIcon StatusIcon; +typedef struct _StatusIconClass StatusIconClass; + +/* + Déjà Dup Applet + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _DejaDupApplet { + GObject parent_instance; + DejaDupAppletPrivate * priv; +}; + +struct _DejaDupAppletClass { + GObjectClass parent_class; +}; +GType deja_dup_applet_get_type (void); enum { DEJA_DUP_APPLET_DUMMY_PROPERTY }; +static gboolean deja_dup_applet_show_version; static gboolean deja_dup_applet_show_version = FALSE; static gboolean deja_dup_applet_handle_console_options (gint* status); +StatusIcon* status_icon_new (void); +StatusIcon* status_icon_construct (GType object_type); +GType status_icon_get_type (void); static void _gtk_main_quit_status_icon_done (StatusIcon* _sender, gpointer self); +gint deja_dup_applet_main (char** args, int args_length1); +DejaDupApplet* deja_dup_applet_new (void); +DejaDupApplet* deja_dup_applet_construct (GType object_type); +DejaDupApplet* deja_dup_applet_new (void); static gpointer deja_dup_applet_parent_class = NULL; static void deja_dup_applet_finalize (GObject* obj); @@ -40,11 +97,11 @@ gint deja_dup_applet_main (char** args, int args_length1) { - GError * inner_error; + GError * _inner_error_; GOptionContext* context; gint status; - DejaDupDuplicityInfo* _tmp3; - inner_error = NULL; + DejaDupDuplicityInfo* _tmp3_; + _inner_error_ = NULL; textdomain (GETTEXT_PACKAGE); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); @@ -54,8 +111,8 @@ g_option_context_add_main_entries (context, DEJA_DUP_APPLET_options, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (FALSE)); { - g_option_context_parse (context, &args_length1, &args, &inner_error); - if (inner_error != NULL) { + g_option_context_parse (context, &args_length1, &args, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch9_g_error; goto __finally9; } @@ -64,51 +121,52 @@ __catch9_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - char* _tmp0; - gint _tmp1; - _tmp0 = NULL; - g_printerr ("%s\n\n%s", e->message, _tmp0 = g_option_context_get_help (context, TRUE, NULL)); - _tmp0 = (g_free (_tmp0), NULL); - return (_tmp1 = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1); + char* _tmp0_; + gint _tmp1_; + _tmp0_ = NULL; + g_printerr ("%s\n\n%s", e->message, _tmp0_ = g_option_context_get_help (context, TRUE, NULL)); + _tmp0_ = (g_free (_tmp0_), NULL); + return (_tmp1_ = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1_); } } __finally9: - if (inner_error != NULL) { + if (_inner_error_ != NULL) { (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return 0; } status = 0; if (!deja_dup_applet_handle_console_options (&status)) { - gint _tmp2; - return (_tmp2 = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2); + gint _tmp2_; + return (_tmp2_ = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2_); } gtk_init (&args_length1, &args); /* to open display ('cause we passed false above)*/ notify_init (g_get_application_name ()); gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), THEME_DIR); gtk_window_set_default_icon_name (PACKAGE); - _tmp3 = NULL; - deja_dup_duplicity_info_check_duplicity_version (_tmp3 = deja_dup_duplicity_info_get_default (), NULL); - (_tmp3 == NULL) ? NULL : (_tmp3 = (g_object_unref (_tmp3), NULL)); + _tmp3_ = NULL; + deja_dup_duplicity_info_check_duplicity_version (_tmp3_ = deja_dup_duplicity_info_get_default (), NULL); + (_tmp3_ == NULL) ? NULL : (_tmp3_ = (g_object_unref (_tmp3_), NULL)); /* Try to claim bus, else don't run. If the regularly scheduled backup occurs while user is doing a manual backup, we don't want to run. We'll try again the next day.*/ if (deja_dup_set_bus_claimed ("operation", TRUE)) { StatusIcon* icon; - gint _tmp4; + gint _tmp4_; icon = status_icon_new (); g_signal_connect (icon, "done", (GCallback) _gtk_main_quit_status_icon_done, NULL); + deja_dup_initialize (); gtk_main (); deja_dup_set_bus_claimed ("operation", FALSE); - return (_tmp4 = 0, (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp4); + return (_tmp4_ = 0, (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp4_); } else { - gint _tmp5; - return (_tmp5 = 1, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp5); + gint _tmp5_; + return (_tmp5_ = 1, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp5_); } (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)); } @@ -122,7 +180,7 @@ /* Déjà Dup Applet - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 diff -Nru deja-dup-7.4/applet/applet.h deja-dup-10.0/applet/applet.h --- deja-dup-7.4/applet/applet.h 2009-01-29 15:50:09.000000000 -0500 +++ deja-dup-10.0/applet/applet.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,60 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __APPLET_H__ -#define __APPLET_H__ - -#include -#include -#include -#include - -G_BEGIN_DECLS - - -#define TYPE_DEJA_DUP_APPLET (deja_dup_applet_get_type ()) -#define DEJA_DUP_APPLET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEJA_DUP_APPLET, DejaDupApplet)) -#define DEJA_DUP_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEJA_DUP_APPLET, DejaDupAppletClass)) -#define IS_DEJA_DUP_APPLET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEJA_DUP_APPLET)) -#define IS_DEJA_DUP_APPLET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEJA_DUP_APPLET)) -#define DEJA_DUP_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEJA_DUP_APPLET, DejaDupAppletClass)) - -typedef struct _DejaDupApplet DejaDupApplet; -typedef struct _DejaDupAppletClass DejaDupAppletClass; -typedef struct _DejaDupAppletPrivate DejaDupAppletPrivate; - -/* - Déjà Dup Applet - © 2008—2009 Michael Terry - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -struct _DejaDupApplet { - GObject parent_instance; - DejaDupAppletPrivate * priv; -}; - -struct _DejaDupAppletClass { - GObjectClass parent_class; -}; - - -gint deja_dup_applet_main (char** args, int args_length1); -DejaDupApplet* deja_dup_applet_construct (GType object_type); -DejaDupApplet* deja_dup_applet_new (void); -GType deja_dup_applet_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/applet/applet.vala deja-dup-10.0/applet/applet.vala --- deja-dup-7.4/applet/applet.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/applet/applet.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup Applet - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -75,8 +75,9 @@ // We'll try again the next day. if (DejaDup.set_bus_claimed("operation", true)) { var icon = new StatusIcon(); - icon.done += Gtk.main_quit; + icon.done.connect(Gtk.main_quit); + DejaDup.initialize(); Gtk.main(); DejaDup.set_bus_claimed("operation", false); diff -Nru deja-dup-7.4/applet/Makefile.am deja-dup-10.0/applet/Makefile.am --- deja-dup-7.4/applet/Makefile.am 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/applet/Makefile.am 2009-06-02 17:48:48.000000000 -0400 @@ -1,4 +1,4 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- bin_PROGRAMS = deja-dup-applet @@ -9,6 +9,7 @@ --pkg gconf-2.0 \ --pkg libnotify \ --pkg libdeja-dup \ + --pkg hacks \ --pkg config AM_CFLAGS = \ @@ -26,7 +27,6 @@ deja_dup_applet_SOURCES = \ $(deja_dup_applet_VALASOURCES:.vala=.c) \ - $(deja_dup_applet_VALASOURCES:.vala=.h) \ $(deja_dup_applet_VALASOURCES) deja-dup-applet.stamp: $(deja_dup_applet_VALASOURCES) diff -Nru deja-dup-7.4/applet/Makefile.in deja-dup-10.0/applet/Makefile.in --- deja-dup-7.4/applet/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/applet/Makefile.in 2009-06-02 17:51:12.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -58,8 +58,7 @@ PROGRAMS = $(bin_PROGRAMS) am__objects_1 = StatusIcon.$(OBJEXT) applet.$(OBJEXT) am__objects_2 = -am_deja_dup_applet_OBJECTS = $(am__objects_1) $(am__objects_2) \ - $(am__objects_2) +am_deja_dup_applet_OBJECTS = $(am__objects_1) $(am__objects_2) deja_dup_applet_OBJECTS = $(am_deja_dup_applet_OBJECTS) am__DEPENDENCIES_1 = deja_dup_applet_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -128,29 +127,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -178,6 +158,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -190,6 +171,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -253,6 +235,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ VALA_CFLAGS = \ @@ -262,6 +245,7 @@ --pkg gconf-2.0 \ --pkg libnotify \ --pkg libdeja-dup \ + --pkg hacks \ --pkg config AM_CFLAGS = \ @@ -279,7 +263,6 @@ deja_dup_applet_SOURCES = \ $(deja_dup_applet_VALASOURCES:.vala=.c) \ - $(deja_dup_applet_VALASOURCES:.vala=.h) \ $(deja_dup_applet_VALASOURCES) deja_dup_applet_LDADD = $(APPLET_LIBS) @INTLLIBS@ $(top_builddir)/libdeja-dup/libdeja-dup.la @@ -298,8 +281,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -396,7 +379,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS diff -Nru deja-dup-7.4/applet/StatusIcon.c deja-dup-10.0/applet/StatusIcon.c --- deja-dup-7.4/applet/StatusIcon.c 2009-01-29 15:50:09.000000000 -0500 +++ deja-dup-10.0/applet/StatusIcon.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,19 +1,55 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "StatusIcon.h" -#include +#include +#include +#include +#include #include #include #include #include #include #include -#include +#include #include -#include +#define TYPE_STATUS_ICON (status_icon_get_type ()) +#define STATUS_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STATUS_ICON, StatusIcon)) +#define STATUS_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STATUS_ICON, StatusIconClass)) +#define IS_STATUS_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STATUS_ICON)) +#define IS_STATUS_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STATUS_ICON)) +#define STATUS_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STATUS_ICON, StatusIconClass)) + +typedef struct _StatusIcon StatusIcon; +typedef struct _StatusIconClass StatusIconClass; +typedef struct _StatusIconPrivate StatusIconPrivate; +/* + Déjà Dup Applet + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _StatusIcon { + GtkStatusIcon parent_instance; + StatusIconPrivate * priv; +}; + +struct _StatusIconClass { + GtkStatusIconClass parent_class; +}; struct _StatusIconPrivate { DejaDupOperationBackup* op; @@ -24,76 +60,88 @@ char* action; }; + + +GType status_icon_get_type (void); #define STATUS_ICON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_STATUS_ICON, StatusIconPrivate)) enum { STATUS_ICON_DUMMY_PROPERTY }; -static void status_icon_send_done (StatusIcon* self, DejaDupOperationBackup* op, gboolean success); -static void status_icon_set_action_desc (StatusIcon* self, DejaDupOperationBackup* op, const char* action); -static void status_icon_note_progress (StatusIcon* self, DejaDupOperationBackup* op, double percent); +static void status_icon_send_done (StatusIcon* self, DejaDupOperation* op, gboolean success); static void status_icon_update_tooltip (StatusIcon* self); -static gboolean status_icon_start_idle (StatusIcon* self); -static void _status_icon_send_done_deja_dup_operation_done (DejaDupOperationBackup* _sender, gboolean success, gpointer self); -static gboolean _status_icon_notify_passphrase_deja_dup_operation_passphrase_required (DejaDupOperationBackup* _sender, gpointer self); -static gboolean _status_icon_notify_backend_password_deja_dup_operation_backend_password_required (DejaDupOperationBackup* _sender, gpointer self); -static void _status_icon_notify_error_deja_dup_operation_raise_error (DejaDupOperationBackup* _sender, const char* errstr, const char* detail, gpointer self); -static void _status_icon_set_action_desc_deja_dup_operation_action_desc_changed (DejaDupOperationBackup* _sender, const char* action, gpointer self); -static void _status_icon_note_progress_deja_dup_operation_progress (DejaDupOperationBackup* _sender, double percent, gpointer self); +static void status_icon_set_action_desc (StatusIcon* self, DejaDupOperation* op, const char* action); +static void status_icon_note_progress (StatusIcon* self, DejaDupOperation* op, double percent); static void status_icon_start (StatusIcon* self, gboolean warn); +static gboolean status_icon_start_idle (StatusIcon* self); +static void _status_icon_send_done_deja_dup_operation_done (DejaDupOperation* _sender, gboolean success, gpointer self); +static gboolean status_icon_notify_passphrase (StatusIcon* self, DejaDupOperation* op); +static gboolean _status_icon_notify_passphrase_deja_dup_operation_passphrase_required (DejaDupOperation* _sender, gpointer self); +static gboolean status_icon_notify_backend_password (StatusIcon* self, DejaDupOperation* op); +static gboolean _status_icon_notify_backend_password_deja_dup_operation_backend_password_required (DejaDupOperation* _sender, gpointer self); +static void status_icon_notify_error (StatusIcon* self, DejaDupOperation* op, const char* errstr, const char* detail); +static void _status_icon_notify_error_deja_dup_operation_raise_error (DejaDupOperation* _sender, const char* errstr, const char* detail, gpointer self); +static void _status_icon_set_action_desc_deja_dup_operation_action_desc_changed (DejaDupOperation* _sender, const char* action, gpointer self); +static void _status_icon_note_progress_deja_dup_operation_progress (DejaDupOperation* _sender, double percent, gpointer self); +static void status_icon_notify_start (StatusIcon* self); static void status_icon_begin_backup (StatusIcon* self); +static gboolean status_icon_can_display_actions (StatusIcon* self); +static void status_icon_skip (StatusIcon* self, NotifyNotification* note, const char* action); +static void _status_icon_skip_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self); +static void status_icon_later (StatusIcon* self, NotifyNotification* note, const char* action); +static void _status_icon_later_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self); static void _status_icon_begin_backup_notify_notification_closed (NotifyNotification* _sender, gpointer self); -static void status_icon_notify_start (StatusIcon* self); -static void _status_icon_activate_enter_gtk_status_icon_activate (StatusIcon* _sender, gpointer self); -static gboolean status_icon_notify_passphrase (StatusIcon* self, DejaDupOperationBackup* op); -static gboolean status_icon_notify_backend_password (StatusIcon* self, DejaDupOperationBackup* op); +static void status_icon_activate_enter (StatusIcon* self); +static void _status_icon_activate_enter_gtk_status_icon_activate (GtkStatusIcon* _sender, gpointer self); +static void status_icon_enter (StatusIcon* self, NotifyNotification* note, const char* action); +static void _status_icon_enter_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self); +static void status_icon_rerun (StatusIcon* self, NotifyNotification* note, const char* action); +static void _status_icon_rerun_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self); +static void status_icon_error_closed (StatusIcon* self, NotifyNotification* note); static void _status_icon_error_closed_notify_notification_closed (NotifyNotification* _sender, gpointer self); -static void status_icon_notify_error (StatusIcon* self, DejaDupOperationBackup* op, const char* errstr, const char* detail); static void status_icon_end_notify (StatusIcon* self, NotifyNotification* note); -static void status_icon_error_closed (StatusIcon* self, NotifyNotification* note); -static void status_icon_enter (NotifyNotification* note, const char* action, StatusIcon* icon); -static void status_icon_activate_enter (StatusIcon* self); -static void status_icon_rerun (NotifyNotification* note, const char* action, StatusIcon* icon); -static void status_icon_later (NotifyNotification* note, const char* action, StatusIcon* icon); -static void status_icon_skip (NotifyNotification* note, const char* action, StatusIcon* icon); +static void status_icon_later_clicked (StatusIcon* self, GtkMenuItem* item); static void _status_icon_later_clicked_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self); +static void status_icon_skip_clicked (StatusIcon* self, GtkMenuItem* item); static void _status_icon_skip_clicked_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self); +static void status_icon_preferences_clicked (StatusIcon* self, GtkMenuItem* item); static void _status_icon_preferences_clicked_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self); +static void status_icon_about_clicked (StatusIcon* self, GtkMenuItem* item); static void _status_icon_about_clicked_gtk_menu_item_activate (GtkMenuItem* _sender, gpointer self); static void _gtk_status_icon_position_menu_gtk_menu_position_func (GtkMenu* menu, gint* x, gint* y, gboolean* push_in, gpointer self); -static void status_icon_show_menu (StatusIcon* self, StatusIcon* status_icon, guint button, guint activate_time); -static void status_icon_later_clicked (StatusIcon* self, GtkMenuItem* item); -static void status_icon_skip_clicked (StatusIcon* self, GtkMenuItem* item); -static void status_icon_about_clicked (StatusIcon* self, GtkMenuItem* item); -static void status_icon_preferences_clicked (StatusIcon* self, GtkMenuItem* item); +static void status_icon_show_menu (StatusIcon* self, GtkStatusIcon* status_icon, guint button, guint activate_time); +StatusIcon* status_icon_new (void); +StatusIcon* status_icon_construct (GType object_type); +StatusIcon* status_icon_new (void); static gboolean _status_icon_start_idle_gsource_func (gpointer self); -static void _status_icon_show_menu_gtk_status_icon_popup_menu (StatusIcon* _sender, guint button, guint activate_time, gpointer self); +static void _status_icon_show_menu_gtk_status_icon_popup_menu (GtkStatusIcon* _sender, guint button, guint activate_time, gpointer self); static GObject * status_icon_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer status_icon_parent_class = NULL; static void status_icon_finalize (GObject* obj); +static int _vala_strcmp0 (const char * str1, const char * str2); -static void status_icon_send_done (StatusIcon* self, DejaDupOperationBackup* op, gboolean success) { +static void status_icon_send_done (StatusIcon* self, DejaDupOperation* op, gboolean success) { g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); g_signal_emit_by_name (self, "done"); } -static void status_icon_set_action_desc (StatusIcon* self, DejaDupOperationBackup* op, const char* action) { - char* _tmp1; - const char* _tmp0; +static void status_icon_set_action_desc (StatusIcon* self, DejaDupOperation* op, const char* action) { + char* _tmp1_; + const char* _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); g_return_if_fail (action != NULL); - _tmp1 = NULL; - _tmp0 = NULL; - self->priv->action = (_tmp1 = (_tmp0 = action, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)), self->priv->action = (g_free (self->priv->action), NULL), _tmp1); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->priv->action = (_tmp1_ = (_tmp0_ = action, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->action = (g_free (self->priv->action), NULL), _tmp1_); status_icon_update_tooltip (self); } -static void status_icon_note_progress (StatusIcon* self, DejaDupOperationBackup* op, double percent) { +static void status_icon_note_progress (StatusIcon* self, DejaDupOperation* op, double percent) { g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); self->priv->progress = percent; @@ -106,24 +154,24 @@ g_return_if_fail (self != NULL); tooltip = g_strdup (""); if (self->priv->action != NULL) { - char* _tmp1; - const char* _tmp0; - _tmp1 = NULL; - _tmp0 = NULL; - tooltip = (_tmp1 = (_tmp0 = self->priv->action, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)), tooltip = (g_free (tooltip), NULL), _tmp1); + char* _tmp1_; + const char* _tmp0_; + _tmp1_ = NULL; + _tmp0_ = NULL; + tooltip = (_tmp1_ = (_tmp0_ = self->priv->action, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), tooltip = (g_free (tooltip), NULL), _tmp1_); } if (self->priv->progress > 0) { - char* _tmp4; - char* _tmp3; - char* _tmp2; - _tmp4 = NULL; - _tmp3 = NULL; - _tmp2 = NULL; - tooltip = (_tmp4 = g_strconcat (_tmp2 = g_strconcat (tooltip, "\n", NULL), _tmp3 = g_strdup_printf (_ ("%.1f%% complete"), self->priv->progress * 100), NULL), tooltip = (g_free (tooltip), NULL), _tmp4); - _tmp3 = (g_free (_tmp3), NULL); - _tmp2 = (g_free (_tmp2), NULL); + char* _tmp4_; + char* _tmp3_; + char* _tmp2_; + _tmp4_ = NULL; + _tmp3_ = NULL; + _tmp2_ = NULL; + tooltip = (_tmp4_ = g_strconcat (_tmp2_ = g_strconcat (tooltip, "\n", NULL), _tmp3_ = g_strdup_printf (_ ("%.1f%% complete"), self->priv->progress * 100), NULL), tooltip = (g_free (tooltip), NULL), _tmp4_); + _tmp3_ = (g_free (_tmp3_), NULL); + _tmp2_ = (g_free (_tmp2_), NULL); } - gtk_status_icon_set_tooltip ((GtkStatusIcon*) self, tooltip); + hacks_status_icon_set_tooltip_text ((GtkStatusIcon*) self, tooltip); tooltip = (g_free (tooltip), NULL); } @@ -135,44 +183,44 @@ } -static void _status_icon_send_done_deja_dup_operation_done (DejaDupOperationBackup* _sender, gboolean success, gpointer self) { +static void _status_icon_send_done_deja_dup_operation_done (DejaDupOperation* _sender, gboolean success, gpointer self) { status_icon_send_done (self, _sender, success); } -static gboolean _status_icon_notify_passphrase_deja_dup_operation_passphrase_required (DejaDupOperationBackup* _sender, gpointer self) { +static gboolean _status_icon_notify_passphrase_deja_dup_operation_passphrase_required (DejaDupOperation* _sender, gpointer self) { return status_icon_notify_passphrase (self, _sender); } -static gboolean _status_icon_notify_backend_password_deja_dup_operation_backend_password_required (DejaDupOperationBackup* _sender, gpointer self) { +static gboolean _status_icon_notify_backend_password_deja_dup_operation_backend_password_required (DejaDupOperation* _sender, gpointer self) { return status_icon_notify_backend_password (self, _sender); } -static void _status_icon_notify_error_deja_dup_operation_raise_error (DejaDupOperationBackup* _sender, const char* errstr, const char* detail, gpointer self) { +static void _status_icon_notify_error_deja_dup_operation_raise_error (DejaDupOperation* _sender, const char* errstr, const char* detail, gpointer self) { status_icon_notify_error (self, _sender, errstr, detail); } -static void _status_icon_set_action_desc_deja_dup_operation_action_desc_changed (DejaDupOperationBackup* _sender, const char* action, gpointer self) { +static void _status_icon_set_action_desc_deja_dup_operation_action_desc_changed (DejaDupOperation* _sender, const char* action, gpointer self) { status_icon_set_action_desc (self, _sender, action); } -static void _status_icon_note_progress_deja_dup_operation_progress (DejaDupOperationBackup* _sender, double percent, gpointer self) { +static void _status_icon_note_progress_deja_dup_operation_progress (DejaDupOperation* _sender, double percent, gpointer self) { status_icon_note_progress (self, _sender, percent); } static void status_icon_start (StatusIcon* self, gboolean warn) { - DejaDupOperationBackup* _tmp0; + DejaDupOperationBackup* _tmp0_; g_return_if_fail (self != NULL); self->priv->need_passphrase = FALSE; self->priv->fatal_error = FALSE; self->priv->progress = (double) 0; - _tmp0 = NULL; - self->priv->op = (_tmp0 = deja_dup_operation_backup_new (NULL, (guint) gtk_status_icon_get_x11_window_id ((GtkStatusIcon*) self)), (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)), _tmp0); + _tmp0_ = NULL; + self->priv->op = (_tmp0_ = deja_dup_operation_backup_new (NULL, (guint) hacks_status_icon_get_x11_window_id ((GtkStatusIcon*) self)), (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)), _tmp0_); g_signal_connect_object ((DejaDupOperation*) self->priv->op, "done", (GCallback) _status_icon_send_done_deja_dup_operation_done, self, 0); g_signal_connect_object ((DejaDupOperation*) self->priv->op, "passphrase-required", (GCallback) _status_icon_notify_passphrase_deja_dup_operation_passphrase_required, self, 0); g_signal_connect_object ((DejaDupOperation*) self->priv->op, "backend-password-required", (GCallback) _status_icon_notify_backend_password_deja_dup_operation_backend_password_required, self, 0); @@ -188,12 +236,12 @@ static void status_icon_begin_backup (StatusIcon* self) { - GError * inner_error; + GError * _inner_error_; g_return_if_fail (self != NULL); - inner_error = NULL; + _inner_error_ = NULL; { - deja_dup_operation_start ((DejaDupOperation*) self->priv->op, &inner_error); - if (inner_error != NULL) { + deja_dup_operation_start ((DejaDupOperation*) self->priv->op, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch0_g_error; goto __finally0; } @@ -202,40 +250,78 @@ __catch0_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_warning ("StatusIcon.vala:108: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally0: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } +static gboolean status_icon_can_display_actions (StatusIcon* self) { + GList* caps; + g_return_val_if_fail (self != NULL, FALSE); + caps = notify_get_server_caps (); + { + GList* cap_collection; + GList* cap_it; + cap_collection = caps; + for (cap_it = cap_collection; cap_it != NULL; cap_it = cap_it->next) { + const char* _tmp1_; + char* cap; + _tmp1_ = NULL; + cap = (_tmp1_ = (const char*) cap_it->data, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)); + { + if (_vala_strcmp0 (cap, "actions") == 0) { + gboolean _tmp0_; + return (_tmp0_ = TRUE, cap = (g_free (cap), NULL), _tmp0_); + } + cap = (g_free (cap), NULL); + } + } + } + return FALSE; +} + + +static void _status_icon_skip_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self) { + status_icon_skip (self, p1, p2); +} + + +static void _status_icon_later_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self) { + status_icon_later (self, p1, p2); +} + + static void _status_icon_begin_backup_notify_notification_closed (NotifyNotification* _sender, gpointer self) { status_icon_begin_backup (self); } static void status_icon_notify_start (StatusIcon* self) { - GError * inner_error; - NotifyNotification* _tmp0; + GError * _inner_error_; + NotifyNotification* _tmp0_; g_return_if_fail (self != NULL); - inner_error = NULL; - _tmp0 = NULL; - self->priv->note = (_tmp0 = notify_notification_new_with_status_icon (_ ("Backup about to start"), _ ("A scheduled backup will shortly begin. You can instead choose to backup later or not at all."), PACKAGE, (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0); - notify_notification_add_action (self->priv->note, "skip", _ ("Skip Backup"), (NotifyActionCallback) status_icon_skip, self, NULL); - notify_notification_add_action (self->priv->note, "later", _ ("Backup Later"), (NotifyActionCallback) status_icon_later, self, NULL); + _inner_error_ = NULL; + _tmp0_ = NULL; + self->priv->note = (_tmp0_ = notify_notification_new_with_status_icon (_ ("Backup about to start"), _ ("A scheduled backup will shortly begin. You can instead choose to backup later or not at all."), PACKAGE, (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0_); + if (status_icon_can_display_actions (self)) { + notify_notification_add_action (self->priv->note, "skip", _ ("Skip Backup"), _status_icon_skip_notify_action_callback, g_object_ref (self), g_object_unref); + notify_notification_add_action (self->priv->note, "later", _ ("Backup Later"), _status_icon_later_notify_action_callback, g_object_ref (self), g_object_unref); + } g_signal_connect_object (self->priv->note, "closed", (GCallback) _status_icon_begin_backup_notify_notification_closed, self, 0); { - notify_notification_show (self->priv->note, &inner_error); - if (inner_error != NULL) { + notify_notification_show (self->priv->note, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch1_g_error; goto __finally1; } @@ -244,43 +330,50 @@ __catch1_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("StatusIcon.vala:123: %s\n", e->message); + g_warning ("StatusIcon.vala:133: %s\n", e->message); status_icon_begin_backup (self); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally1: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } -static void _status_icon_activate_enter_gtk_status_icon_activate (StatusIcon* _sender, gpointer self) { +static void _status_icon_activate_enter_gtk_status_icon_activate (GtkStatusIcon* _sender, gpointer self) { status_icon_activate_enter (self); } -static gboolean status_icon_notify_passphrase (StatusIcon* self, DejaDupOperationBackup* op) { - GError * inner_error; - NotifyNotification* _tmp0; +static void _status_icon_enter_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self) { + status_icon_enter (self, p1, p2); +} + + +static gboolean status_icon_notify_passphrase (StatusIcon* self, DejaDupOperation* op) { + GError * _inner_error_; + NotifyNotification* _tmp0_; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (op != NULL, FALSE); - inner_error = NULL; + _inner_error_ = NULL; self->priv->need_passphrase = TRUE; gtk_status_icon_set_blinking ((GtkStatusIcon*) self, TRUE); g_signal_connect_object ((GtkStatusIcon*) self, "activate", (GCallback) _status_icon_activate_enter_gtk_status_icon_activate, self, 0); - _tmp0 = NULL; - self->priv->note = (_tmp0 = notify_notification_new_with_status_icon (_ ("Encryption password needed"), _ ("Please enter the encryption password for your backup files."), "dialog-password", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0); - notify_notification_add_action (self->priv->note, "default", _ ("Enter"), (NotifyActionCallback) status_icon_enter, self, NULL); + _tmp0_ = NULL; + self->priv->note = (_tmp0_ = notify_notification_new_with_status_icon (_ ("Encryption password needed"), _ ("Please enter the encryption password for your backup files."), "dialog-password", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0_); + if (status_icon_can_display_actions (self)) { + notify_notification_add_action (self->priv->note, "default", _ ("Enter"), _status_icon_enter_notify_action_callback, g_object_ref (self), g_object_unref); + } { - notify_notification_show (self->priv->note, &inner_error); - if (inner_error != NULL) { + notify_notification_show (self->priv->note, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch2_g_error; goto __finally2; } @@ -289,17 +382,17 @@ __catch2_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("StatusIcon.vala:141: %s\n", e->message); + g_warning ("StatusIcon.vala:152: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally2: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } return FALSE; @@ -307,20 +400,22 @@ /* don't immediately ask user, wait for our response*/ -static gboolean status_icon_notify_backend_password (StatusIcon* self, DejaDupOperationBackup* op) { - GError * inner_error; - NotifyNotification* _tmp0; +static gboolean status_icon_notify_backend_password (StatusIcon* self, DejaDupOperation* op) { + GError * _inner_error_; + NotifyNotification* _tmp0_; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (op != NULL, FALSE); - inner_error = NULL; + _inner_error_ = NULL; gtk_status_icon_set_blinking ((GtkStatusIcon*) self, TRUE); g_signal_connect_object ((GtkStatusIcon*) self, "activate", (GCallback) _status_icon_activate_enter_gtk_status_icon_activate, self, 0); - _tmp0 = NULL; - self->priv->note = (_tmp0 = notify_notification_new_with_status_icon (_ ("Server password needed"), _ ("Please enter the server password for your backup."), "dialog-password", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0); - notify_notification_add_action (self->priv->note, "default", _ ("Enter"), (NotifyActionCallback) status_icon_enter, self, NULL); + _tmp0_ = NULL; + self->priv->note = (_tmp0_ = notify_notification_new_with_status_icon (_ ("Server password needed"), _ ("Please enter the server password for your backup."), "dialog-password", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0_); + if (status_icon_can_display_actions (self)) { + notify_notification_add_action (self->priv->note, "default", _ ("Enter"), _status_icon_enter_notify_action_callback, g_object_ref (self), g_object_unref); + } { - notify_notification_show (self->priv->note, &inner_error); - if (inner_error != NULL) { + notify_notification_show (self->priv->note, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch3_g_error; goto __finally3; } @@ -329,49 +424,57 @@ __catch3_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("StatusIcon.vala:158: %s\n", e->message); + g_warning ("StatusIcon.vala:170: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally3: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } return FALSE; } +static void _status_icon_rerun_notify_action_callback (NotifyNotification* p1, const char* p2, gpointer self) { + status_icon_rerun (self, p1, p2); +} + + static void _status_icon_error_closed_notify_notification_closed (NotifyNotification* _sender, gpointer self) { status_icon_error_closed (self, _sender); } /* don't immediately ask user, wait for our response*/ -static void status_icon_notify_error (StatusIcon* self, DejaDupOperationBackup* op, const char* errstr, const char* detail) { - GError * inner_error; - guint _tmp0; - NotifyNotification* _tmp1; +static void status_icon_notify_error (StatusIcon* self, DejaDupOperation* op, const char* errstr, const char* detail) { + GError * _inner_error_; + NotifyNotification* _tmp0_; + guint _tmp1_; g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); g_return_if_fail (errstr != NULL); - inner_error = NULL; - /* TODO: Do something sane with detail. Not urgent right now, it's only used for restore - We want to stay open until user acknowledges our error/it times out*/ - g_signal_handlers_disconnect_matched ((DejaDupOperation*) op, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_OPERATION, &_tmp0, NULL, FALSE), _tmp0), 0, NULL, (GCallback) _status_icon_send_done_deja_dup_operation_done, self); + _inner_error_ = NULL; + /* TODO: Do something sane with detail. Not urgent right now, it's only used for restore*/ self->priv->fatal_error = TRUE; - _tmp1 = NULL; - self->priv->note = (_tmp1 = notify_notification_new_with_status_icon (_ ("Backup error occurred"), errstr, "dialog-error", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp1); - notify_notification_add_action (self->priv->note, "rerun", _ ("Rerun"), (NotifyActionCallback) status_icon_rerun, self, NULL); - notify_notification_set_timeout (self->priv->note, NOTIFY_EXPIRES_NEVER); + _tmp0_ = NULL; + self->priv->note = (_tmp0_ = notify_notification_new_with_status_icon (_ ("Backup error occurred"), errstr, "dialog-error", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0_); + /* We want to stay open until user acknowledges our error/it times out*/ + g_signal_handlers_disconnect_matched (op, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_OPERATION, &_tmp1_, NULL, FALSE), _tmp1_), 0, NULL, (GCallback) _status_icon_send_done_deja_dup_operation_done, self); + if (status_icon_can_display_actions (self)) { + notify_notification_add_action (self->priv->note, "rerun", _ ("Rerun"), _status_icon_rerun_notify_action_callback, g_object_ref (self), g_object_unref); + /* Doesn't seem like we can ask if daemon supports timeouts*/ + notify_notification_set_timeout (self->priv->note, NOTIFY_EXPIRES_NEVER); + } g_signal_connect_object (self->priv->note, "closed", (GCallback) _status_icon_error_closed_notify_notification_closed, self, 0); { - notify_notification_show (self->priv->note, &inner_error); - if (inner_error != NULL) { + notify_notification_show (self->priv->note, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch4_g_error; goto __finally4; } @@ -380,27 +483,27 @@ __catch4_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("StatusIcon.vala:178: %s\n", e->message); + g_warning ("StatusIcon.vala:194: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally4: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } static void status_icon_end_notify (StatusIcon* self, NotifyNotification* note) { - guint _tmp0; + guint _tmp0_; g_return_if_fail (self != NULL); gtk_status_icon_set_blinking ((GtkStatusIcon*) self, FALSE); - g_signal_handlers_disconnect_matched ((GtkStatusIcon*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("activate", GTK_TYPE_STATUS_ICON, &_tmp0, NULL, FALSE), _tmp0), 0, NULL, (GCallback) _status_icon_activate_enter_gtk_status_icon_activate, self); + g_signal_handlers_disconnect_matched ((GtkStatusIcon*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("activate", GTK_TYPE_STATUS_ICON, &_tmp0_, NULL, FALSE), _tmp0_), 0, NULL, (GCallback) _status_icon_activate_enter_gtk_status_icon_activate, self); } @@ -413,21 +516,21 @@ } -static void status_icon_enter (NotifyNotification* note, const char* action, StatusIcon* icon) { - GError * inner_error; - g_return_if_fail (icon != NULL); - inner_error = NULL; - { - if (icon->priv->need_passphrase) { - deja_dup_operation_ask_passphrase ((DejaDupOperation*) icon->priv->op, &inner_error); - if (inner_error != NULL) { +static void status_icon_enter (StatusIcon* self, NotifyNotification* note, const char* action) { + GError * _inner_error_; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + { + if (self->priv->need_passphrase) { + deja_dup_operation_ask_passphrase ((DejaDupOperation*) self->priv->op, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch5_g_error; goto __finally5; } - icon->priv->need_passphrase = FALSE; + self->priv->need_passphrase = FALSE; } else { - deja_dup_operation_ask_backend_password ((DejaDupOperation*) icon->priv->op, &inner_error); - if (inner_error != NULL) { + deja_dup_operation_ask_backend_password ((DejaDupOperation*) self->priv->op, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch5_g_error; goto __finally5; } @@ -437,50 +540,50 @@ __catch5_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("StatusIcon.vala:204: %s\n", e->message); + g_warning ("StatusIcon.vala:220: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally5: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } - status_icon_end_notify (icon, note); + status_icon_end_notify (self, note); } static void status_icon_activate_enter (StatusIcon* self) { g_return_if_fail (self != NULL); - status_icon_enter (self->priv->note, NULL, self); + status_icon_enter (self, self->priv->note, NULL); } -static void status_icon_rerun (NotifyNotification* note, const char* action, StatusIcon* icon) { - g_return_if_fail (icon != NULL); - icon->priv->fatal_error = FALSE; - status_icon_start (icon, FALSE); +static void status_icon_rerun (StatusIcon* self, NotifyNotification* note, const char* action) { + g_return_if_fail (self != NULL); + self->priv->fatal_error = FALSE; + status_icon_start (self, FALSE); } -static void status_icon_later (NotifyNotification* note, const char* action, StatusIcon* icon) { - g_return_if_fail (icon != NULL); - status_icon_end_notify (icon, note); - deja_dup_operation_cancel ((DejaDupOperation*) icon->priv->op); +static void status_icon_later (StatusIcon* self, NotifyNotification* note, const char* action) { + g_return_if_fail (self != NULL); + status_icon_end_notify (self, note); + deja_dup_operation_cancel ((DejaDupOperation*) self->priv->op); } -static void status_icon_skip (NotifyNotification* note, const char* action, StatusIcon* icon) { - GError * inner_error; - g_return_if_fail (icon != NULL); - inner_error = NULL; +static void status_icon_skip (StatusIcon* self, NotifyNotification* note, const char* action) { + GError * _inner_error_; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; { - deja_dup_update_last_run_timestamp (&inner_error); - if (inner_error != NULL) { + deja_dup_update_last_run_timestamp (&_inner_error_); + if (_inner_error_ != NULL) { goto __catch6_g_error; goto __finally6; } @@ -489,21 +592,21 @@ __catch6_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("StatusIcon.vala:233: %s\n", e->message); + g_warning ("StatusIcon.vala:249: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally6: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } - status_icon_end_notify (icon, note); - deja_dup_operation_cancel ((DejaDupOperation*) icon->priv->op); + status_icon_end_notify (self, note); + deja_dup_operation_cancel ((DejaDupOperation*) self->priv->op); } @@ -532,35 +635,35 @@ } -static void status_icon_show_menu (StatusIcon* self, StatusIcon* status_icon, guint button, guint activate_time) { +static void status_icon_show_menu (StatusIcon* self, GtkStatusIcon* status_icon, guint button, guint activate_time) { GtkMenu* menu; GtkMenuItem* item; - GtkMenuItem* _tmp0; - GtkMenuItem* _tmp1; - GtkMenuItem* _tmp2; - GtkMenuItem* _tmp3; - GtkMenuItem* _tmp4; + GtkMenuItem* _tmp0_; + GtkMenuItem* _tmp1_; + GtkMenuItem* _tmp2_; + GtkMenuItem* _tmp3_; + GtkMenuItem* _tmp4_; g_return_if_fail (self != NULL); g_return_if_fail (status_icon != NULL); menu = g_object_ref_sink ((GtkMenu*) gtk_menu_new ()); item = NULL; - _tmp0 = NULL; - item = (_tmp0 = g_object_ref_sink ((GtkMenuItem*) gtk_menu_item_new_with_mnemonic (_ ("Backup _Later"))), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp0); + _tmp0_ = NULL; + item = (_tmp0_ = g_object_ref_sink ((GtkMenuItem*) gtk_menu_item_new_with_mnemonic (_ ("Backup _Later"))), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp0_); g_signal_connect_object (item, "activate", (GCallback) _status_icon_later_clicked_gtk_menu_item_activate, self, 0); gtk_menu_shell_append ((GtkMenuShell*) menu, (GtkWidget*) item); - _tmp1 = NULL; - item = (_tmp1 = g_object_ref_sink ((GtkMenuItem*) gtk_menu_item_new_with_mnemonic (_ ("_Skip Backup"))), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp1); + _tmp1_ = NULL; + item = (_tmp1_ = g_object_ref_sink ((GtkMenuItem*) gtk_menu_item_new_with_mnemonic (_ ("_Skip Backup"))), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp1_); g_signal_connect_object (item, "activate", (GCallback) _status_icon_skip_clicked_gtk_menu_item_activate, self, 0); gtk_menu_shell_append ((GtkMenuShell*) menu, (GtkWidget*) item); - _tmp2 = NULL; - item = (_tmp2 = (GtkMenuItem*) g_object_ref_sink ((GtkSeparatorMenuItem*) gtk_separator_menu_item_new ()), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp2); + _tmp2_ = NULL; + item = (_tmp2_ = (GtkMenuItem*) g_object_ref_sink ((GtkSeparatorMenuItem*) gtk_separator_menu_item_new ()), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp2_); gtk_menu_shell_append ((GtkMenuShell*) menu, (GtkWidget*) item); - _tmp3 = NULL; - item = (_tmp3 = (GtkMenuItem*) g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_PREFERENCES, NULL)), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp3); + _tmp3_ = NULL; + item = (_tmp3_ = (GtkMenuItem*) g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_PREFERENCES, NULL)), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp3_); g_signal_connect_object (item, "activate", (GCallback) _status_icon_preferences_clicked_gtk_menu_item_activate, self, 0); gtk_menu_shell_append ((GtkMenuShell*) menu, (GtkWidget*) item); - _tmp4 = NULL; - item = (_tmp4 = (GtkMenuItem*) g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, NULL)), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp4); + _tmp4_ = NULL; + item = (_tmp4_ = (GtkMenuItem*) g_object_ref_sink ((GtkImageMenuItem*) gtk_image_menu_item_new_from_stock (GTK_STOCK_ABOUT, NULL)), (item == NULL) ? NULL : (item = (g_object_unref (item), NULL)), _tmp4_); g_signal_connect_object (item, "activate", (GCallback) _status_icon_about_clicked_gtk_menu_item_activate, self, 0); gtk_menu_shell_append ((GtkMenuShell*) menu, (GtkWidget*) item); gtk_widget_show_all ((GtkWidget*) menu); @@ -573,14 +676,14 @@ static void status_icon_later_clicked (StatusIcon* self, GtkMenuItem* item) { g_return_if_fail (self != NULL); g_return_if_fail (item != NULL); - status_icon_later (self->priv->note, NULL, self); + status_icon_later (self, self->priv->note, NULL); } static void status_icon_skip_clicked (StatusIcon* self, GtkMenuItem* item) { g_return_if_fail (self != NULL); g_return_if_fail (item != NULL); - status_icon_skip (self->priv->note, NULL, self); + status_icon_skip (self, self->priv->note, NULL); } @@ -592,13 +695,13 @@ static void status_icon_preferences_clicked (StatusIcon* self, GtkMenuItem* item) { - GError * inner_error; + GError * _inner_error_; g_return_if_fail (self != NULL); g_return_if_fail (item != NULL); - inner_error = NULL; + _inner_error_ = NULL; { - g_spawn_command_line_async ("deja-dup-preferences", &inner_error); - if (inner_error != NULL) { + g_spawn_command_line_async ("deja-dup-preferences", &_inner_error_); + if (_inner_error_ != NULL) { goto __catch7_g_error; goto __finally7; } @@ -607,8 +710,8 @@ __catch7_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { GtkMessageDialog* dlg; dlg = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("Could not open preferences"), NULL)); @@ -620,9 +723,9 @@ } } __finally7: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -630,7 +733,7 @@ /* Déjà Dup Applet - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -662,7 +765,7 @@ } -static void _status_icon_show_menu_gtk_status_icon_popup_menu (StatusIcon* _sender, guint button, guint activate_time, gpointer self) { +static void _status_icon_show_menu_gtk_status_icon_popup_menu (GtkStatusIcon* _sender, guint button, guint activate_time, gpointer self) { status_icon_show_menu (self, _sender, button, activate_time); } @@ -701,14 +804,14 @@ static void status_icon_finalize (GObject* obj) { StatusIcon * self; - GError * inner_error; + GError * _inner_error_; self = STATUS_ICON (obj); - inner_error = NULL; + _inner_error_ = NULL; { if (self->priv->note != NULL) { { - notify_notification_close (self->priv->note, &inner_error); - if (inner_error != NULL) { + notify_notification_close (self->priv->note, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch8_g_error; goto __finally8; } @@ -717,17 +820,17 @@ __catch8_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_warning ("StatusIcon.vala:46: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally8: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); } } } @@ -748,5 +851,16 @@ } +static int _vala_strcmp0 (const char * str1, const char * str2) { + if (str1 == NULL) { + return -(str1 != str2); + } + if (str2 == NULL) { + return str1 != str2; + } + return strcmp (str1, str2); +} + + diff -Nru deja-dup-7.4/applet/StatusIcon.h deja-dup-10.0/applet/StatusIcon.h --- deja-dup-7.4/applet/StatusIcon.h 2009-01-29 15:50:09.000000000 -0500 +++ deja-dup-10.0/applet/StatusIcon.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,58 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __STATUSICON_H__ -#define __STATUSICON_H__ - -#include -#include -#include - -G_BEGIN_DECLS - - -#define TYPE_STATUS_ICON (status_icon_get_type ()) -#define STATUS_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_STATUS_ICON, StatusIcon)) -#define STATUS_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_STATUS_ICON, StatusIconClass)) -#define IS_STATUS_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_STATUS_ICON)) -#define IS_STATUS_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_STATUS_ICON)) -#define STATUS_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_STATUS_ICON, StatusIconClass)) - -typedef struct _StatusIcon StatusIcon; -typedef struct _StatusIconClass StatusIconClass; -typedef struct _StatusIconPrivate StatusIconPrivate; - -/* - Déjà Dup Applet - © 2008—2009 Michael Terry - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -struct _StatusIcon { - GtkStatusIcon parent_instance; - StatusIconPrivate * priv; -}; - -struct _StatusIconClass { - GtkStatusIconClass parent_class; -}; - - -StatusIcon* status_icon_construct (GType object_type); -StatusIcon* status_icon_new (void); -GType status_icon_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/applet/StatusIcon.vala deja-dup-10.0/applet/StatusIcon.vala --- deja-dup-7.4/applet/StatusIcon.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/applet/StatusIcon.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup Applet - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -33,7 +33,7 @@ construct { icon_name = Config.PACKAGE; Idle.add(start_idle); - popup_menu += show_menu; + popup_menu.connect(show_menu); } ~StatusIcon() @@ -48,18 +48,18 @@ } } - void send_done(DejaDup.OperationBackup op, bool success) + void send_done(DejaDup.Operation op, bool success) { done(); } - void set_action_desc(DejaDup.OperationBackup op, string action) + void set_action_desc(DejaDup.Operation op, string action) { this.action = action; update_tooltip(); } - void note_progress(DejaDup.OperationBackup op, double percent) + void note_progress(DejaDup.Operation op, double percent) { this.progress = percent; update_tooltip(); @@ -72,7 +72,7 @@ tooltip = this.action; if (progress > 0) tooltip = tooltip + "\n" + _("%.1f%% complete").printf(progress * 100); - set_tooltip(tooltip); + hacks_status_icon_set_tooltip_text(this, tooltip); } bool start_idle() { @@ -86,13 +86,13 @@ fatal_error = false; progress = 0; - op = new DejaDup.OperationBackup(null, get_x11_window_id()); - op.done += send_done; - op.passphrase_required += notify_passphrase; - op.backend_password_required += notify_backend_password; - op.raise_error += notify_error; - op.action_desc_changed += set_action_desc; - op.progress += note_progress; + op = new DejaDup.OperationBackup(null, hacks_status_icon_get_x11_window_id(this)); + op.done.connect(send_done); + op.passphrase_required.connect(notify_passphrase); + op.backend_password_required.connect(notify_backend_password); + op.raise_error.connect(notify_error); + op.action_desc_changed.connect(set_action_desc); + op.progress.connect(note_progress); if (warn) notify_start(); @@ -109,13 +109,23 @@ } } + bool can_display_actions() { + weak List caps = Notify.get_server_caps(); + foreach (string cap in caps) + if (cap == "actions") + return true; + return false; + } + void notify_start() { note = new Notify.Notification.with_status_icon(_("Backup about to start"), _("A scheduled backup will shortly begin. You can instead choose to backup later or not at all."), Config.PACKAGE, this); - note.add_action("skip", _("Skip Backup"), (Notify.ActionCallback)skip, this, null); - note.add_action("later", _("Backup Later"), (Notify.ActionCallback)later, this, null); - note.closed += begin_backup; + if (can_display_actions()) { + note.add_action("skip", _("Skip Backup"), skip); + note.add_action("later", _("Backup Later"), later); + } + note.closed.connect(begin_backup); try { note.show(); } @@ -125,15 +135,16 @@ } } - bool notify_passphrase(DejaDup.OperationBackup op) { + bool notify_passphrase(DejaDup.Operation op) { need_passphrase = true; set_blinking(true); - activate += activate_enter; + activate.connect(activate_enter); note = new Notify.Notification.with_status_icon(_("Encryption password needed"), _("Please enter the encryption password for your backup files."), "dialog-password", this); - note.add_action("default", _("Enter"), (Notify.ActionCallback)enter, this, null); + if (can_display_actions()) + note.add_action("default", _("Enter"), enter); try { note.show(); } @@ -143,14 +154,15 @@ return false; // don't immediately ask user, wait for our response } - bool notify_backend_password(DejaDup.OperationBackup op) { + bool notify_backend_password(DejaDup.Operation op) { set_blinking(true); - activate += activate_enter; + activate.connect(activate_enter); note = new Notify.Notification.with_status_icon(_("Server password needed"), _("Please enter the server password for your backup."), "dialog-password", this); - note.add_action("default", _("Enter"), (Notify.ActionCallback)enter, this, null); + if (can_display_actions()) + note.add_action("default", _("Enter"), enter); try { note.show(); } @@ -160,17 +172,21 @@ return false; // don't immediately ask user, wait for our response } - void notify_error(DejaDup.OperationBackup op, string errstr, string? detail) { + void notify_error(DejaDup.Operation op, string errstr, string? detail) { // TODO: Do something sane with detail. Not urgent right now, it's only used for restore - // We want to stay open until user acknowledges our error/it times out - op.done -= send_done; fatal_error = true; note = new Notify.Notification.with_status_icon(_("Backup error occurred"), errstr, "dialog-error", this); - note.add_action("rerun", _("Rerun"), (Notify.ActionCallback)rerun, this, null); - note.set_timeout(Notify.EXPIRES_NEVER); - note.closed += error_closed; + // We want to stay open until user acknowledges our error/it times out + op.done.disconnect(send_done); + if (can_display_actions()) { + note.add_action("rerun", _("Rerun"), rerun); + + // Doesn't seem like we can ask if daemon supports timeouts + note.set_timeout(Notify.EXPIRES_NEVER); + } + note.closed.connect(error_closed); try { note.show(); } @@ -181,7 +197,7 @@ void end_notify(Notify.Notification? note) { set_blinking(false); - activate -= activate_enter; + activate.disconnect(activate_enter); } void error_closed(Notify.Notification note) @@ -190,40 +206,40 @@ done(); } - static void enter(Notify.Notification? note, string? action, StatusIcon icon) + void enter(Notify.Notification? note, string? action) { try { - if (icon.need_passphrase) { - icon.op.ask_passphrase(); - icon.need_passphrase = false; + if (need_passphrase) { + op.ask_passphrase(); + need_passphrase = false; } else - icon.op.ask_backend_password(); + op.ask_backend_password(); } catch (Error e) { warning("%s\n", e.message); } - icon.end_notify(note); + end_notify(note); } void activate_enter() { - enter(note, null, this); + enter(note, null); } - static void rerun(Notify.Notification? note, string? action, StatusIcon icon) + void rerun(Notify.Notification? note, string? action) { - icon.fatal_error = false; - icon.start(false); + fatal_error = false; + start(false); } - static void later(Notify.Notification? note, string? action, StatusIcon icon) + void later(Notify.Notification? note, string? action) { - icon.end_notify(note); - icon.op.cancel(); + end_notify(note); + op.cancel(); } - static void skip(Notify.Notification? note, string? action, StatusIcon icon) + void skip(Notify.Notification? note, string? action) { // Fake a run by setting today's timestamp as the 'last-run' gconf key try { @@ -233,33 +249,33 @@ warning("%s\n", e.message); } - icon.end_notify(note); - icon.op.cancel(); + end_notify(note); + op.cancel(); } - void show_menu(StatusIcon status_icon, uint button, uint activate_time) + void show_menu(Gtk.StatusIcon status_icon, uint button, uint activate_time) { var menu = new Gtk.Menu(); Gtk.MenuItem item; item = new Gtk.MenuItem.with_mnemonic(_("Backup _Later")); - item.activate += later_clicked; + item.activate.connect(later_clicked); menu.append(item); item = new Gtk.MenuItem.with_mnemonic(_("_Skip Backup")); - item.activate += skip_clicked; + item.activate.connect(skip_clicked); menu.append(item); item = new Gtk.SeparatorMenuItem(); menu.append(item); item = new Gtk.ImageMenuItem.from_stock(Gtk.STOCK_PREFERENCES, null); - item.activate += preferences_clicked; + item.activate.connect(preferences_clicked); menu.append(item); item = new Gtk.ImageMenuItem.from_stock(Gtk.STOCK_ABOUT, null); - item.activate += about_clicked; + item.activate.connect(about_clicked); menu.append(item); menu.show_all(); @@ -267,11 +283,11 @@ } void later_clicked(Gtk.MenuItem item) { - later(note, null, this); + later(note, null); } void skip_clicked(Gtk.MenuItem item) { - skip(note, null, this); + skip(note, null); } void about_clicked(Gtk.MenuItem item) { diff -Nru deja-dup-7.4/AUTHORS deja-dup-10.0/AUTHORS --- deja-dup-7.4/AUTHORS 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/AUTHORS 2009-06-05 14:42:01.000000000 -0400 @@ -1 +1,59 @@ -Michael Terry +Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=54 +Name: Déjà Dup +Contact: Déjà Dup Maintainers +Source: https://launchpad.net/deja-dup/+download + +Files: * +Copyright: 2008-2009, Michael Terry +License: GPL-3+ + +Files: debian/* +Copyright: 2008-2009, Michael Terry + 2009, Jose Carlos Garcia Sogo +License: GPL-3+ + +Files: po/*.po +Copyright: 2008-2009, Rosetta Contributors and Canonical Ltd +License: GPL-3+ + +Files: libdeja-dup/hacks.c +Copyright: 2002-2003, 2006-2007, Red Hat, Inc. + 2008-2009, Michael Terry +License: GPL-3+ + +Files: libdeja-dup/mountoperation.[ch] +Copyright: 2008, Carlos Garcia Campos + 2008, Carlos Garnacho + 2008, Christian Kellner + 2008, Cody Russell + 2008, Gian Mario Tagliaretti + 2008, Johan Dahlin + 2008-2009, Matthias Clasen + 2008, Sven Neumann + 2009, Alexander Larsson + 2009, David Zeuthen + 2009, Michael Natterer +License: GPL-3+ + +Files: nautilus/NautilusExtension.[ch] +Copyright: 2004-2005, Free Software Foundation, Inc. + 2009 Michael Terry +License: GPL-3+ + +Files: data/*.svg +License: + In the public domain + +License: GPL-3+ + 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 3 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 General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . diff -Nru deja-dup-7.4/config.guess deja-dup-10.0/config.guess --- deja-dup-7.4/config.guess 2009-01-29 15:49:02.000000000 -0500 +++ deja-dup-10.0/config.guess 2009-06-02 17:48:49.000000000 -0400 @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2008-01-23' +timestamp='2009-04-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -324,6 +324,9 @@ case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; @@ -331,7 +334,20 @@ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize @@ -796,7 +812,7 @@ x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd) + EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -935,6 +951,9 @@ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -985,9 +1004,6 @@ a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. @@ -1102,8 +1118,11 @@ pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 @@ -1141,6 +1160,16 @@ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1216,6 +1245,9 @@ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1324,6 +1356,9 @@ i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 diff -Nru deja-dup-7.4/config.sub deja-dup-10.0/config.sub --- deja-dup-7.4/config.sub 2009-01-29 15:49:02.000000000 -0500 +++ deja-dup-10.0/config.sub 2009-06-02 17:48:48.000000000 -0400 @@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. -timestamp='2008-01-16' +timestamp='2009-04-17' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -122,6 +122,7 @@ case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -249,13 +250,16 @@ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ @@ -268,6 +272,7 @@ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ | nios | nios2 \ @@ -277,7 +282,7 @@ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ - | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -286,7 +291,7 @@ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k) + | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) @@ -329,14 +334,17 @@ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ @@ -358,20 +366,20 @@ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ - | z8k-*) + | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) @@ -439,6 +447,10 @@ basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -459,6 +471,10 @@ basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -526,6 +542,10 @@ basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp @@ -1128,6 +1148,10 @@ basic_machine=z8k-unknown os=-sim ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; none) basic_machine=none-none os=-none @@ -1166,7 +1190,7 @@ we32k) basic_machine=we32k-att ;; - sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) @@ -1238,8 +1262,9 @@ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ @@ -1248,7 +1273,7 @@ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ @@ -1388,6 +1413,9 @@ -zvmoe) os=-zvmoe ;; + -dicos*) + os=-dicos + ;; -none) ;; *) diff -Nru deja-dup-7.4/configure deja-dup-10.0/configure --- deja-dup-7.4/configure 2009-02-11 21:13:32.000000000 -0500 +++ deja-dup-10.0/configure 2009-06-02 17:51:14.000000000 -0400 @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61 for Déjà Dup 7.4. +# Generated by GNU Autoconf 2.63 for Déjà Dup 10.0. # -# Report bugs to . +# Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## @@ -17,7 +17,7 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -39,17 +39,45 @@ as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - PATH_SEPARATOR=: + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi # Support unset when possible. @@ -65,8 +93,6 @@ # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -89,7 +115,7 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi @@ -102,17 +128,10 @@ PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && @@ -134,7 +153,7 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -160,7 +179,7 @@ as_have_required=no fi - if test $as_have_required = yes && (eval ": + if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } @@ -242,7 +261,7 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -263,7 +282,7 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -343,10 +362,10 @@ if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi @@ -415,9 +434,10 @@ test \$exitcode = 0") || { echo No shell found that supports shell functions. - echo Please tell autoconf@gnu.org about your system, - echo including any error possibly output before this - echo message + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. } @@ -453,7 +473,7 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems @@ -481,7 +501,6 @@ *) ECHO_N='-n';; esac - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -494,19 +513,22 @@ rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -531,10 +553,10 @@ as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else case $1 in - -*)set "./$1";; + -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi @@ -723,9 +745,9 @@ # Identity of this package. PACKAGE_NAME='Déjà Dup' PACKAGE_TARNAME='deja-dup' -PACKAGE_VERSION='7.4' -PACKAGE_STRING='Déjà Dup 7.4' -PACKAGE_BUGREPORT='deja-dup-hackers@lists.launchpad.net' +PACKAGE_VERSION='10.0' +PACKAGE_STRING='Déjà Dup 10.0' +PACKAGE_BUGREPORT='deja-dup-team@lists.launchpad.net' ac_unique_file="deja-dup/main.vala" # Factoring default headers for most tests. @@ -765,185 +787,210 @@ #endif" gt_needs= -ac_subst_vars='SHELL -PATH_SEPARATOR -PACKAGE_NAME -PACKAGE_TARNAME -PACKAGE_VERSION -PACKAGE_STRING -PACKAGE_BUGREPORT -exec_prefix -prefix -program_transform_name -bindir -sbindir -libexecdir -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -am__isrc -CYGPATH_W -PACKAGE -VERSION -ACLOCAL -AUTOCONF -AUTOMAKE -AUTOHEADER -MAKEINFO -install_sh -STRIP -INSTALL_STRIP_PROGRAM -mkdir_p -AWK -SET_MAKE -am__leading_dot -AMTAR -am__tar -am__untar -PKG_CONFIG -HELP_DIR -OMF_DIR -DOC_USER_FORMATS -ENABLE_SK_TRUE -ENABLE_SK_FALSE -DISTCHECK_CONFIGURE_FLAGS -HAVE_GNOME_DOC_UTILS_TRUE -HAVE_GNOME_DOC_UTILS_FALSE -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -DEPDIR -am__include -am__quote -AMDEP_TRUE -AMDEP_FALSE -AMDEPBACKSLASH -CCDEPMODE -am__fastdepCC_TRUE -am__fastdepCC_FALSE -LIBTOOL -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -SED -GREP -EGREP -FGREP -LD -DUMPBIN -ac_ct_DUMPBIN +ac_subst_vars='LTLIBOBJS +LIBOBJS +DEBUG_CFLAGS +NAUTILUS_EXTENSION_DIR +NAUTILUS_LIBS +NAUTILUS_CFLAGS +MONITOR_LIBS +MONITOR_CFLAGS +LIBRARY_LIBS +LIBRARY_CFLAGS +PREF_LIBS +PREF_CFLAGS +APPLET_LIBS +APPLET_CFLAGS +DUP_LIBS +DUP_CFLAGS +DATADIRNAME +ALL_LINGUAS +INTLTOOL_PERL +INTLTOOL_POLICY_RULE +INTLTOOL_SERVICE_RULE +INTLTOOL_THEME_RULE +INTLTOOL_SCHEMAS_RULE +INTLTOOL_CAVES_RULE +INTLTOOL_XML_NOMERGE_RULE +INTLTOOL_XML_RULE +INTLTOOL_KBD_RULE +INTLTOOL_XAM_RULE +INTLTOOL_UI_RULE +INTLTOOL_SOUNDLIST_RULE +INTLTOOL_SHEET_RULE +INTLTOOL_SERVER_RULE +INTLTOOL_PONG_RULE +INTLTOOL_OAF_RULE +INTLTOOL_PROP_RULE +INTLTOOL_KEYS_RULE +INTLTOOL_DIRECTORY_RULE +INTLTOOL_DESKTOP_RULE +INTLTOOL_EXTRACT +INTLTOOL_MERGE +INTLTOOL_UPDATE +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +GETTEXT_PACKAGE +USE_VALAC_FALSE +USE_VALAC_TRUE +VALAC +PO4A +GCONF_SCHEMAS_INSTALL_FALSE +GCONF_SCHEMAS_INSTALL_TRUE +GCONF_SCHEMA_FILE_DIR +GCONF_SCHEMA_CONFIG_SOURCE +GCONFTOOL +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +lt_ECHO +RANLIB +AR +OBJDUMP NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +HAVE_GNOME_DOC_UTILS_FALSE +HAVE_GNOME_DOC_UTILS_TRUE +DISTCHECK_CONFIGURE_FLAGS +ENABLE_SK_FALSE +ENABLE_SK_TRUE +DOC_USER_FORMATS +OMF_DIR +HELP_DIR +PKG_CONFIG LN_S -AR -RANLIB -lt_ECHO -DSYMUTIL -NMEDIT -LIPO -OTOOL -OTOOL64 -CPP -GCONFTOOL -GCONF_SCHEMA_CONFIG_SOURCE -GCONF_SCHEMA_FILE_DIR -GCONF_SCHEMAS_INSTALL_TRUE -GCONF_SCHEMAS_INSTALL_FALSE -VALAC -USE_VALAC_TRUE -USE_VALAC_FALSE -GETTEXT_PACKAGE -USE_NLS -GETTEXT_MACRO_VERSION -MSGFMT -GMSGFMT -MSGFMT_015 -GMSGFMT_015 -XGETTEXT -XGETTEXT_015 -MSGMERGE -XGETTEXT_EXTRA_OPTIONS -INTL_MACOSX_LIBS -LIBICONV -LTLIBICONV -INTLLIBS -LIBINTL -LTLIBINTL -POSUB -INTLTOOL_UPDATE -INTLTOOL_MERGE -INTLTOOL_EXTRACT -INTLTOOL_DESKTOP_RULE -INTLTOOL_DIRECTORY_RULE -INTLTOOL_KEYS_RULE -INTLTOOL_PROP_RULE -INTLTOOL_OAF_RULE -INTLTOOL_PONG_RULE -INTLTOOL_SERVER_RULE -INTLTOOL_SHEET_RULE -INTLTOOL_SOUNDLIST_RULE -INTLTOOL_UI_RULE -INTLTOOL_XAM_RULE -INTLTOOL_KBD_RULE -INTLTOOL_XML_RULE -INTLTOOL_XML_NOMERGE_RULE -INTLTOOL_CAVES_RULE -INTLTOOL_SCHEMAS_RULE -INTLTOOL_THEME_RULE -INTLTOOL_SERVICE_RULE -INTLTOOL_POLICY_RULE -INTLTOOL_PERL -ALL_LINGUAS -DATADIRNAME -DUP_CFLAGS -DUP_LIBS -APPLET_CFLAGS -APPLET_LIBS -PREF_CFLAGS -PREF_LIBS -LIBRARY_CFLAGS -LIBRARY_LIBS -MONITOR_CFLAGS -MONITOR_LIBS -NAUTILUS_CFLAGS -NAUTILUS_LIBS -NAUTILUS_EXTENSION_DIR -DEBUG_CFLAGS -LIBOBJS -LTLIBOBJS' +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' ac_subst_files='' +ac_user_opts=' +enable_option_checking +with_help_dir +with_omf_dir +with_help_formats +enable_scrollkeeper +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +enable_libtool_lock +with_gconf_source +with_gconf_schema_file_dir +enable_schemas_install +enable_nls +enable_rpath +with_libiconv_prefix +with_libintl_prefix +enable_debug +' ac_precious_vars='build_alias host_alias target_alias @@ -971,6 +1018,8 @@ # Initialize some variables set by options. ac_init_help= ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null @@ -1069,13 +1118,21 @@ datarootdir=$ac_optarg ;; -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=no ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; @@ -1088,13 +1145,21 @@ dvidir=$ac_optarg ;; -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` - eval enable_$ac_feature=\$ac_optarg ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -1285,22 +1350,38 @@ ac_init_version=: ;; -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=\$ac_optarg ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/[-.]/_/g'` - eval with_$ac_package=no ;; + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. @@ -1320,7 +1401,7 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) { echo "$as_me: error: unrecognized option: $ac_option + -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -1329,16 +1410,16 @@ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; @@ -1347,22 +1428,38 @@ if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi -# Be sure to have absolute directory names. +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac - { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done @@ -1377,7 +1474,7 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes @@ -1393,10 +1490,10 @@ ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { echo "$as_me: error: Working directory cannot be determined" >&2 + { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { echo "$as_me: error: pwd does not report name of working directory" >&2 + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } @@ -1404,12 +1501,12 @@ if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X"$0" | + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1436,12 +1533,12 @@ fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. @@ -1468,7 +1565,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 Déjà Dup 7.4 to adapt to many kinds of systems. +\`configure' configures Déjà Dup 10.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1490,9 +1587,9 @@ Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] + [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] + [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify @@ -1502,25 +1599,25 @@ For better control, use the options below. Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/deja-dup] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/deja-dup] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF @@ -1538,11 +1635,12 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Déjà Dup 7.4:";; + short | recursive ) echo "Configuration of Déjà Dup 10.0:";; esac cat <<\_ACEOF Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-scrollkeeper do not make updates to the scrollkeeper database @@ -1553,7 +1651,8 @@ --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) - --disable-schemas-install Disable the schemas installation + --disable-schemas-install + Disable the schemas installation --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-debug=no/yes turn on debugging default=no @@ -1611,7 +1710,7 @@ Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1619,15 +1718,17 @@ if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1663,7 +1764,7 @@ echo && $SHELL "$ac_srcdir/configure" --help=recursive else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1672,11 +1773,11 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Déjà Dup configure 7.4 -generated by GNU Autoconf 2.61 +Déjà Dup configure 10.0 +generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1686,8 +1787,8 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Déjà Dup $as_me 7.4, which was -generated by GNU Autoconf 2.61. Invocation command line was +It was created by Déjà Dup $as_me 10.0, which was +generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -1723,7 +1824,7 @@ do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" + $as_echo "PATH: $as_dir" done IFS=$as_save_IFS @@ -1758,7 +1859,7 @@ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; @@ -1810,11 +1911,12 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac @@ -1844,9 +1946,9 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo @@ -1861,9 +1963,9 @@ do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - echo "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi @@ -1879,8 +1981,8 @@ echo fi test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -1922,21 +2024,24 @@ # Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" + ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site fi -shift -for ac_site_file +for ac_site_file in "$ac_site_file1" "$ac_site_file2" do + test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi @@ -1946,16 +2051,16 @@ # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1970,29 +2075,38 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in - *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in @@ -2002,10 +2116,12 @@ fi done if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi @@ -2066,8 +2182,8 @@ fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi @@ -2093,11 +2209,12 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -2126,17 +2243,29 @@ # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done done ;; esac + done IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then @@ -2149,8 +2278,8 @@ INSTALL=$ac_install_sh fi fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -2160,8 +2289,8 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file @@ -2184,9 +2313,9 @@ # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken + { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi @@ -2197,26 +2326,23 @@ # Ok. : else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! + { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! +$as_echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. +# Double any \ or $. # By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm -f conftest.sed +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` @@ -2227,15 +2353,15 @@ am_missing_run="$MISSING --run " else am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi -{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin @@ -2270,8 +2396,8 @@ MKDIR_P="$ac_install_sh -d" fi fi -{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -echo "${ECHO_T}$MKDIR_P" >&6; } +{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in @@ -2283,10 +2409,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. @@ -2299,7 +2425,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2310,22 +2436,23 @@ fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - { echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6; } + { $as_echo "$as_me:$LINENO: result: $AWK" >&5 +$as_echo "$AWK" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi test -n "$AWK" && break done -{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh @@ -2342,12 +2469,12 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi @@ -2366,8 +2493,8 @@ am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi fi @@ -2384,7 +2511,7 @@ # Define the identity of the package. PACKAGE='deja-dup' - VERSION='7.4' + VERSION='10.0' cat >>confdefs.h <<_ACEOF @@ -2422,10 +2549,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. @@ -2438,7 +2565,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2449,11 +2576,11 @@ fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2462,10 +2589,10 @@ ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. @@ -2478,7 +2605,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2489,11 +2616,11 @@ fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -2501,12 +2628,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -2531,16 +2654,27 @@ +{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -2555,7 +2689,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2567,11 +2701,11 @@ fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -echo "${ECHO_T}$PKG_CONFIG" >&6; } + { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2580,10 +2714,10 @@ ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) @@ -2598,7 +2732,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2610,11 +2744,11 @@ fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then - { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then @@ -2622,12 +2756,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG @@ -2639,14 +2769,14 @@ fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 - { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } PKG_CONFIG="" fi @@ -2655,10 +2785,10 @@ gdu_cv_version_required=0.3.2 if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gnome-doc-utils >= \$gdu_cv_version_required\"") >&5 ($PKG_CONFIG --exists --print-errors "gnome-doc-utils >= $gdu_cv_version_required") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then gdu_cv_have_gdu=yes else @@ -2668,8 +2798,8 @@ if test "$gdu_cv_have_gdu" = "yes"; then : else - { { echo "$as_me:$LINENO: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&5 -echo "$as_me: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&2;} + { { $as_echo "$as_me:$LINENO: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&5 +$as_echo "$as_me: error: gnome-doc-utils >= $gdu_cv_version_required not found" >&2;} { (exit 1); exit 1; }; } fi @@ -2746,10 +2876,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2762,7 +2892,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2773,11 +2903,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2786,10 +2916,10 @@ ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -2802,7 +2932,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2813,11 +2943,11 @@ fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -2825,12 +2955,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -2843,10 +2969,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2859,7 +2985,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2870,11 +2996,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2883,10 +3009,10 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2904,7 +3030,7 @@ continue fi ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2927,11 +3053,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2942,10 +3068,10 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. @@ -2958,7 +3084,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2969,11 +3095,11 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -2986,10 +3112,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. @@ -3002,7 +3128,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3013,11 +3139,11 @@ fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3029,12 +3155,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3044,44 +3166,50 @@ fi -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH +$as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } # Provide some information about the compiler. -echo "$as_me:$LINENO: checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" 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_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" 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_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" 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_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF @@ -3100,27 +3228,22 @@ } _ACEOF ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + ac_rmfiles= for ac_file in $ac_files do case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done @@ -3131,10 +3254,11 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' @@ -3145,7 +3269,7 @@ do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most @@ -3172,25 +3296,27 @@ ac_file='' fi -{ echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } if test -z "$ac_file"; then - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables +$as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } + { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then @@ -3199,49 +3325,53 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. +$as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi fi fi -{ echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } -rm -f a.out a.exe conftest$ac_cv_exeext b.out +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } -{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } -{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } 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_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will @@ -3250,31 +3380,33 @@ for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext -{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT -{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3297,40 +3429,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile +$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -3356,20 +3491,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 ac_compiler_gnu=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no @@ -3379,15 +3515,19 @@ ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } -GCC=`test $ac_compiler_gnu = yes && echo yes` +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes @@ -3414,20 +3554,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" @@ -3452,20 +3593,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag @@ -3491,20 +3633,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 ac_cv_prog_cc_g=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -3519,8 +3662,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then @@ -3536,10 +3679,10 @@ CFLAGS= fi fi -{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC @@ -3610,20 +3753,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 ac_cv_prog_cc_c89=$ac_arg else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 @@ -3639,15 +3783,15 @@ # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) - { echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; xno) - { echo "$as_me:$LINENO: result: unsupported" >&5 -echo "${ECHO_T}unsupported" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" - { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac @@ -3668,8 +3812,8 @@ .PHONY: am__doit END # If we don't find an include directive, just comment out the code. -{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none @@ -3696,8 +3840,8 @@ fi -{ echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6; } +{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. @@ -3721,10 +3865,10 @@ depcc="$CC" am_compiler_list= -{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up @@ -3812,8 +3956,8 @@ fi fi -{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if @@ -3840,11 +3984,12 @@ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. -{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -3873,17 +4018,29 @@ # program-specific install script used by HP pwplus--don't use. : else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi fi fi done done ;; esac + done IFS=$as_save_IFS +rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then @@ -3896,8 +4053,8 @@ INSTALL=$ac_install_sh fi fi -{ echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6; } +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -3907,11 +4064,12 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } -set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh @@ -3928,25 +4086,25 @@ rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } SET_MAKE= else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi case `pwd` in *\ * | *\ *) - { echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; + { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac -macro_version='2.2.4' -macro_revision='1.2976' +macro_version='2.2.6' +macro_revision='1.3012' @@ -3964,34 +4122,34 @@ # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi -{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -echo "$as_me: error: invalid value of canonical build" >&2;} +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +$as_echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; esac build=$ac_cv_build @@ -4008,27 +4166,27 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; -*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -echo "$as_me: error: invalid value of canonical host" >&2;} +*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +$as_echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; esac host=$ac_cv_host @@ -4045,48 +4203,43 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done - echo "$ac_script" | sed 99q >conftest.sed + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed $as_unset ac_script || ac_script= - # Extract the first word of "sed gsed" to use in msg output -if test -z "$SED"; then -set dummy sed gsed; ac_prog_name=$2 -if test "${ac_cv_path_SED+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$SED"; then ac_path_SED_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue - # Check for GNU ac_path_SED and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo '' >> "conftest.nl" + $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -4101,31 +4254,23 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_SED_found && break 3 + $ac_path_SED_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -SED="$ac_cv_path_SED" -if test -z "$SED"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;} + if test -z "$ac_cv_path_SED"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_SED=$SED fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 -echo "${ECHO_T}$ac_cv_path_SED" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed @@ -4142,42 +4287,37 @@ -{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Extract the first word of "grep ggrep" to use in msg output -if test -z "$GREP"; then -set dummy grep ggrep; ac_prog_name=$2 +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else + if test -z "$GREP"; then ac_path_GREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'GREP' >> "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -4192,74 +4332,60 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_GREP_found && break 3 + $ac_path_GREP_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_GREP=$GREP fi - fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -echo "${ECHO_T}$ac_cv_path_GREP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else - # Extract the first word of "egrep" to use in msg output -if test -z "$EGREP"; then -set dummy egrep; ac_prog_name=$2 -if test "${ac_cv_path_EGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$EGREP"; then ac_path_EGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'EGREP' >> "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -4274,75 +4400,61 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_EGREP_found && break 3 + $ac_path_EGREP_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_EGREP=$EGREP fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" -{ echo "$as_me:$LINENO: checking for fgrep" >&5 -echo $ECHO_N "checking for fgrep... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else - # Extract the first word of "fgrep" to use in msg output -if test -z "$FGREP"; then -set dummy fgrep; ac_prog_name=$2 -if test "${ac_cv_path_FGREP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else + if test -z "$FGREP"; then ac_path_FGREP_found=false -# Loop through the user's path and test for each of PROGNAME-LIST -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue - # Check for GNU ac_path_FGREP and select it if it is found. + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 - echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - echo 'FGREP' >> "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` @@ -4357,33 +4469,24 @@ rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac - - $ac_path_FGREP_found && break 3 + $ac_path_FGREP_found && break 3 + done done done - -done IFS=$as_save_IFS - - -fi - -FGREP="$ac_cv_path_FGREP" -if test -z "$FGREP"; then - { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + if test -z "$ac_cv_path_FGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } -fi - + fi else ac_cv_path_FGREP=$FGREP fi - fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 -echo "${ECHO_T}$ac_cv_path_FGREP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" @@ -4417,8 +4520,8 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -4447,14 +4550,14 @@ ;; esac elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR @@ -4484,19 +4587,19 @@ LD="$lt_cv_path_LD" if test -n "$LD"; then - { echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6; } + { $as_echo "$as_me:$LINENO: result: $LD" >&5 +$as_echo "$LD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 -echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld @@ -4520,10 +4623,10 @@ -{ echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 -echo $ECHO_N "checking for BSD- or MS-compatible name lister (nm)... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. @@ -4569,8 +4672,8 @@ : ${lt_cv_path_NM=no} fi fi -{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -echo "${ECHO_T}$lt_cv_path_NM" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else @@ -4580,10 +4683,10 @@ do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. @@ -4596,7 +4699,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4607,11 +4710,11 @@ fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then - { echo "$as_me:$LINENO: result: $DUMPBIN" >&5 -echo "${ECHO_T}$DUMPBIN" >&6; } + { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4624,10 +4727,10 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. @@ -4640,7 +4743,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4651,11 +4754,11 @@ fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then - { echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 -echo "${ECHO_T}$ac_ct_DUMPBIN" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4667,12 +4770,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN @@ -4691,45 +4790,34 @@ -{ echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 -echo $ECHO_N "checking the name lister ($NM) interface... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:4701: $ac_compile\"" >&5) + (eval echo "\"\$as_me:4800: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4704: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:4803: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4707: output\"" >&5) + (eval echo "\"\$as_me:4806: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 -echo "${ECHO_T}$lt_cv_nm_interface" >&6; } - -{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 -echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } -else - { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6; } -fi +{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments -{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" @@ -4750,7 +4838,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -4846,11 +4934,11 @@ fi if test -n $lt_cv_sys_max_cmd_len ; then - { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } + { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } else - { echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6; } + { $as_echo "$as_me:$LINENO: result: none" >&5 +$as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len @@ -4863,8 +4951,8 @@ : ${MV="mv -f"} : ${RM="rm -f"} -{ echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 -echo $ECHO_N "checking whether the shell understands some XSI constructs... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" @@ -4873,18 +4961,18 @@ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes -{ echo "$as_me:$LINENO: result: $xsi_shell" >&5 -echo "${ECHO_T}$xsi_shell" >&6; } +{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } -{ echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 -echo $ECHO_N "checking whether the shell understands \"+=\"... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes -{ echo "$as_me:$LINENO: result: $lt_shell_append" >&5 -echo "${ECHO_T}$lt_shell_append" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then @@ -4918,15 +5006,15 @@ -{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi -{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; @@ -4951,11 +5039,112 @@ +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + -{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 -echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= @@ -5005,6 +5194,12 @@ fi ;; +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; @@ -5142,8 +5337,8 @@ esac fi -{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -5162,10 +5357,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. @@ -5178,7 +5373,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5189,11 +5384,11 @@ fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { echo "$as_me:$LINENO: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6; } + { $as_echo "$as_me:$LINENO: result: $AR" >&5 +$as_echo "$AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5202,10 +5397,10 @@ ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. @@ -5218,7 +5413,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5229,11 +5424,11 @@ fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then @@ -5241,12 +5436,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -5271,10 +5462,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. @@ -5287,7 +5478,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5298,11 +5489,11 @@ fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then - { echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6; } + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5311,10 +5502,10 @@ ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. @@ -5327,7 +5518,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5338,11 +5529,11 @@ fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then - { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then @@ -5350,12 +5541,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP @@ -5374,10 +5561,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. @@ -5390,7 +5577,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5401,11 +5588,11 @@ fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - { echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6; } + { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5414,10 +5601,10 @@ ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. @@ -5430,7 +5617,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5441,11 +5628,11 @@ fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then - { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then @@ -5453,12 +5640,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB @@ -5535,10 +5718,10 @@ # Check for command to grab the raw symbol name followed by C symbol from nm. -{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. @@ -5555,7 +5738,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -5656,14 +5839,14 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then @@ -5720,7 +5903,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi @@ -5755,11 +5938,11 @@ lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { echo "$as_me:$LINENO: result: failed" >&5 -echo "${ECHO_T}failed" >&6; } + { $as_echo "$as_me:$LINENO: result: failed" >&5 +$as_echo "failed" >&6; } else - { echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6; } + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } fi @@ -5800,7 +5983,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) @@ -5815,11 +5998,11 @@ ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 5818 "configure"' > conftest.$ac_ext + echo '#line 6001 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in @@ -5857,7 +6040,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) @@ -5907,10 +6090,10 @@ # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" - { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' @@ -5939,26 +6122,30 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_cv_cc_needs_belf=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext ac_ext=c @@ -5968,8 +6155,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu fi -{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" @@ -5981,7 +6168,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) @@ -6008,10 +6195,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. @@ -6024,7 +6211,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6035,11 +6222,11 @@ fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then - { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 -echo "${ECHO_T}$DSYMUTIL" >&6; } + { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6048,10 +6235,10 @@ ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. @@ -6064,7 +6251,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6075,11 +6262,11 @@ fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then - { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 -echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then @@ -6087,12 +6274,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL @@ -6104,10 +6287,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. @@ -6120,7 +6303,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6131,11 +6314,11 @@ fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then - { echo "$as_me:$LINENO: result: $NMEDIT" >&5 -echo "${ECHO_T}$NMEDIT" >&6; } + { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6144,10 +6327,10 @@ ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. @@ -6160,7 +6343,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6171,11 +6354,11 @@ fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then - { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 -echo "${ECHO_T}$ac_ct_NMEDIT" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then @@ -6183,12 +6366,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT @@ -6200,10 +6379,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. @@ -6216,7 +6395,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6227,11 +6406,11 @@ fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then - { echo "$as_me:$LINENO: result: $LIPO" >&5 -echo "${ECHO_T}$LIPO" >&6; } + { $as_echo "$as_me:$LINENO: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6240,10 +6419,10 @@ ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. @@ -6256,7 +6435,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6267,11 +6446,11 @@ fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then - { echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 -echo "${ECHO_T}$ac_ct_LIPO" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then @@ -6279,12 +6458,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO @@ -6296,10 +6471,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. @@ -6312,7 +6487,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6323,11 +6498,11 @@ fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then - { echo "$as_me:$LINENO: result: $OTOOL" >&5 -echo "${ECHO_T}$OTOOL" >&6; } + { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6336,10 +6511,10 @@ ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. @@ -6352,7 +6527,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6363,11 +6538,11 @@ fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then - { echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 -echo "${ECHO_T}$ac_ct_OTOOL" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then @@ -6375,12 +6550,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL @@ -6392,10 +6563,10 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. @@ -6408,7 +6579,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6419,11 +6590,11 @@ fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then - { echo "$as_me:$LINENO: result: $OTOOL64" >&5 -echo "${ECHO_T}$OTOOL64" >&6; } + { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6432,10 +6603,10 @@ ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. @@ -6448,7 +6619,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6459,11 +6630,11 @@ fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then - { echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 -echo "${ECHO_T}$ac_ct_OTOOL64" >&6; } + { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then @@ -6471,12 +6642,8 @@ else case $cross_compiling:$ac_tool_warned in yes:) -{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&5 -echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools -whose name does not start with the host triplet. If you think this -configuration is useful to you, please write to autoconf@gnu.org." >&2;} +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 @@ -6511,10 +6678,10 @@ - { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 -echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then @@ -6538,12 +6705,12 @@ rm -f conftest.* fi fi -{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 -echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } - { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 -echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS @@ -6570,33 +6737,37 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_cv_ld_exported_symbols_list=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_ld_exported_symbols_list=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi -{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 -echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -6637,15 +6808,15 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" @@ -6677,20 +6848,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. @@ -6714,13 +6886,14 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err @@ -6728,7 +6901,7 @@ # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. @@ -6753,8 +6926,8 @@ else ac_cv_prog_CPP=$CPP fi -{ echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6; } +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do @@ -6782,20 +6955,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. @@ -6819,13 +6993,14 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err @@ -6833,7 +7008,7 @@ # Broken: success on invalid input. continue else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. @@ -6849,11 +7024,13 @@ if $ac_preproc_ok; then : else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } fi ac_ext=c @@ -6863,10 +7040,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -6893,20 +7070,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 ac_cv_header_stdc=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no @@ -6998,37 +7176,40 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (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_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi -{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF @@ -7050,11 +7231,11 @@ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7072,20 +7253,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" @@ -7093,12 +7275,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -7109,11 +7294,11 @@ for ac_header in dlfcn.h do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -7131,20 +7316,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 eval "$as_ac_Header=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" @@ -7152,12 +7338,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -ac_res=`eval echo '${'$as_ac_Header'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } -if test `eval echo '${'$as_ac_Header'}'` = yes; then +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi @@ -7337,10 +7526,10 @@ setopt NO_GLOB_SUBST fi -{ echo "$as_me:$LINENO: checking for objdir" >&5 -echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null @@ -7352,8 +7541,8 @@ fi rmdir .libs 2>/dev/null fi -{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -echo "${ECHO_T}$lt_cv_objdir" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir @@ -7445,10 +7634,10 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -7498,11 +7687,11 @@ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7511,10 +7700,10 @@ if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then - { echo "$as_me:$LINENO: checking for file" >&5 -echo $ECHO_N "checking for file... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) @@ -7564,11 +7753,11 @@ MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then - { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -echo "${ECHO_T}$MAGIC_CMD" >&6; } + { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7648,10 +7837,10 @@ if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' - { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext @@ -7666,11 +7855,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7669: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7858: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7673: \$? = $ac_status" >&5 + echo "$as_me:7862: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7683,8 +7872,8 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" @@ -7703,8 +7892,8 @@ lt_prog_compiler_pic= lt_prog_compiler_static= -{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' @@ -7738,7 +7927,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -7753,10 +7942,11 @@ ;; hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. case $host_cpu in - hppa*64*|ia64*) + hppa*64*) # +Z the default ;; *) @@ -7806,7 +7996,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -7836,11 +8026,25 @@ linux* | k*bsd*-gnu) case $cc_basename in - icc* | ecc* | ifort*) + # old Intel for x86_64 which still supported -KPIC. + ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -7960,8 +8164,8 @@ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac -{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } @@ -7972,10 +8176,10 @@ # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then - { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext @@ -7990,11 +8194,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7993: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8197: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7997: \$? = $ac_status" >&5 + echo "$as_me:8201: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -8007,8 +8211,8 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in @@ -8031,10 +8235,10 @@ # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" @@ -8059,8 +8263,8 @@ LDFLAGS="$save_LDFLAGS" fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : @@ -8074,10 +8278,10 @@ - { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null @@ -8095,11 +8299,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8098: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8302: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8102: \$? = $ac_status" >&5 + echo "$as_me:8306: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8121,18 +8325,18 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } - { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null @@ -8150,11 +8354,11 @@ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8153: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8357: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8157: \$? = $ac_status" >&5 + echo "$as_me:8361: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8176,8 +8380,8 @@ $RM conftest* fi -{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } @@ -8185,19 +8389,19 @@ hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user - { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no - { echo "$as_me:$LINENO: result: $hard_links" >&5 -echo "${ECHO_T}$hard_links" >&6; } + { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } if test "$hard_links" = no; then - { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else @@ -8209,8 +8413,8 @@ - { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= @@ -8254,7 +8458,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -8269,6 +8473,9 @@ openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu) + link_all_deplibs=no + ;; esac ld_shlibs=yes @@ -8341,7 +8548,7 @@ fi ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -8407,6 +8614,9 @@ tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; @@ -8639,6 +8849,7 @@ fi fi + export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes @@ -8669,18 +8880,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -8695,12 +8909,13 @@ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -8736,18 +8951,21 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { @@ -8762,12 +8980,13 @@ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi @@ -8805,7 +9024,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -8836,7 +9055,11 @@ whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" - if test "$GCC" = "yes"; then + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" @@ -8928,7 +9151,7 @@ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' @@ -8986,27 +9209,31 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" @@ -9264,8 +9491,8 @@ fi fi -{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -echo "${ECHO_T}$ld_shlibs" >&6; } +{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld @@ -9301,15 +9528,15 @@ # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. - { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest @@ -9327,7 +9554,7 @@ if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no @@ -9339,8 +9566,8 @@ cat conftest.err 1>&5 fi $RM conftest* - { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi @@ -9503,8 +9730,8 @@ - { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in @@ -9666,14 +9893,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -9696,7 +9923,7 @@ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; - mingw*) + mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` @@ -9946,29 +10173,33 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then shlibpath_overrides_runpath=yes fi else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS @@ -10177,7 +10408,7 @@ version_type=linux need_lib_prefix=no need_version=no - library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -10194,8 +10425,8 @@ dynamic_linker=no ;; esac -{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -echo "${ECHO_T}$dynamic_linker" >&6; } +{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" @@ -10296,8 +10527,8 @@ - { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || @@ -10321,8 +10552,8 @@ # directories. hardcode_action=unsupported fi -{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 -echo "${ECHO_T}$hardcode_action" >&6; } +{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then @@ -10354,7 +10585,7 @@ lt_cv_dlopen_self=yes ;; - mingw* | pw32*) + mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; @@ -10366,10 +10597,10 @@ darwin*) # if libdl is installed we need to link against it - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" @@ -10401,33 +10632,37 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else @@ -10440,10 +10675,10 @@ ;; *) - { echo "$as_me:$LINENO: checking for shl_load" >&5 -echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 +$as_echo_n "checking for shl_load... " >&6; } if test "${ac_cv_func_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10496,38 +10731,42 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_shl_load=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } -if test $ac_cv_func_shl_load = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +$as_echo "$ac_cv_func_shl_load" >&6; } +if test "x$ac_cv_func_shl_load" = x""yes; then lt_cv_dlopen="shl_load" else - { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" @@ -10559,39 +10798,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dld_shl_load=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } -if test $ac_cv_lib_dld_shl_load = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = x""yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else - { echo "$as_me:$LINENO: checking for dlopen" >&5 -echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 +$as_echo_n "checking for dlopen... " >&6; } if test "${ac_cv_func_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -10644,38 +10887,42 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } -if test $ac_cv_func_dlopen = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +$as_echo "$ac_cv_func_dlopen" >&6; } +if test "x$ac_cv_func_dlopen" = x""yes; then lt_cv_dlopen="dlopen" else - { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" @@ -10707,39 +10954,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dl_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } -if test $ac_cv_lib_dl_dlopen = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else - { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" @@ -10771,39 +11022,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_svld_dlopen=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } -if test $ac_cv_lib_svld_dlopen = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = x""yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else - { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" @@ -10835,33 +11090,37 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_lib_dld_dld_link=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } -if test $ac_cv_lib_dld_dld_link = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi @@ -10900,10 +11159,10 @@ save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" - { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross @@ -10911,7 +11170,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10914 "configure" +#line 11173 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10949,11 +11208,7 @@ # endif # endif # endif -# endif -#endif - -#ifdef __cplusplus -extern "C" void exit (int); +# endif #endif void fnord() { int i=42;} @@ -10971,13 +11226,13 @@ else puts (dlerror ()); - exit (status); + return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? @@ -10995,15 +11250,15 @@ fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross @@ -11011,7 +11266,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11014 "configure" +#line 11269 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11052,10 +11307,6 @@ # endif #endif -#ifdef __cplusplus -extern "C" void exit (int); -#endif - void fnord() { int i=42;} int main () { @@ -11071,13 +11322,13 @@ else puts (dlerror ()); - exit (status); + return status; } _LT_EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? @@ -11095,8 +11346,8 @@ fi -{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } +{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" @@ -11134,13 +11385,13 @@ striplib= old_striplib= -{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in @@ -11148,16 +11399,16 @@ if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi ;; *) - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } ;; esac fi @@ -11174,13 +11425,13 @@ # Report which library types will actually be built - { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $can_build_shared" >&5 -echo "${ECHO_T}$can_build_shared" >&6; } + { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } - { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -11200,15 +11451,15 @@ fi ;; esac - { echo "$as_me:$LINENO: result: $enable_shared" >&5 -echo "${ECHO_T}$enable_shared" >&6; } + { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } - { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes - { echo "$as_me:$LINENO: result: $enable_static" >&5 -echo "${ECHO_T}$enable_static" >&6; } + { $as_echo "$as_me:$LINENO: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } @@ -11245,10 +11496,10 @@ # Extract the first word of "gconftool-2", so it can be a program name with args. set dummy gconftool-2; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GCONFTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $GCONFTOOL in [\\/]* | ?:[\\/]*) @@ -11263,7 +11514,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GCONFTOOL="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -11275,11 +11526,11 @@ fi GCONFTOOL=$ac_cv_path_GCONFTOOL if test -n "$GCONFTOOL"; then - { echo "$as_me:$LINENO: result: $GCONFTOOL" >&5 -echo "${ECHO_T}$GCONFTOOL" >&6; } + { $as_echo "$as_me:$LINENO: result: $GCONFTOOL" >&5 +$as_echo "$GCONFTOOL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11298,8 +11549,8 @@ - { echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5 -echo "${ECHO_T}Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; } + { $as_echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5 +$as_echo "Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; } if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' @@ -11313,15 +11564,15 @@ - { echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5 -echo "${ECHO_T}Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; } + { $as_echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5 +$as_echo "Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; } # Check whether --enable-schemas-install was given. if test "${enable_schemas_install+set}" = set; then enableval=$enable_schemas_install; case ${enableval} in yes|no) ;; - *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-schemas-install" >&5 -echo "$as_me: error: bad value ${enableval} for --enable-schemas-install" >&2;} + *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-schemas-install" >&5 +$as_echo "$as_me: error: bad value ${enableval} for --enable-schemas-install" >&2;} { (exit 1); exit 1; }; } ;; esac fi @@ -11336,15 +11587,56 @@ +# Extract the first word of "po4a", so it can be a program name with args. +set dummy po4a; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PO4A+set}" = set; then + $as_echo_n "(cached) " >&6 +else + case $PO4A in + [\\/]* | ?:[\\/]*) + ac_cv_path_PO4A="$PO4A" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PO4A="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PO4A=$ac_cv_path_PO4A +if test -n "$PO4A"; then + { $as_echo "$as_me:$LINENO: result: $PO4A" >&5 +$as_echo "$PO4A" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Checks for vala # Extract the first word of "valac", so it can be a program name with args. set dummy valac; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_VALAC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $VALAC in [\\/]* | ?:[\\/]*) @@ -11359,7 +11651,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_VALAC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -11371,11 +11663,11 @@ fi VALAC=$ac_cv_path_VALAC if test -n "$VALAC"; then - { echo "$as_me:$LINENO: result: $VALAC" >&5 -echo "${ECHO_T}$VALAC" >&6; } + { $as_echo "$as_me:$LINENO: result: $VALAC" >&5 +$as_echo "$VALAC" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11383,24 +11675,24 @@ USE_VALAC=true if test -z "$VALAC"; then - { echo "$as_me:$LINENO: WARNING: Vala compilation is disabled." >&5 -echo "$as_me: WARNING: Vala compilation is disabled." >&2;} + { $as_echo "$as_me:$LINENO: WARNING: Vala compilation is disabled." >&5 +$as_echo "$as_me: WARNING: Vala compilation is disabled." >&2;} USE_VALAC=false -elif test -n "0.5.6"; then - { echo "$as_me:$LINENO: checking valac version >= 0.5.6" >&5 -echo $ECHO_N "checking valac version >= 0.5.6... $ECHO_C" >&6; } +elif test -n "0.7.1"; then + { $as_echo "$as_me:$LINENO: checking valac version >= 0.7.1" >&5 +$as_echo_n "checking valac version >= 0.7.1... " >&6; } - VALAC_REQUIRED_VERSION_AS_INT=`echo 0.5.6 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` + VALAC_REQUIRED_VERSION_AS_INT=`echo 0.7.1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` VALAC_APPLIED_VERSION=`$VALAC --version | head -1 | cut -d" " -f2` VALAC_APPLIED_VERSION_AS_INT=`echo $VALAC_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - { echo "$as_me:$LINENO: result: $VALAC_APPLIED_VERSION found" >&5 -echo "${ECHO_T}$VALAC_APPLIED_VERSION found" >&6; } + { $as_echo "$as_me:$LINENO: result: $VALAC_APPLIED_VERSION found" >&5 +$as_echo "$VALAC_APPLIED_VERSION found" >&6; } if test "$VALAC_APPLIED_VERSION_AS_INT" -lt "$VALAC_REQUIRED_VERSION_AS_INT"; then - { echo "$as_me:$LINENO: WARNING: Your valac is too old. You need valac 0.5.6 or later." >&5 -echo "$as_me: WARNING: Your valac is too old. You need valac 0.5.6 or later." >&2;} - { echo "$as_me:$LINENO: WARNING: Vala compilation is disabled." >&5 -echo "$as_me: WARNING: Vala compilation is disabled." >&2;} + { $as_echo "$as_me:$LINENO: WARNING: Your valac is too old. You need valac 0.7.1 or later." >&5 +$as_echo "$as_me: WARNING: Your valac is too old. You need valac 0.7.1 or later." >&2;} + { $as_echo "$as_me:$LINENO: WARNING: Vala compilation is disabled." >&5 +$as_echo "$as_me: WARNING: Vala compilation is disabled." >&2;} USE_VALAC=false fi fi @@ -11425,8 +11717,8 @@ _ACEOF - { echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then enableval=$enable_nls; USE_NLS=$enableval @@ -11434,8 +11726,8 @@ USE_NLS=yes fi - { echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6; } + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } @@ -11475,10 +11767,10 @@ # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) @@ -11507,19 +11799,19 @@ fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then - { echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6; } + { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) @@ -11534,7 +11826,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -11547,11 +11839,11 @@ fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6; } + { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11598,10 +11890,10 @@ # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) @@ -11630,11 +11922,11 @@ fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then - { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6; } + { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi rm -f messages.po @@ -11676,10 +11968,10 @@ # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) @@ -11707,11 +11999,11 @@ fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then - { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -echo "${ECHO_T}$MSGMERGE" >&6; } + { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi @@ -11764,8 +12056,8 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. - { echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +$as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -11794,14 +12086,14 @@ ;; esac elif test "$with_gnu_ld" = yes; then - { echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } else - { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${acl_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" @@ -11828,19 +12120,19 @@ LD="$acl_cv_path_LD" if test -n "$LD"; then - { echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6; } + { $as_echo "$as_me:$LINENO: result: $LD" >&5 +$as_echo "$LD" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} +test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } -{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 -echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6; } +{ $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld - { echo "$as_me:$LINENO: checking for shared library run path origin" >&5 -echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } if test "${acl_cv_rpath+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ @@ -11870,8 +12162,8 @@ acl_cv_rpath=done fi -{ echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 -echo "${ECHO_T}$acl_cv_rpath" >&6; } +{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" @@ -12371,10 +12663,10 @@ - { echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 -echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" @@ -12399,32 +12691,36 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gt_cv_func_CFPreferencesCopyAppValue=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_CFPreferencesCopyAppValue=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi -{ echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 -echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then cat >>confdefs.h <<\_ACEOF @@ -12432,10 +12728,10 @@ _ACEOF fi - { echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 -echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" @@ -12460,32 +12756,36 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then gt_cv_func_CFLocaleCopyCurrent=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_CFLocaleCopyCurrent=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi -{ echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 -echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6; } +{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then cat >>confdefs.h <<\_ACEOF @@ -12535,10 +12835,10 @@ gt_expression_test_code= fi - { echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 -echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -12565,32 +12865,37 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$gt_func_gnugettext_libc=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$gt_func_gnugettext_libc=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -ac_res=`eval echo '${'$gt_func_gnugettext_libc'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$gt_func_gnugettext_libc'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then @@ -12623,10 +12928,10 @@ done - { echo "$as_me:$LINENO: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" @@ -12655,26 +12960,30 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then @@ -12704,40 +13013,44 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi -{ echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then - { echo "$as_me:$LINENO: checking for working iconv" >&5 -echo $ECHO_N "checking for working iconv... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } if test "${am_cv_func_iconv_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" @@ -12820,29 +13133,32 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (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_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_func_iconv_works=yes else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) am_cv_func_iconv_works=no fi +rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi @@ -12850,8 +13166,8 @@ LIBS="$am_save_LIBS" fi -{ echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 -echo "${ECHO_T}$am_cv_func_iconv_works" >&6; } +{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; @@ -12867,10 +13183,10 @@ fi if test "$am_cv_lib_iconv" = yes; then - { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 -echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $LIBICONV" >&5 -echo "${ECHO_T}$LIBICONV" >&6; } + { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= @@ -13315,10 +13631,10 @@ done fi - { echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 -echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" @@ -13353,26 +13669,30 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then eval "$gt_func_gnugettext_libintl=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$gt_func_gnugettext_libintl=no" fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then @@ -13406,38 +13726,43 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi -ac_res=`eval echo '${'$gt_func_gnugettext_libintl'}'` - { echo "$as_me:$LINENO: result: $ac_res" >&5 -echo "${ECHO_T}$ac_res" >&6; } +ac_res=`eval 'as_val=${'$gt_func_gnugettext_libintl'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ @@ -13473,13 +13798,13 @@ fi fi - { echo "$as_me:$LINENO: checking whether to use NLS" >&5 -echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6; } + { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then - { echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 -echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" @@ -13489,18 +13814,18 @@ else gt_source="included intl directory" fi - { echo "$as_me:$LINENO: result: $gt_source" >&5 -echo "${ECHO_T}$gt_source" >&6; } + { $as_echo "$as_me:$LINENO: result: $gt_source" >&5 +$as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then - { echo "$as_me:$LINENO: checking how to link with libintl" >&5 -echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6; } - { echo "$as_me:$LINENO: result: $LIBINTL" >&5 -echo "${ECHO_T}$LIBINTL" >&6; } + { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:$LINENO: result: $LIBINTL" >&5 +$as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= @@ -13555,8 +13880,8 @@ case "$am__api_version" in 1.01234) - { { echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 -echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;} + { { $as_echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 +$as_echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;} { (exit 1); exit 1; }; } ;; *) @@ -13564,27 +13889,27 @@ esac if test -n "0.37"; then - { echo "$as_me:$LINENO: checking for intltool >= 0.37" >&5 -echo $ECHO_N "checking for intltool >= 0.37... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for intltool >= 0.37" >&5 +$as_echo_n "checking for intltool >= 0.37... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.37 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` - { echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 -echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found" >&6; } + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 +$as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || - { { echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.37 or later." >&5 -echo "$as_me: error: Your intltool is too old. You need intltool 0.37 or later." >&2;} + { { $as_echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.37 or later." >&5 +$as_echo "$as_me: error: Your intltool is too old. You need intltool 0.37 or later." >&2;} { (exit 1); exit 1; }; } fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_UPDATE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) @@ -13599,7 +13924,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13611,20 +13936,20 @@ fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5 -echo "${ECHO_T}$INTLTOOL_UPDATE" >&6; } + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_UPDATE" >&5 +$as_echo "$INTLTOOL_UPDATE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_MERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) @@ -13639,7 +13964,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13651,20 +13976,20 @@ fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5 -echo "${ECHO_T}$INTLTOOL_MERGE" >&6; } + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_MERGE" >&5 +$as_echo "$INTLTOOL_MERGE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_EXTRACT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) @@ -13679,7 +14004,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13691,17 +14016,17 @@ fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5 -echo "${ECHO_T}$INTLTOOL_EXTRACT" >&6; } + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_EXTRACT" >&5 +$as_echo "$INTLTOOL_EXTRACT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then - { { echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5 -echo "$as_me: error: The intltool scripts were not found. Please install intltool." >&2;} + { { $as_echo "$as_me:$LINENO: error: The intltool scripts were not found. Please install intltool." >&5 +$as_echo "$as_me: error: The intltool scripts were not found. Please install intltool." >&2;} { (exit 1); exit 1; }; } fi @@ -13745,13 +14070,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) @@ -13766,7 +14167,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13778,20 +14179,20 @@ fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then - { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6; } + { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) @@ -13806,7 +14207,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13818,20 +14219,20 @@ fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then - { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -echo "${ECHO_T}$MSGMERGE" >&6; } + { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) @@ -13846,7 +14247,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13858,20 +14259,20 @@ fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then - { echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6; } + { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) @@ -13886,7 +14287,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13899,34 +14300,34 @@ fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then - { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6; } + { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then - { { echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} + { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 +$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} { (exit 1); exit 1; }; } fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then - { { echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 -echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} + { { $as_echo "$as_me:$LINENO: error: GNU gettext tools not found; required for intltool" >&5 +$as_echo "$as_me: error: GNU gettext tools not found; required for intltool" >&2;} { (exit 1); exit 1; }; } fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 -{ echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) @@ -13941,7 +14342,7 @@ for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -13953,33 +14354,40 @@ fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then - { echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 -echo "${ECHO_T}$INTLTOOL_PERL" >&6; } + { $as_echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 +$as_echo "$INTLTOOL_PERL" >&6; } else - { echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6; } + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then - { { echo "$as_me:$LINENO: error: perl not found; required for intltool" >&5 -echo "$as_me: error: perl not found; required for intltool" >&2;} + { { $as_echo "$as_me:$LINENO: error: perl not found" >&5 +$as_echo "$as_me: error: perl not found" >&2;} { (exit 1); exit 1; }; } fi -if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then - { { echo "$as_me:$LINENO: error: perl 5.x required for intltool" >&5 -echo "$as_me: error: perl 5.x required for intltool" >&2;} +{ $as_echo "$as_me:$LINENO: checking for perl >= 5.8.1" >&5 +$as_echo_n "checking for perl >= 5.8.1... " >&6; } +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + { { $as_echo "$as_me:$LINENO: error: perl 5.8.1 is required for intltool" >&5 +$as_echo "$as_me: error: perl 5.8.1 is required for intltool" >&2;} { (exit 1); exit 1; }; } +else + IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + { $as_echo "$as_me:$LINENO: result: $IT_PERL_VERSION" >&5 +$as_echo "$IT_PERL_VERSION" >&6; } fi if test "x" != "xno-xml"; then - { echo "$as_me:$LINENO: checking for XML::Parser" >&5 -echo $ECHO_N "checking for XML::Parser... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for XML::Parser" >&5 +$as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then - { echo "$as_me:$LINENO: result: ok" >&5 -echo "${ECHO_T}ok" >&6; } + { $as_echo "$as_me:$LINENO: result: ok" >&5 +$as_echo "ok" >&6; } else - { { echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 -echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;} + { { $as_echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 +$as_echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;} { (exit 1); exit 1; }; } fi fi @@ -14012,29 +14420,32 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then DATADIRNAME=share else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 case $host in *-*-solaris*) - { echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 -echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6; } + { $as_echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 +$as_echo_n "checking for bind_textdomain_codeset... " >&6; } if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 + $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -14087,32 +14498,36 @@ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$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 + $as_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 + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then ac_cv_func_bind_textdomain_codeset=yes else - echo "$as_me: failed program was:" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_bind_textdomain_codeset=no fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi -{ echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 -echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6; } -if test $ac_cv_func_bind_textdomain_codeset = yes; then +{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 +$as_echo "$ac_cv_func_bind_textdomain_codeset" >&6; } +if test "x$ac_cv_func_bind_textdomain_codeset" = x""yes; then DATADIRNAME=share else DATADIRNAME=lib @@ -14125,6 +14540,7 @@ esac fi +rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi @@ -14156,20 +14572,20 @@ _ACEOF -GTK_REQ_VER=2.14 +GTK_REQ_VER=2.12 # Check dependencies pkg_failed=no -{ echo "$as_me:$LINENO: checking for DUP" >&5 -echo $ECHO_N "checking for DUP... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for DUP" >&5 +$as_echo_n "checking for DUP... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$DUP_CFLAGS"; then pkg_cv_DUP_CFLAGS="$DUP_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14180,7 +14596,7 @@ libgnomeui-2.0 gnome-keyring-1") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DUP_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 @@ -14199,7 +14615,7 @@ pkg_cv_DUP_LIBS="$DUP_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14210,7 +14626,7 @@ libgnomeui-2.0 gnome-keyring-1") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_DUP_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 @@ -14250,7 +14666,7 @@ # Put the nasty error message in config.log where it belongs echo "$DUP_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER + { { $as_echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14265,7 +14681,7 @@ and DUP_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER +$as_echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14282,7 +14698,9 @@ " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14292,7 +14710,7 @@ To get pkg-config, see . See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14302,12 +14720,12 @@ To get pkg-config, see . See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } else DUP_CFLAGS=$pkg_cv_DUP_CFLAGS DUP_LIBS=$pkg_cv_DUP_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -14315,15 +14733,15 @@ pkg_failed=no -{ echo "$as_me:$LINENO: checking for APPLET" >&5 -echo $ECHO_N "checking for APPLET... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for APPLET" >&5 +$as_echo_n "checking for APPLET... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$APPLET_CFLAGS"; then pkg_cv_APPLET_CFLAGS="$APPLET_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14336,7 +14754,7 @@ gnome-keyring-1 libnotify") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_APPLET_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 @@ -14356,7 +14774,7 @@ pkg_cv_APPLET_LIBS="$APPLET_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14369,7 +14787,7 @@ gnome-keyring-1 libnotify") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_APPLET_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 @@ -14412,7 +14830,7 @@ # Put the nasty error message in config.log where it belongs echo "$APPLET_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER + { { $as_echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14428,7 +14846,7 @@ and APPLET_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER +$as_echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -14446,7 +14864,9 @@ " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14456,7 +14876,7 @@ To get pkg-config, see . See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14466,12 +14886,12 @@ To get pkg-config, see . See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } else APPLET_CFLAGS=$pkg_cv_APPLET_CFLAGS APPLET_LIBS=$pkg_cv_APPLET_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -14479,15 +14899,15 @@ pkg_failed=no -{ echo "$as_me:$LINENO: checking for PREF" >&5 -echo $ECHO_N "checking for PREF... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for PREF" >&5 +$as_echo_n "checking for PREF... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$PREF_CFLAGS"; then pkg_cv_PREF_CFLAGS="$PREF_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 gconf-2.0 unique-1.0\"") >&5 @@ -14496,7 +14916,7 @@ gconf-2.0 unique-1.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PREF_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 @@ -14514,7 +14934,7 @@ pkg_cv_PREF_LIBS="$PREF_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 gconf-2.0 unique-1.0\"") >&5 @@ -14523,7 +14943,7 @@ gconf-2.0 unique-1.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_PREF_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 @@ -14560,7 +14980,7 @@ # Put the nasty error message in config.log where it belongs echo "$PREF_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER + { { $as_echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 gconf-2.0 unique-1.0) were not met: @@ -14574,7 +14994,7 @@ and PREF_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER +$as_echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 gconf-2.0 unique-1.0) were not met: @@ -14590,7 +15010,9 @@ " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14600,7 +15022,7 @@ To get pkg-config, see . See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14610,12 +15032,12 @@ To get pkg-config, see . See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } else PREF_CFLAGS=$pkg_cv_PREF_CFLAGS PREF_LIBS=$pkg_cv_PREF_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -14623,34 +15045,40 @@ pkg_failed=no -{ echo "$as_me:$LINENO: checking for LIBRARY" >&5 -echo $ECHO_N "checking for LIBRARY... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for LIBRARY" >&5 +$as_echo_n "checking for LIBRARY... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$LIBRARY_CFLAGS"; then pkg_cv_LIBRARY_CFLAGS="$LIBRARY_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1\"") >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_LIBRARY_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1" 2>/dev/null` else pkg_failed=yes @@ -14664,26 +15092,32 @@ pkg_cv_LIBRARY_LIBS="$LIBRARY_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= \$GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1\"") >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_LIBRARY_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1" 2>/dev/null` else pkg_failed=yes @@ -14705,26 +15139,32 @@ if test $_pkg_short_errors_supported = yes; then LIBRARY_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1"` else LIBRARY_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1"` fi # Put the nasty error message in config.log where it belongs echo "$LIBRARY_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER + { { $as_echo "$as_me:$LINENO: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1) were not met: $LIBRARY_PKG_ERRORS @@ -14736,11 +15176,13 @@ and LIBRARY_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER +$as_echo "$as_me: error: Package requirements (gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1) were not met: $LIBRARY_PKG_ERRORS @@ -14754,7 +15196,9 @@ " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14764,7 +15208,7 @@ To get pkg-config, see . See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14774,12 +15218,12 @@ To get pkg-config, see . See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } else LIBRARY_CFLAGS=$pkg_cv_LIBRARY_CFLAGS LIBRARY_LIBS=$pkg_cv_LIBRARY_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -14787,18 +15231,18 @@ pkg_failed=no -{ echo "$as_me:$LINENO: checking for MONITOR" >&5 -echo $ECHO_N "checking for MONITOR... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for MONITOR" >&5 +$as_echo_n "checking for MONITOR... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$MONITOR_CFLAGS"; then pkg_cv_MONITOR_CFLAGS="$MONITOR_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "gconf-2.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_MONITOR_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0" 2>/dev/null` else @@ -14813,10 +15257,10 @@ pkg_cv_MONITOR_LIBS="$MONITOR_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\"") >&5 + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gconf-2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "gconf-2.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_MONITOR_LIBS=`$PKG_CONFIG --libs "gconf-2.0" 2>/dev/null` else @@ -14844,7 +15288,7 @@ # Put the nasty error message in config.log where it belongs echo "$MONITOR_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (gconf-2.0) were not met: + { { $as_echo "$as_me:$LINENO: error: Package requirements (gconf-2.0) were not met: $MONITOR_PKG_ERRORS @@ -14855,7 +15299,7 @@ and MONITOR_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (gconf-2.0) were not met: +$as_echo "$as_me: error: Package requirements (gconf-2.0) were not met: $MONITOR_PKG_ERRORS @@ -14868,7 +15312,9 @@ " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14878,7 +15324,7 @@ To get pkg-config, see . See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -14888,12 +15334,12 @@ To get pkg-config, see . See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } else MONITOR_CFLAGS=$pkg_cv_MONITOR_CFLAGS MONITOR_LIBS=$pkg_cv_MONITOR_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -14901,20 +15347,20 @@ pkg_failed=no -{ echo "$as_me:$LINENO: checking for NAUTILUS" >&5 -echo $ECHO_N "checking for NAUTILUS... $ECHO_C" >&6; } +{ $as_echo "$as_me:$LINENO: checking for NAUTILUS" >&5 +$as_echo_n "checking for NAUTILUS... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$NAUTILUS_CFLAGS"; then pkg_cv_NAUTILUS_CFLAGS="$NAUTILUS_CFLAGS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libnautilus-extension + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libnautilus-extension glib-2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "libnautilus-extension glib-2.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_NAUTILUS_CFLAGS=`$PKG_CONFIG --cflags "libnautilus-extension glib-2.0" 2>/dev/null` @@ -14930,12 +15376,12 @@ pkg_cv_NAUTILUS_LIBS="$NAUTILUS_LIBS" else if test -n "$PKG_CONFIG" && \ - { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libnautilus-extension + { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libnautilus-extension glib-2.0\"") >&5 ($PKG_CONFIG --exists --print-errors "libnautilus-extension glib-2.0") 2>&5 ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_NAUTILUS_LIBS=`$PKG_CONFIG --libs "libnautilus-extension glib-2.0" 2>/dev/null` @@ -14966,7 +15412,7 @@ # Put the nasty error message in config.log where it belongs echo "$NAUTILUS_PKG_ERRORS" >&5 - { { echo "$as_me:$LINENO: error: Package requirements (libnautilus-extension + { { $as_echo "$as_me:$LINENO: error: Package requirements (libnautilus-extension glib-2.0) were not met: $NAUTILUS_PKG_ERRORS @@ -14978,7 +15424,7 @@ and NAUTILUS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 -echo "$as_me: error: Package requirements (libnautilus-extension +$as_echo "$as_me: error: Package requirements (libnautilus-extension glib-2.0) were not met: $NAUTILUS_PKG_ERRORS @@ -14992,7 +15438,9 @@ " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then - { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -15002,7 +15450,7 @@ To get pkg-config, see . See \`config.log' for more details." >&5 -echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it +$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -15012,12 +15460,12 @@ To get pkg-config, see . See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } + { (exit 1); exit 1; }; }; } else NAUTILUS_CFLAGS=$pkg_cv_NAUTILUS_CFLAGS NAUTILUS_LIBS=$pkg_cv_NAUTILUS_LIBS - { echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6; } + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } : fi @@ -15042,7 +15490,7 @@ # Sets up output files. -ac_config_files="$ac_config_files Makefile data/Makefile libdeja-dup/Makefile applet/Makefile monitor/Makefile deja-dup/Makefile help/Makefile nautilus/Makefile po/Makefile.in preferences/Makefile vapi/Makefile" +ac_config_files="$ac_config_files Makefile data/Makefile libdeja-dup/Makefile applet/Makefile monitor/Makefile deja-dup/Makefile help/Makefile nautilus/Makefile po/Makefile.in preferences/Makefile tests/Makefile vapi/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -15071,11 +15519,12 @@ case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac @@ -15108,12 +15557,12 @@ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && - { echo "$as_me:$LINENO: updating cache $cache_file" >&5 -echo "$as_me: updating cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else - { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -15129,7 +15578,7 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`echo "$ac_i" | sed "$ac_script"` + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -15141,44 +15590,44 @@ if test -z "${ENABLE_SK_TRUE}" && test -z "${ENABLE_SK_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SK\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_SK\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"ENABLE_SK\" was never defined. +$as_echo "$as_me: error: conditional \"ENABLE_SK\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${HAVE_GNOME_DOC_UTILS_TRUE}" && test -z "${HAVE_GNOME_DOC_UTILS_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. +$as_echo "$as_me: error: conditional \"HAVE_GNOME_DOC_UTILS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. +$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. +$as_echo "$as_me: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${USE_VALAC_TRUE}" && test -z "${USE_VALAC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"USE_VALAC\" was never defined. + { { $as_echo "$as_me:$LINENO: error: conditional \"USE_VALAC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"USE_VALAC\" was never defined. +$as_echo "$as_me: error: conditional \"USE_VALAC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi @@ -15188,11 +15637,12 @@ : ${CONFIG_STATUS=./config.status} +ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. @@ -15205,7 +15655,7 @@ SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## @@ -15215,7 +15665,7 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST @@ -15237,17 +15687,45 @@ as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - PATH_SEPARATOR=: + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi - rm -f conf$$.sh + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi # Support unset when possible. @@ -15263,8 +15741,6 @@ # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) -as_nl=' -' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. @@ -15287,7 +15763,7 @@ as_myself=$0 fi if test ! -f "$as_myself"; then - echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi @@ -15300,17 +15776,10 @@ PS4='+ ' # NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - fi -done +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && @@ -15332,7 +15801,7 @@ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -echo X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -15383,7 +15852,7 @@ s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems @@ -15411,7 +15880,6 @@ *) ECHO_N='-n';; esac - if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr @@ -15424,19 +15892,22 @@ rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir - mkdir conf$$.dir + mkdir conf$$.dir 2>/dev/null fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else as_ln_s='cp -p' -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln + fi else as_ln_s='cp -p' fi @@ -15461,10 +15932,10 @@ as_test_x=' eval sh -c '\'' if test -d "$1"; then - test -d "$1/."; + test -d "$1/."; else case $1 in - -*)set "./$1";; + -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi @@ -15486,8 +15957,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Déjà Dup $as_me 7.4, which was -generated by GNU Autoconf 2.61. Invocation command line was +This file was extended by Déjà Dup $as_me 10.0, which was +generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -15500,7 +15971,16 @@ _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" @@ -15508,22 +15988,23 @@ _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. -Usage: $0 [OPTIONS] [FILE]... +Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit - -q, --quiet do not print progress messages + -q, --quiet, --silent + do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE Configuration files: $config_files @@ -15537,13 +16018,13 @@ Report bugs to ." _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -Déjà Dup config.status 7.4 -configured by $0, generated by GNU Autoconf 2.61, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" +Déjà Dup config.status 10.0 +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" -Copyright (C) 2006 Free Software Foundation, Inc. +Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -15551,11 +16032,12 @@ srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do @@ -15577,30 +16059,36 @@ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - echo "$ac_cs_version"; exit ;; + $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - { echo "$as_me: error: ambiguous option: $1 + { $as_echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) - echo "$ac_cs_usage"; exit ;; + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. - -*) { echo "$as_me: error: unrecognized option: $1 + -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; @@ -15619,27 +16107,29 @@ fi _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - CONFIG_SHELL=$SHELL + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' export CONFIG_SHELL - exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + exec "\$@" fi _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - echo "$ac_log" + $as_echo "$ac_log" } >&5 _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # @@ -15681,6 +16171,7 @@ lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' @@ -15786,6 +16277,7 @@ lt_SP2NL \ lt_NL2SP \ reload_flag \ +OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ @@ -15907,7 +16399,7 @@ _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets @@ -15927,11 +16419,12 @@ "nautilus/Makefile") CONFIG_FILES="$CONFIG_FILES nautilus/Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "preferences/Makefile") CONFIG_FILES="$CONFIG_FILES preferences/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "vapi/Makefile") CONFIG_FILES="$CONFIG_FILES vapi/Makefile" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done @@ -15972,284 +16465,144 @@ (umask 077 && mkdir "$tmp") } || { - echo "$me: cannot create a temporary directory in ." >&2 + $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } -# -# Set up the sed scripts for CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then -_ACEOF +ac_cr=' ' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -SHELL!$SHELL$ac_delim -PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim -PACKAGE_NAME!$PACKAGE_NAME$ac_delim -PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim -PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim -PACKAGE_STRING!$PACKAGE_STRING$ac_delim -PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim -exec_prefix!$exec_prefix$ac_delim -prefix!$prefix$ac_delim -program_transform_name!$program_transform_name$ac_delim -bindir!$bindir$ac_delim -sbindir!$sbindir$ac_delim -libexecdir!$libexecdir$ac_delim -datarootdir!$datarootdir$ac_delim -datadir!$datadir$ac_delim -sysconfdir!$sysconfdir$ac_delim -sharedstatedir!$sharedstatedir$ac_delim -localstatedir!$localstatedir$ac_delim -includedir!$includedir$ac_delim -oldincludedir!$oldincludedir$ac_delim -docdir!$docdir$ac_delim -infodir!$infodir$ac_delim -htmldir!$htmldir$ac_delim -dvidir!$dvidir$ac_delim -pdfdir!$pdfdir$ac_delim -psdir!$psdir$ac_delim -libdir!$libdir$ac_delim -localedir!$localedir$ac_delim -mandir!$mandir$ac_delim -DEFS!$DEFS$ac_delim -ECHO_C!$ECHO_C$ac_delim -ECHO_N!$ECHO_N$ac_delim -ECHO_T!$ECHO_T$ac_delim -LIBS!$LIBS$ac_delim -build_alias!$build_alias$ac_delim -host_alias!$host_alias$ac_delim -target_alias!$target_alias$ac_delim -INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim -INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim -INSTALL_DATA!$INSTALL_DATA$ac_delim -am__isrc!$am__isrc$ac_delim -CYGPATH_W!$CYGPATH_W$ac_delim -PACKAGE!$PACKAGE$ac_delim -VERSION!$VERSION$ac_delim -ACLOCAL!$ACLOCAL$ac_delim -AUTOCONF!$AUTOCONF$ac_delim -AUTOMAKE!$AUTOMAKE$ac_delim -AUTOHEADER!$AUTOHEADER$ac_delim -MAKEINFO!$MAKEINFO$ac_delim -install_sh!$install_sh$ac_delim -STRIP!$STRIP$ac_delim -INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim -mkdir_p!$mkdir_p$ac_delim -AWK!$AWK$ac_delim -SET_MAKE!$SET_MAKE$ac_delim -am__leading_dot!$am__leading_dot$ac_delim -AMTAR!$AMTAR$ac_delim -am__tar!$am__tar$ac_delim -am__untar!$am__untar$ac_delim -PKG_CONFIG!$PKG_CONFIG$ac_delim -HELP_DIR!$HELP_DIR$ac_delim -OMF_DIR!$OMF_DIR$ac_delim -DOC_USER_FORMATS!$DOC_USER_FORMATS$ac_delim -ENABLE_SK_TRUE!$ENABLE_SK_TRUE$ac_delim -ENABLE_SK_FALSE!$ENABLE_SK_FALSE$ac_delim -DISTCHECK_CONFIGURE_FLAGS!$DISTCHECK_CONFIGURE_FLAGS$ac_delim -HAVE_GNOME_DOC_UTILS_TRUE!$HAVE_GNOME_DOC_UTILS_TRUE$ac_delim -HAVE_GNOME_DOC_UTILS_FALSE!$HAVE_GNOME_DOC_UTILS_FALSE$ac_delim -CC!$CC$ac_delim -CFLAGS!$CFLAGS$ac_delim -LDFLAGS!$LDFLAGS$ac_delim -CPPFLAGS!$CPPFLAGS$ac_delim -ac_ct_CC!$ac_ct_CC$ac_delim -EXEEXT!$EXEEXT$ac_delim -OBJEXT!$OBJEXT$ac_delim -DEPDIR!$DEPDIR$ac_delim -am__include!$am__include$ac_delim -am__quote!$am__quote$ac_delim -AMDEP_TRUE!$AMDEP_TRUE$ac_delim -AMDEP_FALSE!$AMDEP_FALSE$ac_delim -AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim -CCDEPMODE!$CCDEPMODE$ac_delim -am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim -am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim -LIBTOOL!$LIBTOOL$ac_delim -build!$build$ac_delim -build_cpu!$build_cpu$ac_delim -build_vendor!$build_vendor$ac_delim -build_os!$build_os$ac_delim -host!$host$ac_delim -host_cpu!$host_cpu$ac_delim -host_vendor!$host_vendor$ac_delim -host_os!$host_os$ac_delim -SED!$SED$ac_delim -GREP!$GREP$ac_delim -EGREP!$EGREP$ac_delim -FGREP!$FGREP$ac_delim -_ACEOF + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done +rm -f conf$$subs.sh -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -CEOF$ac_eof +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - cat >conf$$subs.sed <<_ACEOF -LD!$LD$ac_delim -DUMPBIN!$DUMPBIN$ac_delim -ac_ct_DUMPBIN!$ac_ct_DUMPBIN$ac_delim -NM!$NM$ac_delim -LN_S!$LN_S$ac_delim -AR!$AR$ac_delim -RANLIB!$RANLIB$ac_delim -lt_ECHO!$lt_ECHO$ac_delim -DSYMUTIL!$DSYMUTIL$ac_delim -NMEDIT!$NMEDIT$ac_delim -LIPO!$LIPO$ac_delim -OTOOL!$OTOOL$ac_delim -OTOOL64!$OTOOL64$ac_delim -CPP!$CPP$ac_delim -GCONFTOOL!$GCONFTOOL$ac_delim -GCONF_SCHEMA_CONFIG_SOURCE!$GCONF_SCHEMA_CONFIG_SOURCE$ac_delim -GCONF_SCHEMA_FILE_DIR!$GCONF_SCHEMA_FILE_DIR$ac_delim -GCONF_SCHEMAS_INSTALL_TRUE!$GCONF_SCHEMAS_INSTALL_TRUE$ac_delim -GCONF_SCHEMAS_INSTALL_FALSE!$GCONF_SCHEMAS_INSTALL_FALSE$ac_delim -VALAC!$VALAC$ac_delim -USE_VALAC_TRUE!$USE_VALAC_TRUE$ac_delim -USE_VALAC_FALSE!$USE_VALAC_FALSE$ac_delim -GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim -USE_NLS!$USE_NLS$ac_delim -GETTEXT_MACRO_VERSION!$GETTEXT_MACRO_VERSION$ac_delim -MSGFMT!$MSGFMT$ac_delim -GMSGFMT!$GMSGFMT$ac_delim -MSGFMT_015!$MSGFMT_015$ac_delim -GMSGFMT_015!$GMSGFMT_015$ac_delim -XGETTEXT!$XGETTEXT$ac_delim -XGETTEXT_015!$XGETTEXT_015$ac_delim -MSGMERGE!$MSGMERGE$ac_delim -XGETTEXT_EXTRA_OPTIONS!$XGETTEXT_EXTRA_OPTIONS$ac_delim -INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim -LIBICONV!$LIBICONV$ac_delim -LTLIBICONV!$LTLIBICONV$ac_delim -INTLLIBS!$INTLLIBS$ac_delim -LIBINTL!$LIBINTL$ac_delim -LTLIBINTL!$LTLIBINTL$ac_delim -POSUB!$POSUB$ac_delim -INTLTOOL_UPDATE!$INTLTOOL_UPDATE$ac_delim -INTLTOOL_MERGE!$INTLTOOL_MERGE$ac_delim -INTLTOOL_EXTRACT!$INTLTOOL_EXTRACT$ac_delim -INTLTOOL_DESKTOP_RULE!$INTLTOOL_DESKTOP_RULE$ac_delim -INTLTOOL_DIRECTORY_RULE!$INTLTOOL_DIRECTORY_RULE$ac_delim -INTLTOOL_KEYS_RULE!$INTLTOOL_KEYS_RULE$ac_delim -INTLTOOL_PROP_RULE!$INTLTOOL_PROP_RULE$ac_delim -INTLTOOL_OAF_RULE!$INTLTOOL_OAF_RULE$ac_delim -INTLTOOL_PONG_RULE!$INTLTOOL_PONG_RULE$ac_delim -INTLTOOL_SERVER_RULE!$INTLTOOL_SERVER_RULE$ac_delim -INTLTOOL_SHEET_RULE!$INTLTOOL_SHEET_RULE$ac_delim -INTLTOOL_SOUNDLIST_RULE!$INTLTOOL_SOUNDLIST_RULE$ac_delim -INTLTOOL_UI_RULE!$INTLTOOL_UI_RULE$ac_delim -INTLTOOL_XAM_RULE!$INTLTOOL_XAM_RULE$ac_delim -INTLTOOL_KBD_RULE!$INTLTOOL_KBD_RULE$ac_delim -INTLTOOL_XML_RULE!$INTLTOOL_XML_RULE$ac_delim -INTLTOOL_XML_NOMERGE_RULE!$INTLTOOL_XML_NOMERGE_RULE$ac_delim -INTLTOOL_CAVES_RULE!$INTLTOOL_CAVES_RULE$ac_delim -INTLTOOL_SCHEMAS_RULE!$INTLTOOL_SCHEMAS_RULE$ac_delim -INTLTOOL_THEME_RULE!$INTLTOOL_THEME_RULE$ac_delim -INTLTOOL_SERVICE_RULE!$INTLTOOL_SERVICE_RULE$ac_delim -INTLTOOL_POLICY_RULE!$INTLTOOL_POLICY_RULE$ac_delim -INTLTOOL_PERL!$INTLTOOL_PERL$ac_delim -ALL_LINGUAS!$ALL_LINGUAS$ac_delim -DATADIRNAME!$DATADIRNAME$ac_delim -DUP_CFLAGS!$DUP_CFLAGS$ac_delim -DUP_LIBS!$DUP_LIBS$ac_delim -APPLET_CFLAGS!$APPLET_CFLAGS$ac_delim -APPLET_LIBS!$APPLET_LIBS$ac_delim -PREF_CFLAGS!$PREF_CFLAGS$ac_delim -PREF_LIBS!$PREF_LIBS$ac_delim -LIBRARY_CFLAGS!$LIBRARY_CFLAGS$ac_delim -LIBRARY_LIBS!$LIBRARY_LIBS$ac_delim -MONITOR_CFLAGS!$MONITOR_CFLAGS$ac_delim -MONITOR_LIBS!$MONITOR_LIBS$ac_delim -NAUTILUS_CFLAGS!$NAUTILUS_CFLAGS$ac_delim -NAUTILUS_LIBS!$NAUTILUS_LIBS$ac_delim -NAUTILUS_EXTENSION_DIR!$NAUTILUS_EXTENSION_DIR$ac_delim -DEBUG_CFLAGS!$DEBUG_CFLAGS$ac_delim -LIBOBJS!$LIBOBJS$ac_delim -LTLIBOBJS!$LTLIBOBJS$ac_delim -_ACEOF + print line +} - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 81; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` -if test -n "$ac_eof"; then - ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` - ac_eof=`expr $ac_eof + 1` -fi - -cat >>$CONFIG_STATUS <<_ACEOF -cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end -_ACEOF -sed ' -s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g -s/^/s,@/; s/!/@,|#_!!_#|/ -:n -t n -s/'"$ac_delim"'$/,g/; t -s/$/\\/; p -N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n -' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF -:end -s/|#_!!_#|//g -CEOF$ac_eof _ACEOF - # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty @@ -16265,19 +16618,133 @@ }' fi -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } +fi # test -n "$CONFIG_HEADERS" + -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -echo "$as_me: error: Invalid tag $ac_tag." >&2;} + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; @@ -16306,26 +16773,38 @@ [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac - ac_file_inputs="$ac_file_inputs $ac_f" + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ - configure_input="Generated from "`IFS=: - echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; esac ;; esac @@ -16335,7 +16814,7 @@ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$ac_file" | +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16361,7 +16840,7 @@ as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -16370,7 +16849,7 @@ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16391,17 +16870,17 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -16446,12 +16925,13 @@ esac _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= -case `sed -n '/datarootdir/ { +ac_sed_dataroot=' +/datarootdir/ { p q } @@ -16460,13 +16940,14 @@ /@infodir@/p /@localedir@/p /@mandir@/p -' $ac_file_inputs` in +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF -cat >>$CONFIG_STATUS <<_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g @@ -16480,15 +16961,16 @@ # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub $extrasub _ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s&@configure_input@&$configure_input&;t t +s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t @@ -16499,121 +16981,60 @@ s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack -" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 -echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; :H) # # CONFIG_HEADER # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then - echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - rm -f $ac_file - mv "$tmp/config.h" $ac_file + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } fi else - echo "/* $configure_input */" - cat "$ac_result" + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } fi - rm -f "$tmp/out12" -# Compute $ac_file's index in $config_headers. -_am_arg=$ac_file +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in @@ -16628,7 +17049,7 @@ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || -echo X"$_am_arg" | +$as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16648,30 +17069,40 @@ s/.*/./; q'`/stamp-h$_am_stamp_count ;; - :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 -echo "$as_me: executing $ac_file commands" >&6;} + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || -echo X"$mf" | +$as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16689,33 +17120,33 @@ q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || -echo X"$file" | +$as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16733,7 +17164,7 @@ q } s/.*/./; q'` - { as_dir=$dirpart/$fdir + { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac @@ -16741,7 +17172,7 @@ as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -16750,7 +17181,7 @@ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -echo X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -16771,13 +17202,14 @@ test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -echo "$as_me: error: cannot create directory $as_dir" >&2;} + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done done -done +} ;; "libtool":C) @@ -16901,6 +17333,9 @@ reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -17525,9 +17960,9 @@ esac done ;; "po/stamp-it":C) - if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" ; then - { { echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5 -echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;} + if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then + { { $as_echo "$as_me:$LINENO: error: po/Makefile.in.in was not created by intltoolize." >&5 +$as_echo "$as_me: error: po/Makefile.in.in was not created by intltoolize." >&2;} { (exit 1); exit 1; }; } fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" @@ -17556,6 +17991,11 @@ chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. @@ -17577,5 +18017,9 @@ # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi diff -Nru deja-dup-7.4/configure.ac deja-dup-10.0/configure.ac --- deja-dup-7.4/configure.ac 2009-02-11 20:59:20.000000000 -0500 +++ deja-dup-10.0/configure.ac 2009-06-02 17:48:47.000000000 -0400 @@ -1,7 +1,9 @@ +# -*- Mode: m4; indent-tabs-mode: nil; tab-width: 2 -*- +# # Process this file with autoconf to produce a configure script. # Sets up autoconf. -AC_INIT([Déjà Dup],[7.4],[deja-dup-hackers@lists.launchpad.net],[deja-dup]) +AC_INIT([Déjà Dup],[10.0],[deja-dup-team@lists.launchpad.net],[deja-dup]) AC_PREREQ([2.53]) AC_CONFIG_SRCDIR(deja-dup/main.vala) AC_CONFIG_HEADERS([config.h:config.h.in]) @@ -21,8 +23,10 @@ AC_PATH_PROG(GCONFTOOL, gconftool-2) AM_GCONF_SOURCE_2 +AC_PATH_PROG(PO4A, po4a) + # Checks for vala -AC_PROG_VALAC([0.5.6]) +AC_PROG_VALAC([0.7.1]) # Sets up gettext. GETTEXT_PACKAGE="$PACKAGE" @@ -42,7 +46,7 @@ AC_DEFINE_UNQUOTED(THEME_DIR, "${PREFIX}/${DATADIRNAME}/icons",[Icon directory]) AC_DEFINE_UNQUOTED(PKG_DATA_DIR, "${PREFIX}/${DATADIRNAME}/${PACKAGE}",[Package data directory]) -GTK_REQ_VER=2.14 +GTK_REQ_VER=2.12 # Check dependencies PKG_CHECK_MODULES(DUP, @@ -75,9 +79,11 @@ PKG_CHECK_MODULES(LIBRARY, gtk+-2.0 >= $GTK_REQ_VER gio-2.0 + gio-unix-2.0 gconf-2.0 libgnomeui-2.0 unique-1.0 + dbus-glib-1 gnome-keyring-1) AC_SUBST(LIBRARY_CFLAGS) AC_SUBST(LIBRARY_LIBS) @@ -120,6 +126,7 @@ nautilus/Makefile po/Makefile.in preferences/Makefile + tests/Makefile vapi/Makefile]) AC_OUTPUT diff -Nru deja-dup-7.4/COPYING-DOCS deja-dup-10.0/COPYING-DOCS --- deja-dup-7.4/COPYING-DOCS 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/COPYING-DOCS 1969-12-31 19:00:00.000000000 -0500 @@ -1,355 +0,0 @@ - GNU Free Documentation License - Version 1.1, March 2000 - - Copyright (C) 2000 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - -0. PREAMBLE - -The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone -the effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get -credit for their work, while not being considered responsible for -modifications made by others. - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - - -1. APPLICABILITY AND DEFINITIONS - -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you". - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A "Secondary Section" is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup has been designed to thwart or discourage -subsequent modification by readers is not Transparent. A copy that is -not "Transparent" is called "Opaque". - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML -or XML using a publicly available DTD, and standard-conforming simple -HTML designed for human modification. Opaque formats include -PostScript, PDF, proprietary formats that can be read and edited only -by proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the -machine-generated HTML produced by some word processors for output -purposes only. - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - - -2. VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - -3. COPYING IN QUANTITY - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must enclose -the copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - - -4. MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -A. Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions - (which should, if there were any, be listed in the History section - of the Document). You may use the same title as a previous version - if the original publisher of that version gives permission. -B. List on the Title Page, as authors, one or more persons or entities - responsible for authorship of the modifications in the Modified - Version, together with at least five of the principal authors of the - Document (all of its principal authors, if it has less than five). -C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. -D. Preserve all the copyright notices of the Document. -E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. -F. Include, immediately after the copyright notices, a license notice - giving the public permission to use the Modified Version under the - terms of this License, in the form shown in the Addendum below. -G. Preserve in that license notice the full lists of Invariant Sections - and required Cover Texts given in the Document's license notice. -H. Include an unaltered copy of this License. -I. Preserve the section entitled "History", and its title, and add to - it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. If - there is no section entitled "History" in the Document, create one - stating the title, year, authors, and publisher of the Document as - given on its Title Page, then add an item describing the Modified - Version as stated in the previous sentence. -J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and likewise - the network locations given in the Document for previous versions - it was based on. These may be placed in the "History" section. - You may omit a network location for a work that was published at - least four years before the Document itself, or if the original - publisher of the version it refers to gives permission. -K. In any section entitled "Acknowledgements" or "Dedications", - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. -L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. -M. Delete any section entitled "Endorsements". Such a section - may not be included in the Modified Version. -N. Do not retitle any existing section as "Endorsements" - or to conflict in title with any Invariant Section. - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - -5. COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications". You must delete all sections -entitled "Endorsements." - - -6. COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - - -7. AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version -of the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they -are not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. -Otherwise they must appear on covers around the whole aggregate. - - -8. TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the -original English version of this License. In case of a disagreement -between the translation and the original English version of this -License, the original English version will prevail. - - -9. TERMINATION - -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. - - -10. FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - - -ADDENDUM: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - - Copyright (c) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License". - -If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no -Front-Cover Texts, write "no Front-Cover Texts" instead of -"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. diff -Nru deja-dup-7.4/data/deja-dup-backup.svg deja-dup-10.0/data/deja-dup-backup.svg --- deja-dup-7.4/data/deja-dup-backup.svg 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/data/deja-dup-backup.svg 2009-06-02 17:48:47.000000000 -0400 @@ -0,0 +1,587 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Backup + + + Jakub Steiner + + + + + hdd + hard drive + save + io + store + + + + + http://jimmac.musichall.cz + + + Andreas Nilsson +Michael Terry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru deja-dup-7.4/data/deja-dup.desktop deja-dup-10.0/data/deja-dup.desktop --- deja-dup-7.4/data/deja-dup.desktop 2009-02-11 21:13:42.000000000 -0500 +++ deja-dup-10.0/data/deja-dup.desktop 2009-06-05 09:40:45.000000000 -0400 @@ -2,23 +2,36 @@ Version=1.0 Name=Déjà Dup Backup Utility +Name[ar]=ديجا-دوب +Name[da]=Déjà Dup Backup Værktøj Name[de]=Déjà Dup Datensicherung +Name[en_GB]=Déjà Dup Backup Utility Name[es]=Herramienta de Respaldo Déjà Dup +Name[fi]=Déjà Dup -varmuuskopiotyökalu Name[fr]=Utilitaire de sauvegarde Déjà Dup Name[gl]=Ferramenta de copia de seguridade do Déjà Dup Name[he]=כלי הגיבוי Déjà Dup +Name[id]=Utilitas Backup Déjà Dup Name[lt]=Atsarginių kopijų įrankis „Déjà Dup“ Name[nb]=Déjà Dup Sikkerhetskopi Name[nl]=Déjà Dup Reservekopie Hulpmiddel +Name[ru]=Утилита резервного копирования Déjà Dup Name[sv]=Säkerhetskopieringsverktyget Déjà Dup Comment=Backup your files +Comment[ar]=عمل نسخة احتياطية من الملفات +Comment[da]=Backup dine filer Comment[de]=Datensicherung +Comment[en_GB]=Backup your files Comment[es]=Respaldar sus archivos +Comment[fi]=Varmuuskopioi tiedostosi Comment[fr]=Sauvegarder vos fichier Comment[gl]=Facer copia de seguridade dos teus arquivos Comment[he]=גיבוי הקבצים שלך +Comment[id]=Backup file-file anda Comment[nb]=Sikkerhetskopier systemet ditt Comment[nl]=Reservekopie van Uw bestanden maken +Comment[ps]=خپل دوتنونه شاتړ کړي +Comment[ru]=Резервное копирование ваших файлов Comment[sv]=Säkerhetskopiera dina filer Icon=deja-dup diff -Nru deja-dup-7.4/data/deja-dup-monitor.desktop deja-dup-10.0/data/deja-dup-monitor.desktop --- deja-dup-7.4/data/deja-dup-monitor.desktop 2009-02-11 21:13:42.000000000 -0500 +++ deja-dup-10.0/data/deja-dup-monitor.desktop 2009-06-05 09:40:45.000000000 -0400 @@ -2,22 +2,33 @@ Version=1.0 Name=Déjà Dup Monitor +Name[ar]=مراقب ديجا-دوب +Name[da]=Déjà Dup Overvågning Name[de]=Déjà Dup Monitor +Name[en_GB]=Déjà Dup Monitor Name[es]=Monitor Déjà Dup +Name[fi]=Déjà Dup -valvontatyökalu Name[fr]=Superviseur Déjà Dup Name[gl]=Monitor do Déjà Dup Name[he]=צג המעקב של Déjà Dup +Name[id]=Monitor Déjà Dup Name[nb]=Déjà Dup Overvåker Name[nl]=Déjà Dup Monitor +Name[ru]=Монитор Déjà Dup Name[sv]=Övervaka Déjà Dup Comment=Schedule backups at regular intervals +Comment[da]=Planlæg backups med faste mellemrum Comment[de]=Datensicherungen in regelmäßigen Abständen durchführen +Comment[en_GB]=Schedule backups at regular intervals Comment[es]=Programe copias de respaldo en intervalos regulares +Comment[fi]=Aseta luomaan varmuuskopio säännöllisesti Comment[fr]=Planifier des sauvegardes à intervalles réguliers Comment[gl]=Programa copias de seguridade en intervalos regulares Comment[he]=תזמן גיבויים במרווחי זמן קבועים +Comment[id]=Skedul backup pada interval tertentu Comment[nb]=Ta sikkerhetskopi ved faste intervaller Comment[nl]=Reservekopie met regelmatige intervallen plannen +Comment[ru]=Запланированноые резервное копирование с регулярными интервалами Comment[sv]=Schemalägg säkerhetskopieringar vid fasta intervaller Icon=deja-dup diff -Nru deja-dup-7.4/data/deja-dup-restore.svg deja-dup-10.0/data/deja-dup-restore.svg --- deja-dup-7.4/data/deja-dup-restore.svg 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/data/deja-dup-restore.svg 2009-06-02 17:48:47.000000000 -0400 @@ -0,0 +1,674 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Restore + + + Jakub Steiner + + + + + hdd + hard drive + save + io + store + + + + + http://jimmac.musichall.cz + + + Andreas Nilsson +Michael Terry + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru deja-dup-7.4/data/deja-dup.schemas deja-dup-10.0/data/deja-dup.schemas --- deja-dup-7.4/data/deja-dup.schemas 2009-02-11 21:13:42.000000000 -0500 +++ deja-dup-10.0/data/deja-dup.schemas 2009-06-05 09:40:45.000000000 -0400 @@ -18,11 +18,21 @@ Diese Liste von Ordnern wird gesichert. Die reservierten Werte $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH und $VIDEO werden als Spezialordner des Benutzers erkannt. Relative Einträge sind relativ zu den Benutzerverzeichnis. + + Folders to backup + This list of folders will be backed up. Reserved values $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, and $VIDEO are recognised as the user's special folders. Relative entries are relative to the user's home folder. + + Directorios a ser respaldados + + Tallennettavat hakemistot + Seuraavan listan hakemistot varmuuskopioidaan. $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, and $VIDEO tunnistetaan käyttäjän erityisinä hakemistoina. Listan muut jäsenet riippuvat käyttäjän kotihakemistosta. + + Dossiers à sauvegarder Voici la liste des dossiers qui seront sauvegardés. Les valeurs $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, et $VIDEO sont utilisés comme dossiers spéciaux de l'utilisateur. Les entrées relatives sont associées au dossier personnel de l'utilisateur. @@ -33,6 +43,11 @@ רשימת תיקיות זו לא תגובה. הערכים השמורים $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, ו־$VIDEO הינם מזוהים כתיקיות משתמש מיוחדות. רשומות יחסיות הינן ביחס לתיקיית הבית של המשתמש. + + Direktori yang akan di backup + Daftar direktori yang akan di backup. Nilai dicadangkan $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, dan $VIDEO dikenali sebagai direktori khusus pengguna. Jika direktori tidak tertulis secara penuh, maka direktori tersebut diukur relatif terhadap direktori pangkal pengguna. + + Sikkerhetskopier følgende kataloger Dette er listen over kataloger som skal sikkerhetskopieres. De forhåndsdefinerte navnene $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH og $VIDEO peker til brukerens spesielle kataloger. Relative katalognavn er relative til brukerens hjemmekatalog. @@ -43,6 +58,11 @@ + + Каталоги, которые надо сохранить + + + Kataloger att säkerhetskopiera Denna lista över kataloger som kommer att säkerhetskopieras. Reserverade värdena $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH och $VIDEO känns igen som användarens specialkataloger. Relativa poster är relativa till användarens hemkatalog. @@ -66,11 +86,21 @@ Diese Liste von Ordnern wird nicht gesichert. Die reservierten Werte $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH und $VIDEO werden als Spezialordner des Benutzers erkannt. Relative Einträge sind relativ zu den Benutzerverzeichnis. Diese Liste hat Vorrang gegenüber der Datensicherungsliste. + + Folders not to backup + This list of folders will not be backed up. Reserved values $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, and $VIDEO are recognised as the user's special folders. Relative entries are relative to the user's home folder. This list takes precedence over the include list. + + Directorios a no ser respaldados + + Hakemistot joita ei tallenneta + Seuraavan listan hakemistoja ei varmuuskopioida. $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, and $VIDEO tunnistetaan käyttäjän erityisinä hakemistoina. Listan muut jäsenet riippuvat käyttäjän kotihakemistosta. Tämä lista ohittaa mukaanluettujen listan. + + Dossiers à ne pas sauvegarder Voici la liste des dossiers qui ne seront pas sauvegardés. Les valeurs réservées $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, et $VIDEO sont utilisés comme dossiers spéciaux de l'utilisateur. Les entrées relatives sont associées au dossier personnel de l'utilisateur. Cette liste prend le pas sur la liste des dossiers inclus. @@ -81,6 +111,11 @@ התיקיות ברשימה זו לא יגובו. הערכים השמורים הינם $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, ו־$VIDEO הינם מזוהים כתיקיות המשתמש המיוחדות. רשומות יחסיות הינן יחסיות לתיקיית הבית של המשתמש. רשימה זו מועדפת על פני רשימת ההכללה. + + Direktori yang tidak akan di backup + Daftar direktori yang tidak akan di backup. Nilai dicadangkan $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, dan $VIDEO dikenali sebagai direktori khusus pengguna. Jika direktori tidak tertulis secara penuh, maka direktori tersebut diukur relatif terhadap direktori pangkal pengguna. Daftar ini didahulukan dibandingkan dengan daftar cakupan. + + Ikke sikkerhetskopier følgende kataloger Dette er listen over kataloger som ikke skal sikkerhetskopieres. De forhåndsdefinerte navnene $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH og $VIDEO peker til brukerens spesielle kataloger. Relative katalognavn er relative til brukerens hjemmekatalog. Denne listen overstyrer listen over kataloger som skal sikkerhetskopieres. @@ -91,6 +126,11 @@ + + Каталоги, которые не надо сохранять + + + Kataloger att inte säkerhetskopiera Denna lista över kataloger som inte kommer att säkerhetskopieras. Reserverade värdena $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH och $VIDEO känns igen som användarens specialkataloger. Relativa poster är relativa till användarens hemkatalog. Denna lista åsidosätter inkluderingslistan. @@ -113,11 +153,21 @@ Ob die Datensicherungsdateien im Zielordner verschlüsselt werden sollen. Es wird dringend empfohlen, diese Option aktiviert zu belassen. + + Whether to encrypt your backup + Whether to encrypt your backup files in the storage location. It's strongly recommended to leave this as 'true'. + + Si cifrar su copia de respaldo Si cifrar sus archivos respaldados en el lugar de almacenamiento. Es altamente recomendado dejar esto como 'verdadero'. + + Kryptataanko varmuuskopio + Kryptataanko varmuuskopioidut tiedostot talletuskohteessa. Suositeltavaa. + + Si il faut chiffrer votre sauvegarde Si il faut chiffrer les fichiers de sauvegarde sur l'emplacement de stockage. Il est fortement recommandé de laisser cette valeur à 'vrai'. @@ -128,11 +178,26 @@ האם יש להצפין את קבצי הגיבוי שלך במיקום האיחסון. מומלץ בחום להשאיר ערך זה כ־'אמת'. + + Apakah akan mengenkripsi backup anda + Apakah akan mengenkripsi file backup anda dalam lokasi penyimpanannya. Direkomendasikan untuk membiarkannya dalam kondisi 'benar'. + + Hvorvidt sikkerhetskopiene skal krypteres. Hvorvidt sikkerhetskopiene skal krypteres i lagerplasseringen. Du anbefales på det sterkeste å la denne være 'true'. + + Of om uw backup te coderen + + + + + Следует ли шифровать резервную копию + Следует ли шифровать ваши файлы резервных копий? Настоятельно рекомендуется оставить как 'true'. + + Huruvida din säkerhetskopia ska krypteras Huruvida dina säkerhetskopior i lagringsplatsen ska krypteras. Det rekommenderas starkt att lämna kvar värdet som "sant". @@ -154,11 +219,21 @@ Déjà Dup wurde zuletzt ausgeführt am, im ISO 8601-Format + + The last time Déjà Dup was run + The last time Déjà Dup was run, in ISO 8601 format. + + La última vez que Déjà Dup fue ejecutado La última vez que Déjà Dup fue ejecutado, en formato ISO 8601. + + Milloin Déjà Dupia käytettiin edellisen kerran + Milloin Déjà Dupia käytettiin edellisen kerran ISO 8601 formaatissa + + Le dernier lancement de Déjà Dup Le dernier lancement de Déjà Dup, au format ISO 8601 @@ -174,11 +249,26 @@ הפעם האחרונה בה הופעל Déjà Dup, במבנה ISO 8601. + + Saat terakhir Déjà Dup dijalankan + Saat terakhir Déjà Dup dijalankan, dalam format ISO 8601. + + Sist gang Déjà Dup ble brukt Sist gang Déjà Dup ble brukt (i ISO 8601-format). + + De laatste keer dat Déjà Dup is gebruikt + De laatste keer dat Déjà Dup in gebruikt in ISO 8601 formaat. + + + + Время, когда Déjà Dup запускалось в последний раз + Время, когда Déjà Dup запускалось в последний раз, в формате ISO 8601 + + Senaste gången som Déjà Dup kördes Senaste gången som Déjà Dup kördes, i ISO 8601-format. @@ -201,11 +291,21 @@ Ob eine Datensicherung automatisch regelmäßig durchgeführt werden soll. + + Whether to periodically backup + Whether to automatically backup on a regular schedule. + + Si realizar copias de respaldo periódicamente Si realizar copias de respaldo automáticamente o en un programa regular + + Varmuuskopioidaanko säännöllisesti + Tehdäänkö varmuuskopio säännöllisesti + + Si il faut sauvegarder périodiquement Si il faut faire des sauvegardes automatiques régulières. @@ -216,11 +316,26 @@ האם לגבות באופן בתדירות קבועה באופן אוטומטי. + + Apakah akan melakukan backup secara periodik + Apakah akan melakukan backup rutin secara otomatis. + + Hvorvidt sikkerhetskopieringen skal gå med faste intervaller Hvorvidt sikkerhetskopieringen skal gå automatisk, med et fast intervall. + + Of een periodiek backup + + + + + Выполнять ли периодическое резервное копирование + Следует ли автоматически создавать резервные копии по расписанию. + + Huruvida periodiska säkerhetskopior ska tas Huruvida automatiska säkerhetskopior ska tas vid fasta tidpunkter. @@ -238,16 +353,31 @@ The number of days between backups. + + Hvor ofte backup skal finde sted + + + Datensicherung regelmäßig ausführen Anzahl der Tage zwischen den Datensicherungen + + How often to periodically backup + The number of days between backups. + + Que tan seguido respaldar periódicamente El número de días entre copias de respaldo. + + Miten usein varmuuskopio luodaan + Varmuuskopioiden välillä kulunut aika + + Périodicité des sauvegardes ? Le nombre de jours entre les sauvegardes. @@ -263,6 +393,11 @@ מספר הימים בין הגיבויים. + + Berapa sering perlu melakukan backup + Jumlah hari antara backup yang satu dengan lainnya. + + Intervall for periodisk sikkerhetskopi Dager mellom sikkerhetskopiering. @@ -270,7 +405,12 @@ Hoe vaak periodiek reservekopiën maken - + Het aantal dagen tussen backups. + + + + С какой периодичностью делать архивные копии + Количество дней между резервными копиями @@ -287,22 +427,32 @@ s3 Type of location to store backup - The protocol used for the backup location. Valid values are 's3', 'file', or 'ssh'. + The type of backup location. Valid values are 's3' or 'file'. Art des Datensicherungzieles - Das für Datensicherungen verwendete Protokoll. Gültige Werte sind "s3", "file" oder "ssh". + + + + + Type of location to store backup + Tipo de lugar donde almacenar su copia de respaldo - Protocolo usado por el servicio de copias de seguridad. Los valores correctos son 's3', 'archivo' o 'ssh' + + + + + Varmuuskopioiden sijainnin tyyppi + Type de destination pour enregistrer la sauvegarde - Le protocole utilisé pour le dossier de sauvegarde. Les valeurs possibles sont 's3', 'fichier', ou 'ssh', + Le type d(emplacement de sauvegarde. Les valeurs valides sont 's3' ou 'fichier'. @@ -312,17 +462,27 @@ סוג המיקום לשמירת גיבוי - הפרוטוקול המשמש למיקום הגיבוי. הערכים התקפים הם 's3', 'file', או 'ssh'. + + + + + Jenis lokasi untuk menyimpan backup + Type plassering for å lagre sikkerhetskopiene - Hvilken protokoll som skal brukes til plasseringen av sikkerhetskopien. Velg mellom 's3', 'file' og 'ssh'. + + + + + Type locatie om backup op te slaan + Typ av plats för att lagra säkerhetskopior - Protokollet som används för säkerhetskopians plats. Giltiga värden är "s3", "file" eller "ssh". + @@ -335,305 +495,174 @@ Amazon S3 Access Key ID Your Amazon S3 Access Key Identifier. This acts as your S3 username. - - - - /schemas/apps/deja-dup/s3/bucket - /apps/deja-dup/s3/bucket - deja-dup - string - - The Amazon S3 bucket name to use - Which Amazon S3 bucket to store files in. This does not need to exist already. Only legal hostname strings are valid. - - der Amazon S3 bucket name, der genutzt werden soll - - - - - שם דלי ה־Amazon S3 לשימוש - באיזה דלי של Amazon S3 יש לאחסן את הקבצים. הדלי לא חייב להיות מבעוד מועד. רק מחרוזות שם מארח חוקיות הן תקניות. - - - - Navn på Amazon S3 bucket - Hvilken Amazon S3 bucket sikkerhetskopiene skal oppbevares i. Denne behøver ikke å eksistere fra før av. Amazon tillater bare navn som i vertsnavn. - - - - Namn på Amazon S3-bucket att använda - Vilken Amazon S3-bucket att lagra filer i. Denna måste inte redan finnas. Endast giltiga värdnamnssträngar är giltiga. - - - - - /schemas/apps/deja-dup/s3/folder - /apps/deja-dup/s3/folder - deja-dup - string - / - - The Amazon S3 folder - An optional folder name to store files in. This folder will be created in the chosen bucket. - - - - - /schemas/apps/deja-dup/file/path - /apps/deja-dup/file/path - deja-dup - string - - Local backup location - Folder on your system in which to hold the backup files. + Amazon S3 Zugangsschlüssel ID + Die Amazon S3 Zugangsschlüsselkennung. Dies fungiert als S3 Benutzername. - - lokaler Ordner für Datensicherung - Position der Datensicherungsdateien + + Amazon S3 Access Key ID + Your Amazon S3 Access Key Identifier. This acts as your S3 username. - - Lugar de respaldo local - Carpeta en su sistema en donde mantener los archivos de respaldo. + + Amazon S3 avain ID + Amazon S3 avaimen identifioija. Se toimii S3 käyttäjätunnuksenasi. - Emplacement local des sauvegardes - Dossier sur votre système dans lequel conserver les fichiers sauvegardés. + Access Key ID d'Amazon S3 + Votre identifiant Access Key d'Amazon S3. Il joue le rôle de votre compte utilisateur S3. - - - Cartafol no teu sistema para gardar os arquivos do respaldo - - - - מיקום הגיבוי המקומי - תיקייה במערכת שלך בה ישמרו קבצי הגיבוי. + + ID Kunci Akses Amazon S3 + Identifikasi Kunci Akses Amazon S3 anda. Ini berfungsi sebagai nama pengguna S3 anda. - - Plassering for lokal sikkerhetskopi - Mappe på ditt system for å lagre sikkerhetskopier i. + + Amazon S3 toegangs code ID + - - Plaatselijke reservekopielocatie - Map op Uw systeem om de reservekopiën te bewaren + + Ключ доступа ID Amazon S3 + - Lokal plats för säkerhetskopior - Mapp på din dator i vilken säkerhetskopiorna ska ligga. + Id för Amazon S3 Access Key + Din Amazon S3 Access Key-identifierare. Detta fungerar som ditt S3-användarnamn. - /schemas/apps/deja-dup/ssh/username - /apps/deja-dup/ssh/username + /schemas/apps/deja-dup/s3/bucket + /apps/deja-dup/s3/bucket deja-dup string - SSH username - The user used for SSH connections. + The Amazon S3 bucket name to use + Which Amazon S3 bucket to store files in. This does not need to exist already. Only legal hostname strings are valid. - SSH Benutzername - Der für SSH-Verbindungen verwendete Benutzer. + der Amazon S3 bucket name, der genutzt werden soll + In welchem Amazon S3 bucket die Dateien gespeichert werden sollen. Der Ordner muss nicht bereits existieren. Nur korrekte Servernamen sind gültig. - - Nombre de usuario SSH - El usuario empleado para conexiones SSH + + The Amazon S3 bucket name to use + Which Amazon S3 bucket to store files in. This does not need to exist already. Only legal hostname strings are valid. - - Nom d'utilisateur SSH - Le nom d'utilisateur utilisé pour les connections SSH. + + Käytettävän Amazon S3 korin nimi + Mihin Amazon S3 koriin tiedostot tallennetaan. Tuon korin ei vielä tarvitse olla olemassa. Vain lailliset nimet ovat päteviä. - - Nome de usuario do SSH - Nome de usuario para conexións SSH + + Le nom du bucket d'Amazon S3 à utiliser + Quel bucket d'Amazon S3 pour y enregistrer les fichiers. Il n'a pas besoin de déjà exister. Seulement un nom de réseau légal est valide. - שם המשתמש ב־SSH - שם המשתמש המשמש להתחברויות SSH. + שם דלי ה־Amazon S3 לשימוש + באיזה דלי של Amazon S3 יש לאחסן את הקבצים. הדלי לא חייב להיות מבעוד מועד. רק מחרוזות שם מארח חוקיות הן תקניות. + + + + Nama wadah Amazon S3 yang akan digunakan + Wadah Amazon S3 untuk penempatan file. Tidak perlu sudah di buat sebelumnya. Hanya diperbolehkan dalam bentuk string nama host. - SSH-brukernavn - Hvilket brukernavn som brukes ved SSH-tilkoblingen. + Navn på Amazon S3 bucket + Hvilken Amazon S3 bucket sikkerhetskopiene skal oppbevares i. Denne behøver ikke å eksistere fra før av. Amazon tillater bare navn som i vertsnavn. - SSH gebruikersnaam + De Amazon S3 emmer naam om te gebruiken - Användarnamn för SSH - Användarnamnet som används för SSH-anslutningar. + Namn på Amazon S3-bucket att använda + Vilken Amazon S3-bucket att lagra filer i. Denna måste inte redan finnas. Endast giltiga värdnamnssträngar är giltiga. - /schemas/apps/deja-dup/ssh/server - /apps/deja-dup/ssh/server + /schemas/apps/deja-dup/s3/folder + /apps/deja-dup/s3/folder deja-dup string + / - SSH server - The server used for SSH connections. + The Amazon S3 folder + An optional folder name to store files in. This folder will be created in the chosen bucket. - SSH Server - Der für SSH-Verbindungen verwendete Server. - - - - Servidor SSH - El servidor utilizado para conexiones SSH + Ordner auf Amazon S3 + Optionaler Name eines Ordners, in dem die Dateien gespeichert werden. Der Ordner wird im gewählten S3 bucket erstellt. - - Serveur SSH - Le serveur utilisé pour les connections SSH. + + The Amazon S3 folder + An optional folder name to store files in. This folder will be created in the chosen bucket. - - Servidor SSH - Servidor usado para as conexións SSH. + + Amazon S3 kansio + Vapaaehtoinen nimi kansiolle johon tiedostot tallennetaan. Tämä kansio luodaan valittuun sijaintiin. - - שרת ה־SSH - השרת המשמש להתחברויות SSH. + + Le dossier Amazon S3 + Un nom de répertoire optionnel où y enregistrer des fichiers. Ce répertoire sera créé dans le bucket choisi. - - SSH-server - Hvilken server som brukes ved SSH-tilkoblingen. + + Map Amazon S3 + Nama map opsional untuk menyimpan file. Map ini akan dibuat dalam wadah yang dipilih. - SSH server + De Amazon S3 map - - SSH-server - Servern som används för SSH-anslutningar. - - - - - /schemas/apps/deja-dup/ssh/port - /apps/deja-dup/ssh/port - deja-dup - int - 22 - - SSH port - The port used for SSH connections. - - - - SSH Port - der Port, der für SSH-Verbindungen verwendet wird - - - - Puerto SSH - Puerto usado para conexiones SSH - - - - Port SSH - Le port utilisé pour les connections SSH. - - - - Porto SSH - Porto usado para conexións SSH - - - - פתחת ה־SSH - הפתחה המשמשת להתחברויות SSH. - - - - SSH-port - Hvilken port som brukes ved SSH-tilkoblinger. - - - - SSH poort + + Каталог на Amazon S3 - SSH-port - Portnumret som används för SSH-anslutningar. + Amazon S3-mappen + Ett valfritt mappnamn att lagra filer i. Denna mapp kommer att skapas i vald bucket. - /schemas/apps/deja-dup/ssh/directory - /apps/deja-dup/ssh/directory + /schemas/apps/deja-dup/file/path + /apps/deja-dup/file/path deja-dup string - / - SSH directory - The directory used for SSH connections. - - - - SSH Ordner - der Ordner, der für SSH-Verbindungen genutzt werden soll - - - - Directorio SSH - El directorio usado para conexiones SSH + Backup location + Location in which to hold the backup files. - Dossier SSH - Le dossier utilisé pour les connections SSH. - - - - Directorio SSH - Directorio usado para as conexións SSH - - - - תיקיית ה־SSH - התיקייה המשמשת לחיבורי SSH. - - - - SSH-katalog - Katalog for SSH-tilkoblinger - - - - SSH map + Emplacement de sauvegarde - - SSH-katalog - Katalog som använd för SSH-anslutningar. + + Местоположение резервных копий + Местоположение в котором хранятся файлы резервных копий diff -Nru deja-dup-7.4/data/deja-dup.schemas.in deja-dup-10.0/data/deja-dup.schemas.in --- deja-dup-7.4/data/deja-dup.schemas.in 2009-02-09 20:26:08.000000000 -0500 +++ deja-dup-10.0/data/deja-dup.schemas.in 2009-06-02 17:48:47.000000000 -0400 @@ -82,7 +82,7 @@ s3 Type of location to store backup - The protocol used for the backup location. Valid values are 's3', 'file', or 'ssh'. + The type of backup location. Valid values are 's3' or 'file'. @@ -126,54 +126,8 @@ deja-dup string - Local backup location - Folder on your system in which to hold the backup files. - - - - - /schemas/apps/deja-dup/ssh/username - /apps/deja-dup/ssh/username - deja-dup - string - - SSH username - The user used for SSH connections. - - - - - /schemas/apps/deja-dup/ssh/server - /apps/deja-dup/ssh/server - deja-dup - string - - SSH server - The server used for SSH connections. - - - - - /schemas/apps/deja-dup/ssh/port - /apps/deja-dup/ssh/port - deja-dup - int - 22 - - SSH port - The port used for SSH connections. - - - - - /schemas/apps/deja-dup/ssh/directory - /apps/deja-dup/ssh/directory - deja-dup - string - / - - SSH directory - The directory used for SSH connections. + Backup location + Location in which to hold the backup files. diff -Nru deja-dup-7.4/data/deja-dup.svg deja-dup-10.0/data/deja-dup.svg --- deja-dup-7.4/data/deja-dup.svg 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/data/deja-dup.svg 2009-06-02 17:48:47.000000000 -0400 @@ -9,1044 +9,371 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="48" - height="48" - id="svg2" + inkscape:export-ydpi="90.000000" + inkscape:export-xdpi="90.000000" + inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png" + width="48px" + height="48px" + id="svg11300" sodipodi:version="0.32" inkscape:version="0.46" - version="1.0" - sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions" - sodipodi:docname="icon.svg" - inkscape:export-filename="/home/jimmac/Desktop/drive-harddisk.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90" + sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions" + sodipodi:docname="deja-dup.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape"> - - - - - - - - + - - - - + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> - + id="linearGradient5060"> - - + id="stop5062" /> - - + id="stop5064" /> - + gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + id="linearGradient5048"> + id="stop5050" /> - - - - - + style="stop-color:black;stop-opacity:1;" /> + id="stop5052" /> + gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)" + x1="302.85715" + y1="366.64789" + x2="302.85715" + y2="609.50507" /> - + id="linearGradient4228"> + id="stop4230" + offset="0.0000000" + style="stop-color:#bbbbbb;stop-opacity:1.0000000;" /> + id="stop4232" + offset="1.0000000" + style="stop-color:#9f9f9f;stop-opacity:1.0000000;" /> - + gradientTransform="translate(0.000000,5.125000)" /> + id="linearGradient4244"> + id="stop4246" + offset="0.0000000" + style="stop-color:#e4e4e4;stop-opacity:1.0000000;" /> + id="stop4248" + offset="1.0000000" + style="stop-color:#d3d3d3;stop-opacity:1.0000000;" /> - - - - - + gradientTransform="matrix(1.286242,0.781698,-0.710782,1.169552,-2.354348,0.248140)" + r="20.935817" + fy="2.9585190" + fx="15.571491" + cy="2.9585190" + cx="15.571491" + id="radialGradient4250" + xlink:href="#linearGradient4244" + inkscape:collect="always" /> + id="linearGradient4184"> + id="stop4186" + offset="0.0000000" + style="stop-color:#838383;stop-opacity:1.0000000;" /> + id="stop4188" + offset="1.0000000" + style="stop-color:#bbbbbb;stop-opacity:0.0000000;" /> + id="linearGradient4209" + xlink:href="#linearGradient4184" + inkscape:collect="always" /> + id="linearGradient4236" + inkscape:collect="always"> + style="stop-color:#eeeeee;stop-opacity:1;" /> + style="stop-color:#eeeeee;stop-opacity:0;" /> - - - - - + gradientTransform="translate(0.000000,5.125000)" /> + id="linearGradient4274"> + style="stop-color:#ffffff;stop-opacity:0.25490198;" + offset="0.0000000" + id="stop4276" /> - - - - + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop4278" /> - - - + gradientTransform="translate(0.000000,5.125000)" /> + id="linearGradient4254" + inkscape:collect="always"> + style="stop-color:#ffffff;stop-opacity:1;" /> + style="stop-color:#ffffff;stop-opacity:0;" /> - - - + gradientTransform="translate(0.000000,5.125000)" /> + id="linearGradient2555"> + style="stop-color:#ffffff;stop-opacity:1;" /> + style="stop-color:#e6e6e6;stop-opacity:1.0000000;" + offset="0.50000000" + id="stop2561" /> - - - - - - + id="stop2563" + offset="0.75000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + style="stop-color:#e1e1e1;stop-opacity:1.0000000;" + offset="0.84166664" + id="stop2565" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="stop2559" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xlink:href="#linearGradient8662" + id="radialGradient8668" + cx="24.837126" + cy="36.421127" + fx="24.837126" + fy="36.421127" + r="15.644737" + gradientTransform="matrix(1.000000,-7.816467e-32,-1.132409e-32,0.536723,-5.897962e-14,16.87306)" + gradientUnits="userSpaceOnUse" /> + + id="linearGradient2690"> + + + + id="linearGradient2682"> + + + + id="linearGradient2402"> + + + + id="linearGradient2380"> + + + + id="linearGradient2871"> + + + + id="linearGradient2847"> + + + + id="linearGradient2831"> + + + + + id="linearGradient2797"> + + + + id="linearGradient8662"> + + + + x2="37.065414" + y2="26.194071" /> + x1="5.9649176" + y1="26.048164" + x2="52.854097" + y2="26.048164" /> + x1="5.9649176" + y1="26.048164" + x2="52.854097" + y2="26.048164" /> + + xlink:href="#linearGradient2380" + id="linearGradient2386" + x1="62.513836" + y1="36.061237" + x2="15.984863" + y2="20.60858" + gradientUnits="userSpaceOnUse" /> + xlink:href="#linearGradient2402" + id="linearGradient2408" + x1="18.935766" + y1="23.667896" + x2="53.588622" + y2="26.649362" + gradientUnits="userSpaceOnUse" /> + xlink:href="#linearGradient2682" + id="linearGradient2688" + x1="36.713837" + y1="31.455952" + x2="37.124462" + y2="24.842253" + gradientUnits="userSpaceOnUse" /> + xlink:href="#linearGradient2690" + id="linearGradient2696" + x1="32.647972" + y1="30.748846" + x2="37.124462" + y2="24.842253" + gradientUnits="userSpaceOnUse" /> + + + gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)" + cx="605.71429" + cy="486.64789" + fx="605.71429" + fy="486.64789" + r="117.14286" /> + gradientTransform="translate(3.5561763e-4,5.1254907)" + x1="7.6046205" + y1="28.481176" + x2="36.183067" + y2="40.943935" /> + + gradientTransform="translate(0.7958486,3.7996707)" + x1="7.0625000" + y1="35.281250" + x2="24.687500" + y2="35.281250" /> + gradientTransform="translate(3.5561763e-4,5.1254907)" + x1="12.277412" + y1="37.205811" + x2="12.221823" + y2="33.758667" /> + gradientTransform="translate(3.5561763e-4,5.1254907)" + x1="23.688078" + y1="11.318835" + x2="23.688078" + y2="26.357183" /> + gradientTransform="translate(3.5561763e-4,5.1254907)" + x1="12.378357" + y1="4.4331360" + x2="44.096100" + y2="47.620636" /> + + gradientTransform="matrix(1,0,0,0.536723,0,16.87306)" + cx="24.837126" + cy="36.421127" + fx="24.837126" + fy="36.421127" + r="15.644737" /> + x1="62.513836" + y1="36.061237" + x2="15.984863" + y2="20.60858" /> + x1="46.834816" + y1="45.264122" + x2="45.380436" + y2="50.939667" /> + x1="18.935766" + y1="23.667896" + x2="53.588622" + y2="26.649362" /> + x1="46.834816" + y1="45.264122" + x2="45.380436" + y2="50.939667" /> - - - - + inkscape:document-units="px" + inkscape:showpageshadow="false" + inkscape:window-width="891" + inkscape:window-height="721" + inkscape:window-x="262" + inkscape:window-y="25" /> + id="metadata4"> image/svg+xml - - Jakub Steiner, Lapo Calamandrei + Jakub Steiner - - - - - - Drive Harddisk + http://jimmac.musichall.cz + + Déjà Dup - hdd - drive - hard - fixed - media + reload + refresh + view + + + Michael Terry + + + rdf:about="http://creativecommons.org/licenses/publicdomain/"> + rdf:resource="http://creativecommons.org/ns#Reproduction" /> - + rdf:resource="http://creativecommons.org/ns#Distribution" /> - - + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> - - + id="g3017"> + transform="matrix(2.411405e-2,0,0,1.929202e-2,45.489886,41.75277)" + id="g5022" + style="display:inline"> + + style="opacity:0.40206185;fill:url(#radialGradient2997);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z" + id="path5058" + sodipodi:nodetypes="cccc" /> - + sodipodi:nodetypes="cccc" + id="path5018" + d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z" + style="opacity:0.40206185;fill:url(#radialGradient2999);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - + style="opacity:1;fill:url(#linearGradient3005);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.40899992;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect4174" + width="17.625" + height="5.5625" + x="7.8583512" + y="36.299671" /> + + + + + + + + + + + + + + + + + + + + transform="matrix(1.13019,0,0,-0.759601,-3.9093694,53.66603)" /> + + + + + d="M 20.152913,10.409904 C 20.152913,10.409904 11.215413,9.784904 13.965413,20.284904 L 6.2779132,20.284904 C 6.2779132,20.284904 6.7779132,8.409904 20.152913,10.409904 z" + style="fill:url(#linearGradient1486);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1488);stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" /> + + style="opacity:1;fill:url(#linearGradient2408);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1501);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"> + sodipodi:nodetypes="ccccccc" + id="path2781" + d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.399432,3.0690297 L 7.793943,20.424005 L 22.462411,33.006349 C 22.462411,33.006349 22.462411,23.337969 22.462411,23.337969 C 41.292171,24.336946 55.444038,37.409698 44.306783,50.229694 z" + style="opacity:1;fill:url(#linearGradient2517);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient2519);stroke-width:1.31916928;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + + inkscape:r_cx="true" + transform="matrix(0.508536,0.429651,0.429651,-0.508536,-3.973188,30.54119)" + id="g2793"> + + + style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1"> - - - + id="path2811" + d="M 6.8125,16.5 C 10.405935,6.0587275 23.256282,10.355393 27,12 C 31.175307,12.211475 32.674736,9.164996 36,9 C 21.950264,-0.7899963 7.1875,2.5 6.8125,16.5 z" + style="opacity:0.27222224;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999982;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> diff -Nru deja-dup-7.4/data/document-save.svg deja-dup-10.0/data/document-save.svg --- deja-dup-7.4/data/document-save.svg 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/data/document-save.svg 1969-12-31 19:00:00.000000000 -0500 @@ -1,1047 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Jakub Steiner, Lapo Calamandrei - - - - - - - - Drive Harddisk - - - hdd - drive - hard - fixed - media - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru deja-dup-7.4/data/document-send.svg deja-dup-10.0/data/document-send.svg --- deja-dup-7.4/data/document-send.svg 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/data/document-send.svg 1969-12-31 19:00:00.000000000 -0500 @@ -1,1063 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - Jakub Steiner, Lapo Calamandrei - - - - - - - - Drive Harddisk - - - hdd - drive - hard - fixed - media - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru deja-dup-7.4/data/Makefile.am deja-dup-10.0/data/Makefile.am --- deja-dup-7.4/data/Makefile.am 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/data/Makefile.am 2009-06-02 17:48:47.000000000 -0400 @@ -1,10 +1,10 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- -icondir = $(datadir)/icons/hicolor/scalable/apps -dist_icon_DATA = deja-dup.svg +iconappdir = $(datadir)/icons/hicolor/scalable/apps +dist_iconapp_DATA = deja-dup.svg -pixdir = $(pkgdatadir) -dist_pix_DATA = document-save.svg document-send.svg +iconactiondir = $(datadir)/icons/hicolor/scalable/actions +dist_iconaction_DATA = deja-dup-backup.svg deja-dup-restore.svg @INTLTOOL_SCHEMAS_RULE@ schemadir = $(sysconfdir)/gconf/schemas diff -Nru deja-dup-7.4/data/Makefile.in deja-dup-10.0/data/Makefile.in --- deja-dup-7.4/data/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/data/Makefile.in 2009-06-02 17:51:12.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -36,8 +36,9 @@ host_triplet = @host@ subdir = data DIST_COMMON = $(dist_autostart_DATA) $(dist_desktop_DATA) \ - $(dist_icon_DATA) $(dist_pix_DATA) $(dist_schema_DATA) \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in + $(dist_iconaction_DATA) $(dist_iconapp_DATA) \ + $(dist_schema_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gnome-doc-utils.m4 $(top_srcdir)/m4/iconv.m4 \ @@ -63,15 +64,16 @@ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(autostartdir)" \ - "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)" \ - "$(DESTDIR)$(pixdir)" "$(DESTDIR)$(schemadir)" + "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(iconactiondir)" \ + "$(DESTDIR)$(iconappdir)" "$(DESTDIR)$(schemadir)" dist_autostartDATA_INSTALL = $(INSTALL_DATA) dist_desktopDATA_INSTALL = $(INSTALL_DATA) -dist_iconDATA_INSTALL = $(INSTALL_DATA) -dist_pixDATA_INSTALL = $(INSTALL_DATA) +dist_iconactionDATA_INSTALL = $(INSTALL_DATA) +dist_iconappDATA_INSTALL = $(INSTALL_DATA) dist_schemaDATA_INSTALL = $(INSTALL_DATA) -DATA = $(dist_autostart_DATA) $(dist_desktop_DATA) $(dist_icon_DATA) \ - $(dist_pix_DATA) $(dist_schema_DATA) +DATA = $(dist_autostart_DATA) $(dist_desktop_DATA) \ + $(dist_iconaction_DATA) $(dist_iconapp_DATA) \ + $(dist_schema_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ @@ -120,29 +122,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -170,6 +153,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -182,6 +166,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -245,12 +230,13 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -icondir = $(datadir)/icons/hicolor/scalable/apps -dist_icon_DATA = deja-dup.svg -pixdir = $(pkgdatadir) -dist_pix_DATA = document-save.svg document-send.svg +iconappdir = $(datadir)/icons/hicolor/scalable/apps +dist_iconapp_DATA = deja-dup.svg +iconactiondir = $(datadir)/icons/hicolor/scalable/actions +dist_iconaction_DATA = deja-dup-backup.svg deja-dup-restore.svg schemadir = $(sysconfdir)/gconf/schemas schema_in_file = deja-dup.schemas.in dist_schema_DATA = $(schema_in_file:.schemas.in=.schemas) @@ -268,8 +254,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -333,39 +319,39 @@ echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \ rm -f "$(DESTDIR)$(desktopdir)/$$f"; \ done -install-dist_iconDATA: $(dist_icon_DATA) +install-dist_iconactionDATA: $(dist_iconaction_DATA) @$(NORMAL_INSTALL) - test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" - @list='$(dist_icon_DATA)'; for p in $$list; do \ + test -z "$(iconactiondir)" || $(MKDIR_P) "$(DESTDIR)$(iconactiondir)" + @list='$(dist_iconaction_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ - echo " $(dist_iconDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(icondir)/$$f'"; \ - $(dist_iconDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(icondir)/$$f"; \ + echo " $(dist_iconactionDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconactiondir)/$$f'"; \ + $(dist_iconactionDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconactiondir)/$$f"; \ done -uninstall-dist_iconDATA: +uninstall-dist_iconactionDATA: @$(NORMAL_UNINSTALL) - @list='$(dist_icon_DATA)'; for p in $$list; do \ + @list='$(dist_iconaction_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(icondir)/$$f'"; \ - rm -f "$(DESTDIR)$(icondir)/$$f"; \ + echo " rm -f '$(DESTDIR)$(iconactiondir)/$$f'"; \ + rm -f "$(DESTDIR)$(iconactiondir)/$$f"; \ done -install-dist_pixDATA: $(dist_pix_DATA) +install-dist_iconappDATA: $(dist_iconapp_DATA) @$(NORMAL_INSTALL) - test -z "$(pixdir)" || $(MKDIR_P) "$(DESTDIR)$(pixdir)" - @list='$(dist_pix_DATA)'; for p in $$list; do \ + test -z "$(iconappdir)" || $(MKDIR_P) "$(DESTDIR)$(iconappdir)" + @list='$(dist_iconapp_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ - echo " $(dist_pixDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixdir)/$$f'"; \ - $(dist_pixDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixdir)/$$f"; \ + echo " $(dist_iconappDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(iconappdir)/$$f'"; \ + $(dist_iconappDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(iconappdir)/$$f"; \ done -uninstall-dist_pixDATA: +uninstall-dist_iconappDATA: @$(NORMAL_UNINSTALL) - @list='$(dist_pix_DATA)'; for p in $$list; do \ + @list='$(dist_iconapp_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ - echo " rm -f '$(DESTDIR)$(pixdir)/$$f'"; \ - rm -f "$(DESTDIR)$(pixdir)/$$f"; \ + echo " rm -f '$(DESTDIR)$(iconappdir)/$$f'"; \ + rm -f "$(DESTDIR)$(iconappdir)/$$f"; \ done install-dist_schemaDATA: $(dist_schema_DATA) @$(NORMAL_INSTALL) @@ -421,7 +407,7 @@ check: check-am all-am: Makefile $(DATA) installdirs: - for dir in "$(DESTDIR)$(autostartdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(icondir)" "$(DESTDIR)$(pixdir)" "$(DESTDIR)$(schemadir)"; do \ + for dir in "$(DESTDIR)$(autostartdir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(iconactiondir)" "$(DESTDIR)$(iconappdir)" "$(DESTDIR)$(schemadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -470,8 +456,8 @@ info-am: install-data-am: install-data-local install-dist_autostartDATA \ - install-dist_desktopDATA install-dist_iconDATA \ - install-dist_pixDATA install-dist_schemaDATA + install-dist_desktopDATA install-dist_iconactionDATA \ + install-dist_iconappDATA install-dist_schemaDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook @@ -508,7 +494,7 @@ ps-am: uninstall-am: uninstall-dist_autostartDATA uninstall-dist_desktopDATA \ - uninstall-dist_iconDATA uninstall-dist_pixDATA \ + uninstall-dist_iconactionDATA uninstall-dist_iconappDATA \ uninstall-dist_schemaDATA uninstall-local @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook @@ -520,8 +506,8 @@ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-data-hook \ install-data-local install-dist_autostartDATA \ - install-dist_desktopDATA install-dist_iconDATA \ - install-dist_pixDATA install-dist_schemaDATA install-dvi \ + install-dist_desktopDATA install-dist_iconactionDATA \ + install-dist_iconappDATA install-dist_schemaDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ @@ -529,8 +515,8 @@ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-dist_autostartDATA \ - uninstall-dist_desktopDATA uninstall-dist_iconDATA \ - uninstall-dist_pixDATA uninstall-dist_schemaDATA \ + uninstall-dist_desktopDATA uninstall-dist_iconactionDATA \ + uninstall-dist_iconappDATA uninstall-dist_schemaDATA \ uninstall-hook uninstall-local diff -Nru deja-dup-7.4/debian/changelog deja-dup-10.0/debian/changelog --- deja-dup-7.4/debian/changelog 2009-06-05 16:14:58.000000000 -0400 +++ deja-dup-10.0/debian/changelog 2009-06-05 16:14:58.000000000 -0400 @@ -1,3 +1,17 @@ +deja-dup (10.0-0ubuntu1) karmic; urgency=low + + * New upstream release (LP: #384067, LP: #353838, LP: #333126) + * debian/control: + - Don't recommend an ssh client, instead depend on gvfs-fuse and nautilus + * debian/copyright: + - Update to dep5 format by copying upstream's AUTHORS + * debian/patches/02_check_notify_caps.patch: + - Dropped, applied upstream + * debian/patches/01_lpi.patch: + - Updated to apply + + -- Michael Terry Fri, 05 Jun 2009 16:09:45 -0400 + deja-dup (7.4-0ubuntu2) jaunty; urgency=low * debian/control: diff -Nru deja-dup-7.4/debian/control deja-dup-10.0/debian/control --- deja-dup-7.4/debian/control 2009-06-05 16:14:58.000000000 -0400 +++ deja-dup-10.0/debian/control 2009-06-05 16:14:58.000000000 -0400 @@ -7,7 +7,7 @@ debhelper (>= 5), pkg-config, libglib2.0-dev, - libgtk2.0-dev (>= 2.14), + libgtk2.0-dev (>= 2.12), libgconf2-dev, libgnomeui-dev, libgnome-keyring-dev, @@ -17,22 +17,22 @@ liblaunchpad-integration-dev, gnome-doc-utils (>= 0.3.2), rarian-compat -Standards-Version: 3.8.0 +Standards-Version: 3.8.1 Package: deja-dup Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, - duplicity (>= 0.5.03) -Recommends: python-boto (>= 0.9d), ssh-client | openssh-client -Suggests: util-linux (>= 2.13) + duplicity (>= 0.5.03), + gvfs-fuse +Recommends: python-boto (>= 0.9d), nautilus Description: Backup utility Déjà Dup is a simple backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend. . Features: - * Uses Amazon S3, an SSH server, or a local folder as a backup location + * Support for local or remote backup locations, including Amazon S3 * Securely encrypts your data * Schedules regular backups * Integrates well into your GNOME desktop @@ -48,7 +48,7 @@ and uses duplicity as the backend. . Features: - * Uses Amazon S3, an SSH server, or a local folder as a backup location + * Support for local or remote backup locations, including Amazon S3 * Securely encrypts your data * Schedules regular backups * Integrates well into your GNOME desktop diff -Nru deja-dup-7.4/debian/copyright deja-dup-10.0/debian/copyright --- deja-dup-7.4/debian/copyright 2009-06-05 16:14:58.000000000 -0400 +++ deja-dup-10.0/debian/copyright 2009-06-05 16:14:58.000000000 -0400 @@ -1,27 +1,59 @@ -This package was debianized by Michael Terry mike@mterry.name on -Mon, 02 Feb 2009 12:18:48 -0500. - -It was downloaded from -https://launchpad.net/deja-dup/+download +Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=54 +Name: Déjà Dup +Contact: Déjà Dup Maintainers +Source: https://launchpad.net/deja-dup/+download + +Files: * +Copyright: 2008-2009, Michael Terry +License: GPL-3+ + +Files: debian/* +Copyright: 2008-2009, Michael Terry + 2009, Jose Carlos Garcia Sogo +License: GPL-3+ + +Files: po/*.po +Copyright: 2008-2009, Rosetta Contributors and Canonical Ltd +License: GPL-3+ + +Files: libdeja-dup/hacks.c +Copyright: 2002-2003, 2006-2007, Red Hat, Inc. + 2008-2009, Michael Terry +License: GPL-3+ + +Files: libdeja-dup/mountoperation.[ch] +Copyright: 2008, Carlos Garcia Campos + 2008, Carlos Garnacho + 2008, Christian Kellner + 2008, Cody Russell + 2008, Gian Mario Tagliaretti + 2008, Johan Dahlin + 2008-2009, Matthias Clasen + 2008, Sven Neumann + 2009, Alexander Larsson + 2009, David Zeuthen + 2009, Michael Natterer +License: GPL-3+ + +Files: nautilus/NautilusExtension.[ch] +Copyright: 2004-2005, Free Software Foundation, Inc. + 2009 Michael Terry +License: GPL-3+ +Files: data/*.svg License: + In the public domain - © 2008, 2009 Michael Terry - - This package 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 3 of the License, or - (at your option) any later version. - - This package 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -On Debian systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL-3'. - +License: GPL-3+ + 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 3 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 General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . diff -Nru deja-dup-7.4/debian/patches/01_lpi.patch deja-dup-10.0/debian/patches/01_lpi.patch --- deja-dup-7.4/debian/patches/01_lpi.patch 2009-06-05 16:14:58.000000000 -0400 +++ deja-dup-10.0/debian/patches/01_lpi.patch 2009-06-05 16:14:58.000000000 -0400 @@ -1,10 +1,10 @@ # Description: launchpad integration changes # UbuntuSpecific: ubuntu launchpad integration # -diff -Nur -x '*.orig' -x '*~' deja-dup-7.1/configure.ac deja-dup-7.1.new/configure.ac ---- deja-dup-7.1/configure.ac 2009-01-29 15:48:36.000000000 -0500 -+++ deja-dup-7.1.new/configure.ac 2009-02-02 12:48:45.000000000 -0500 -@@ -50,6 +50,7 @@ +diff -Nur -x '*.orig' -x '*~' deja-dup-10.0/configure.ac deja-dup-10.0.new/configure.ac +--- deja-dup-10.0/configure.ac 2009-06-02 17:48:47.000000000 -0400 ++++ deja-dup-10.0.new/configure.ac 2009-06-05 16:09:00.000000000 -0400 +@@ -54,6 +54,7 @@ gio-2.0 gconf-2.0 libgnomeui-2.0 @@ -12,32 +12,31 @@ gnome-keyring-1) AC_SUBST(DUP_CFLAGS) AC_SUBST(DUP_LIBS) -diff -Nur -x '*.orig' -x '*~' deja-dup-7.1/deja-dup/MainWindow.c deja-dup-7.1.new/deja-dup/MainWindow.c ---- deja-dup-7.1/deja-dup/MainWindow.c 2009-01-29 15:50:21.000000000 -0500 -+++ deja-dup-7.1.new/deja-dup/MainWindow.c 2009-02-02 12:52:14.000000000 -0500 -@@ -10,7 +10,7 @@ +diff -Nur -x '*.orig' -x '*~' deja-dup-10.0/deja-dup/MainWindow.c deja-dup-10.0.new/deja-dup/MainWindow.c +--- deja-dup-10.0/deja-dup/MainWindow.c 2009-06-02 17:48:48.000000000 -0400 ++++ deja-dup-10.0.new/deja-dup/MainWindow.c 2009-06-05 16:09:24.000000000 -0400 +@@ -9,6 +9,7 @@ + #include + #include #include - #include "AssistantBackup.h" - #include "AssistantRestore.h" -- +#include - -@@ -324,7 +324,7 @@ - action = (_tmp14 = gtk_action_new ("AboutAction", NULL, NULL, GTK_STOCK_ABOUT), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp14); + #define TYPE_MAIN_WINDOW (main_window_get_type ()) +@@ -374,7 +375,7 @@ + action = (_tmp14_ = gtk_action_new ("AboutAction", NULL, NULL, GTK_STOCK_ABOUT), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp14_); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_about_gtk_action_activate, self, 0); gtk_action_group_add_action (action_group, action); - ui = g_strdup ("\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"); + ui = g_strdup ("\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"); manager = gtk_ui_manager_new (); { - gtk_ui_manager_add_ui_from_string (manager, ui, (gssize) strlen (ui), &inner_error); -@@ -354,6 +354,7 @@ - g_clear_error (&inner_error); + gtk_ui_manager_add_ui_from_string (manager, ui, (gssize) strlen (ui), &_inner_error_); +@@ -404,6 +405,7 @@ + g_clear_error (&_inner_error_); return NULL; } + launchpad_integration_add_ui(manager, "ui/menubar/HelpMenu/LaunchpadItems"); gtk_ui_manager_insert_action_group (manager, action_group, 0); gtk_window_add_accel_group ((GtkWindow*) self, gtk_ui_manager_get_accel_group (manager)); - _tmp15 = NULL; + _tmp15_ = NULL; diff -Nru deja-dup-7.4/debian/patches/02_check_notify_caps.patch deja-dup-10.0/debian/patches/02_check_notify_caps.patch --- deja-dup-7.4/debian/patches/02_check_notify_caps.patch 2009-06-05 16:14:58.000000000 -0400 +++ deja-dup-10.0/debian/patches/02_check_notify_caps.patch 1969-12-31 19:00:00.000000000 -0500 @@ -1,137 +0,0 @@ -diff -Nur -x '*.orig' -x '*~' deja-dup-7.4/applet/StatusIcon.c deja-dup-7.4.new/applet/StatusIcon.c ---- deja-dup-7.4/applet/StatusIcon.c 2009-01-29 15:50:09.000000000 -0500 -+++ deja-dup-7.4.new/applet/StatusIcon.c 2009-02-25 20:44:27.000000000 -0500 -@@ -41,6 +41,7 @@ - static void _status_icon_note_progress_deja_dup_operation_progress (DejaDupOperationBackup* _sender, double percent, gpointer self); - static void status_icon_start (StatusIcon* self, gboolean warn); - static void status_icon_begin_backup (StatusIcon* self); -+static gboolean status_icon_can_display_actions (StatusIcon* self); - static void _status_icon_begin_backup_notify_notification_closed (NotifyNotification* _sender, gpointer self); - static void status_icon_notify_start (StatusIcon* self); - static void _status_icon_activate_enter_gtk_status_icon_activate (StatusIcon* _sender, gpointer self); -@@ -70,6 +71,7 @@ - static GObject * status_icon_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); - static gpointer status_icon_parent_class = NULL; - static void status_icon_finalize (GObject* obj); -+static int _vala_strcmp0 (const char * str1, const char * str2); - - - -@@ -218,6 +220,32 @@ - } - - -+static gboolean status_icon_can_display_actions (StatusIcon* self) { -+ GList* caps; -+ g_return_val_if_fail (self != NULL, FALSE); -+ caps = notify_get_server_caps (); -+ { -+ GList* cap_collection; -+ GList* cap_it; -+ cap_collection = caps; -+ for (cap_it = cap_collection; cap_it != NULL; cap_it = cap_it->next) { -+ const char* _tmp1; -+ char* cap; -+ _tmp1 = NULL; -+ cap = (_tmp1 = (const char*) cap_it->data, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); -+ { -+ if (_vala_strcmp0 (cap, "actions") == 0) { -+ gboolean _tmp0; -+ return (_tmp0 = TRUE, cap = (g_free (cap), NULL), _tmp0); -+ } -+ cap = (g_free (cap), NULL); -+ } -+ } -+ } -+ return FALSE; -+} -+ -+ - static void _status_icon_begin_backup_notify_notification_closed (NotifyNotification* _sender, gpointer self) { - status_icon_begin_backup (self); - } -@@ -230,8 +258,10 @@ - inner_error = NULL; - _tmp0 = NULL; - self->priv->note = (_tmp0 = notify_notification_new_with_status_icon (_ ("Backup about to start"), _ ("A scheduled backup will shortly begin. You can instead choose to backup later or not at all."), PACKAGE, (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0); -- notify_notification_add_action (self->priv->note, "skip", _ ("Skip Backup"), (NotifyActionCallback) status_icon_skip, self, NULL); -- notify_notification_add_action (self->priv->note, "later", _ ("Backup Later"), (NotifyActionCallback) status_icon_later, self, NULL); -+ if (status_icon_can_display_actions (self)) { -+ notify_notification_add_action (self->priv->note, "skip", _ ("Skip Backup"), (NotifyActionCallback) status_icon_skip, self, NULL); -+ notify_notification_add_action (self->priv->note, "later", _ ("Backup Later"), (NotifyActionCallback) status_icon_later, self, NULL); -+ } - g_signal_connect_object (self->priv->note, "closed", (GCallback) _status_icon_begin_backup_notify_notification_closed, self, 0); - { - notify_notification_show (self->priv->note, &inner_error); -@@ -277,7 +307,9 @@ - g_signal_connect_object ((GtkStatusIcon*) self, "activate", (GCallback) _status_icon_activate_enter_gtk_status_icon_activate, self, 0); - _tmp0 = NULL; - self->priv->note = (_tmp0 = notify_notification_new_with_status_icon (_ ("Encryption password needed"), _ ("Please enter the encryption password for your backup files."), "dialog-password", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0); -- notify_notification_add_action (self->priv->note, "default", _ ("Enter"), (NotifyActionCallback) status_icon_enter, self, NULL); -+ if (status_icon_can_display_actions (self)) { -+ notify_notification_add_action (self->priv->note, "default", _ ("Enter"), (NotifyActionCallback) status_icon_enter, self, NULL); -+ } - { - notify_notification_show (self->priv->note, &inner_error); - if (inner_error != NULL) { -@@ -317,7 +349,9 @@ - g_signal_connect_object ((GtkStatusIcon*) self, "activate", (GCallback) _status_icon_activate_enter_gtk_status_icon_activate, self, 0); - _tmp0 = NULL; - self->priv->note = (_tmp0 = notify_notification_new_with_status_icon (_ ("Server password needed"), _ ("Please enter the server password for your backup."), "dialog-password", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0); -- notify_notification_add_action (self->priv->note, "default", _ ("Enter"), (NotifyActionCallback) status_icon_enter, self, NULL); -+ if (status_icon_can_display_actions (self)) { -+ notify_notification_add_action (self->priv->note, "default", _ ("Enter"), (NotifyActionCallback) status_icon_enter, self, NULL); -+ } - { - notify_notification_show (self->priv->note, &inner_error); - if (inner_error != NULL) { -@@ -354,20 +388,23 @@ - /* don't immediately ask user, wait for our response*/ - static void status_icon_notify_error (StatusIcon* self, DejaDupOperationBackup* op, const char* errstr, const char* detail) { - GError * inner_error; -- guint _tmp0; -- NotifyNotification* _tmp1; -+ NotifyNotification* _tmp0; - g_return_if_fail (self != NULL); - g_return_if_fail (op != NULL); - g_return_if_fail (errstr != NULL); - inner_error = NULL; -- /* TODO: Do something sane with detail. Not urgent right now, it's only used for restore -- We want to stay open until user acknowledges our error/it times out*/ -- g_signal_handlers_disconnect_matched ((DejaDupOperation*) op, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_OPERATION, &_tmp0, NULL, FALSE), _tmp0), 0, NULL, (GCallback) _status_icon_send_done_deja_dup_operation_done, self); -+ /* TODO: Do something sane with detail. Not urgent right now, it's only used for restore*/ - self->priv->fatal_error = TRUE; -- _tmp1 = NULL; -- self->priv->note = (_tmp1 = notify_notification_new_with_status_icon (_ ("Backup error occurred"), errstr, "dialog-error", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp1); -- notify_notification_add_action (self->priv->note, "rerun", _ ("Rerun"), (NotifyActionCallback) status_icon_rerun, self, NULL); -- notify_notification_set_timeout (self->priv->note, NOTIFY_EXPIRES_NEVER); -+ _tmp0 = NULL; -+ self->priv->note = (_tmp0 = notify_notification_new_with_status_icon (_ ("Backup error occurred"), errstr, "dialog-error", (GtkStatusIcon*) self), (self->priv->note == NULL) ? NULL : (self->priv->note = (g_object_unref (self->priv->note), NULL)), _tmp0); -+ if (status_icon_can_display_actions (self)) { -+ guint _tmp1; -+ /* We want to stay open until user acknowledges our error/it times out*/ -+ g_signal_handlers_disconnect_matched ((DejaDupOperation*) op, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_OPERATION, &_tmp1, NULL, FALSE), _tmp1), 0, NULL, (GCallback) _status_icon_send_done_deja_dup_operation_done, self); -+ notify_notification_add_action (self->priv->note, "rerun", _ ("Rerun"), (NotifyActionCallback) status_icon_rerun, self, NULL); -+ /* Doesn't seem like we can ask if daemon supports timeouts*/ -+ notify_notification_set_timeout (self->priv->note, NOTIFY_EXPIRES_NEVER); -+ } - g_signal_connect_object (self->priv->note, "closed", (GCallback) _status_icon_error_closed_notify_notification_closed, self, 0); - { - notify_notification_show (self->priv->note, &inner_error); -@@ -748,5 +785,16 @@ - } - - -+static int _vala_strcmp0 (const char * str1, const char * str2) { -+ if (str1 == NULL) { -+ return -(str1 != str2); -+ } -+ if (str2 == NULL) { -+ return str1 != str2; -+ } -+ return strcmp (str1, str2); -+} -+ -+ - - diff -Nru deja-dup-7.4/deja-dup/AssistantBackup.c deja-dup-10.0/deja-dup/AssistantBackup.c --- deja-dup-7.4/deja-dup/AssistantBackup.c 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantBackup.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,62 +1,274 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "AssistantBackup.h" +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include "MainWindow.h" +#include +#define TYPE_ASSISTANT_OPERATION (assistant_operation_get_type ()) +#define ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperation)) +#define ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) +#define IS_ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_OPERATION)) +#define IS_ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_OPERATION)) +#define ASSISTANT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) + +typedef struct _AssistantOperation AssistantOperation; +typedef struct _AssistantOperationClass AssistantOperationClass; +typedef struct _AssistantOperationPrivate AssistantOperationPrivate; + +#define TYPE_ASSISTANT_BACKUP (assistant_backup_get_type ()) +#define ASSISTANT_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_BACKUP, AssistantBackup)) +#define ASSISTANT_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_BACKUP, AssistantBackupClass)) +#define IS_ASSISTANT_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_BACKUP)) +#define IS_ASSISTANT_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_BACKUP)) +#define ASSISTANT_BACKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_BACKUP, AssistantBackupClass)) + +typedef struct _AssistantBackup AssistantBackup; +typedef struct _AssistantBackupClass AssistantBackupClass; +typedef struct _AssistantBackupPrivate AssistantBackupPrivate; +/* + Déjà Dup + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _AssistantOperation { + GtkAssistant parent_instance; + AssistantOperationPrivate * priv; + GtkLabel* summary_label; +}; + +struct _AssistantOperationClass { + GtkAssistantClass parent_class; + GtkWidget* (*make_confirm_page) (AssistantOperation* self); + void (*add_setup_pages) (AssistantOperation* self); + void (*add_custom_config_pages) (AssistantOperation* self); + DejaDupOperation* (*create_op) (AssistantOperation* self); + char* (*get_progress_file_prefix) (AssistantOperation* self); + GdkPixbuf* (*make_op_icon) (AssistantOperation* self); + GtkWidget* (*make_progress_page) (AssistantOperation* self); + void (*show_error) (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail); + GtkWidget* (*make_summary_page) (AssistantOperation* self); + void (*do_prepare) (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page); + void (*do_close) (AssistantOperation* self); +}; + +/* + Déjà Dup + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _AssistantBackup { + AssistantOperation parent_instance; + AssistantBackupPrivate * priv; +}; -struct _AssistantBackupPrivate { - GtkLabel* confirm_backup; +struct _AssistantBackupClass { + AssistantOperationClass parent_class; }; -#define ASSISTANT_BACKUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ASSISTANT_BACKUP, AssistantBackupPrivate)) + + +GType assistant_operation_get_type (void); +GType assistant_backup_get_type (void); enum { ASSISTANT_BACKUP_DUMMY_PROPERTY }; -static void assistant_backup_real_add_setup_pages (AssistantOperation* base); +static GtkWidget* assistant_backup_make_backup_location_page (AssistantBackup* self); +static GtkWidget* assistant_backup_make_include_exclude_page (AssistantBackup* self); +GdkPixbuf* assistant_operation_get_op_icon (AssistantOperation* self); +static void assistant_backup_real_add_custom_config_pages (AssistantOperation* base); static GtkWidget* assistant_backup_real_make_confirm_page (AssistantOperation* base); static DejaDupOperation* assistant_backup_real_create_op (AssistantOperation* base); static char* assistant_backup_real_get_progress_file_prefix (AssistantOperation* base); -static GdkPixbuf* assistant_backup_real_get_op_icon (AssistantOperation* base); -static void assistant_backup_real_do_prepare (AssistantOperation* base, AssistantOperation* assist, GtkWidget* page); +static GdkPixbuf* assistant_backup_real_make_op_icon (AssistantOperation* base); +void assistant_operation_do_prepare (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page); +GtkWidget* assistant_operation_get_summary_page (AssistantOperation* self); +gboolean assistant_operation_get_error_occurred (AssistantOperation* self); +GtkWidget* assistant_operation_get_progress_page (AssistantOperation* self); +static void assistant_backup_real_do_prepare (AssistantOperation* base, GtkAssistant* assist, GtkWidget* page); +AssistantBackup* assistant_backup_new (void); +AssistantBackup* assistant_backup_construct (GType object_type); +AssistantBackup* assistant_backup_new (void); static GObject * assistant_backup_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer assistant_backup_parent_class = NULL; -static void assistant_backup_finalize (GObject* obj); -static void assistant_backup_real_add_setup_pages (AssistantOperation* base) { +static GtkWidget* assistant_backup_make_backup_location_page (AssistantBackup* self) { + gint rows; + GtkWidget* w; + GtkWidget* label; + GtkTable* page; + GtkWidget* _tmp0_; + GtkWidget* _tmp1_; + GtkWidget* _tmp2_; + GtkWidget* _tmp3_; + g_return_val_if_fail (self != NULL, NULL); + rows = 0; + w = NULL; + label = NULL; + page = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) rows, (guint) 2, FALSE)); + g_object_set ((GObject*) page, "row-spacing", 6, "column-spacing", 6, "border-width", 12, NULL); + _tmp0_ = NULL; + w = (_tmp0_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_location_new ()), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp0_); + _tmp1_ = NULL; + label = (_tmp1_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new_with_mnemonic (_ ("_Backup location:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp1_); + g_object_set ((GObject*) label, "xalign", 0.0f, "mnemonic-widget", w, NULL); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL | GTK_EXPAND, 0, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp2_ = NULL; + w = (_tmp2_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_bool_new (DEJA_DUP_ENCRYPT_KEY, _ ("_Encrypt backup files"))), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp2_); + gtk_table_attach (page, w, (guint) 0, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp3_ = NULL; + return (_tmp3_ = (GtkWidget*) page, (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp3_); +} + + +static GtkWidget* assistant_backup_make_include_exclude_page (AssistantBackup* self) { + gint rows; + GtkWidget* w; + GtkWidget* label; + GtkTable* page; + GtkWidget* _tmp0_; + GtkWidget* _tmp1_; + GtkWidget* _tmp2_; + GtkWidget* _tmp3_; + GtkWidget* _tmp4_; + g_return_val_if_fail (self != NULL, NULL); + rows = 0; + w = NULL; + label = NULL; + page = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) rows, (guint) 2, FALSE)); + g_object_set ((GObject*) page, "row-spacing", 6, "column-spacing", 6, "border-width", 12, NULL); + _tmp0_ = NULL; + w = (_tmp0_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_list_new (DEJA_DUP_INCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp0_); + gtk_widget_set_size_request (w, 250, -1); + _tmp1_ = NULL; + label = (_tmp1_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("I_nclude files in folders:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp1_); + g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "wrap", TRUE, "width-request", 100, "xalign", 0.0f, "yalign", 0.0f, NULL); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp2_ = NULL; + w = (_tmp2_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_list_new (DEJA_DUP_EXCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp2_); + gtk_widget_set_size_request (w, 250, -1); + _tmp3_ = NULL; + label = (_tmp3_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("E_xcept files in folders:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp3_); + g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "wrap", TRUE, "width-request", 100, "xalign", 0.0f, "yalign", 0.0f, NULL); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp4_ = NULL; + return (_tmp4_ = (GtkWidget*) page, (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp4_); +} + + +static void assistant_backup_real_add_custom_config_pages (AssistantOperation* base) { AssistantBackup * self; + GtkWidget* page; + GtkWidget* _tmp0_; self = (AssistantBackup*) base; + page = assistant_backup_make_backup_location_page (self); + gtk_assistant_append_page ((GtkAssistant*) self, page); + gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Preferences"), "page-type", GTK_ASSISTANT_PAGE_CONTENT, "complete", TRUE, "header-image", assistant_operation_get_op_icon ((AssistantOperation*) self), NULL); + _tmp0_ = NULL; + page = (_tmp0_ = assistant_backup_make_include_exclude_page (self), (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)), _tmp0_); + gtk_assistant_append_page ((GtkAssistant*) self, page); + gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Preferences"), "page-type", GTK_ASSISTANT_PAGE_CONTENT, "complete", TRUE, "header-image", assistant_operation_get_op_icon ((AssistantOperation*) self), NULL); + (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); } static GtkWidget* assistant_backup_real_make_confirm_page (AssistantOperation* base) { AssistantBackup * self; gint rows; - GtkLabel* backup_label; - GtkLabel* _tmp0; + GtkWidget* label; + GtkWidget* w; GtkTable* page; - GtkWidget* _tmp1; + GtkWidget* _tmp0_; + GtkWidget* _tmp1_; + GtkWidget* _tmp2_; + GtkWidget* _tmp3_; + GtkWidget* _tmp4_; + GtkWidget* _tmp5_; + GtkWidget* _tmp6_; + GtkWidget* _tmp7_; + GtkWidget* _tmp8_; self = (AssistantBackup*) base; rows = 0; - backup_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Backup location:"))); - g_object_set ((GObject*) backup_label, "xalign", 0.0f, NULL); - _tmp0 = NULL; - self->priv->confirm_backup = (_tmp0 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_backup == NULL) ? NULL : (self->priv->confirm_backup = (g_object_unref (self->priv->confirm_backup), NULL)), _tmp0); - g_object_set ((GObject*) self->priv->confirm_backup, "xalign", 0.0f, NULL); - rows = rows + 1; + label = NULL; + w = NULL; page = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) rows, (guint) 2, FALSE)); g_object_set ((GObject*) page, "row-spacing", 6, "column-spacing", 6, "border-width", 12, NULL); - rows = 0; - gtk_table_attach (page, (GtkWidget*) backup_label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); - gtk_table_attach (page, (GtkWidget*) self->priv->confirm_backup, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); - _tmp1 = NULL; - return (_tmp1 = (GtkWidget*) page, (backup_label == NULL) ? NULL : (backup_label = (g_object_unref (backup_label), NULL)), _tmp1); + _tmp0_ = NULL; + label = (_tmp0_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Backup location:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp0_); + g_object_set ((GObject*) label, "xalign", 0.0f, NULL); + _tmp1_ = NULL; + w = (_tmp1_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_label_location_new ()), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp1_); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp2_ = NULL; + label = (_tmp2_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Encrypted:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp2_); + g_object_set ((GObject*) label, "xalign", 0.0f, NULL); + _tmp3_ = NULL; + w = (_tmp3_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_label_bool_new (DEJA_DUP_ENCRYPT_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp3_); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp4_ = NULL; + label = (_tmp4_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Include from:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp4_); + g_object_set ((GObject*) label, "xalign", 0.0f, "yalign", 0.0f, NULL); + _tmp5_ = NULL; + w = (_tmp5_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_label_list_new (DEJA_DUP_INCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp5_); + g_object_set ((GObject*) w, "width-request", 250, NULL); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), 0, GTK_FILL, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp6_ = NULL; + label = (_tmp6_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Except for:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp6_); + g_object_set ((GObject*) label, "xalign", 0.0f, "yalign", 0.0f, NULL); + _tmp7_ = NULL; + w = (_tmp7_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_label_list_new (DEJA_DUP_EXCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp7_); + g_object_set ((GObject*) w, "width-request", 250, NULL); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), 0, GTK_FILL, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp8_ = NULL; + return (_tmp8_ = (GtkWidget*) page, (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp8_); } @@ -69,121 +281,67 @@ static char* assistant_backup_real_get_progress_file_prefix (AssistantOperation* base) { AssistantBackup * self; - const char* _tmp0; + const char* _tmp0_; self = (AssistantBackup*) base; /* Translators: This is the phrase 'Backing up' in the larger phrase "Backing up '%s'". %s is a filename.*/ - _tmp0 = NULL; - return (_tmp0 = _ ("Backing up"), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + return (_tmp0_ = _ ("Backing up"), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); } -static GdkPixbuf* assistant_backup_real_get_op_icon (AssistantOperation* base) { +static GdkPixbuf* assistant_backup_real_make_op_icon (AssistantOperation* base) { AssistantBackup * self; - GError * inner_error; + GError * _inner_error_; self = (AssistantBackup*) base; - inner_error = NULL; + _inner_error_ = NULL; { - char* filename; - GdkPixbuf* _tmp0; - filename = get_backup_icon_filename (); - _tmp0 = NULL; - return (_tmp0 = gdk_pixbuf_new_from_file_at_size (filename, 48, 48, &inner_error), filename = (g_free (filename), NULL), _tmp0); + GdkPixbuf* _tmp0_; + _tmp0_ = hacks_get_icon_at_size ("deja-dup-backup", 48, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch0_g_error; + goto __finally0; + } + return _tmp0_; } goto __finally0; __catch0_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - GdkPixbuf* _tmp1; - g_warning ("AssistantBackup.vala:75: %s\n", e->message); - _tmp1 = NULL; - return (_tmp1 = NULL, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), _tmp1); + GdkPixbuf* _tmp2_; + g_warning ("AssistantBackup.vala:175: %s\n", e->message); + _tmp2_ = NULL; + return (_tmp2_ = NULL, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), _tmp2_); } } __finally0: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return NULL; } } -static void assistant_backup_real_do_prepare (AssistantOperation* base, AssistantOperation* assist, GtkWidget* page) { +static void assistant_backup_real_do_prepare (AssistantOperation* base, GtkAssistant* assist, GtkWidget* page) { AssistantBackup * self; - GError * inner_error; self = (AssistantBackup*) base; g_return_if_fail (assist != NULL); g_return_if_fail (page != NULL); - inner_error = NULL; ASSISTANT_OPERATION_CLASS (assistant_backup_parent_class)->do_prepare (ASSISTANT_OPERATION (self), assist, page); - if (page == assistant_operation_get_confirm_page ((AssistantOperation*) self)) { - char* backup_loc; - /* Where the backup is*/ - backup_loc = NULL; - { - DejaDupBackend* _tmp0; - DejaDupBackend* _tmp1; - char* _tmp2; - char* _tmp3; - char* _tmp4; - _tmp0 = deja_dup_backend_get_default ((GtkWindow*) self, &inner_error); - if (inner_error != NULL) { - goto __catch1_g_error; - goto __finally1; - } - _tmp1 = NULL; - _tmp2 = NULL; - _tmp3 = (_tmp2 = deja_dup_backend_get_location_pretty (_tmp1 = _tmp0, &inner_error), (_tmp1 == NULL) ? NULL : (_tmp1 = (g_object_unref (_tmp1), NULL)), _tmp2); - if (inner_error != NULL) { - goto __catch1_g_error; - goto __finally1; - } - _tmp4 = NULL; - backup_loc = (_tmp4 = _tmp3, backup_loc = (g_free (backup_loc), NULL), _tmp4); - } - goto __finally1; - __catch1_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("AssistantBackup.vala:91: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally1: - if (inner_error != NULL) { - backup_loc = (g_free (backup_loc), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - if (backup_loc == NULL) { - char* _tmp6; - const char* _tmp5; - _tmp6 = NULL; - _tmp5 = NULL; - backup_loc = (_tmp6 = (_tmp5 = _ ("Unknown"), (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), backup_loc = (g_free (backup_loc), NULL), _tmp6); + if (page == assistant_operation_get_summary_page ((AssistantOperation*) self)) { + if (assistant_operation_get_error_occurred ((AssistantOperation*) self)) { + gtk_container_child_set ((GtkContainer*) assist, page, "title", _ ("Backup Failed"), NULL); + } else { + gtk_container_child_set ((GtkContainer*) assist, page, "title", _ ("Backup Finished"), NULL); + gtk_label_set_label (((AssistantOperation*) self)->summary_label, _ ("Your files were successfully backed up.")); } - gtk_label_set_label (self->priv->confirm_backup, backup_loc); - backup_loc = (g_free (backup_loc), NULL); } else { - if (page == assistant_operation_get_summary_page ((AssistantOperation*) self)) { - if (assistant_operation_get_error_occurred ((AssistantOperation*) self)) { - gtk_container_child_set ((GtkContainer*) assist, page, "title", _ ("Backup Failed"), NULL); - } else { - gtk_container_child_set ((GtkContainer*) assist, page, "title", _ ("Backup Finished"), NULL); - gtk_label_set_label (((AssistantOperation*) self)->summary_label, _ ("Your files were successfully backed up.")); - } - } else { - if (page == assistant_operation_get_progress_page ((AssistantOperation*) self)) { - gtk_container_child_set ((GtkContainer*) assist, page, "title", _ ("Backing up..."), NULL); - } + if (page == assistant_operation_get_progress_page ((AssistantOperation*) self)) { + gtk_container_child_set ((GtkContainer*) assist, page, "title", _ ("Backing up..."), NULL); } } } @@ -191,7 +349,7 @@ /* Déjà Dup - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -236,28 +394,17 @@ static void assistant_backup_class_init (AssistantBackupClass * klass) { assistant_backup_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (AssistantBackupPrivate)); - G_OBJECT_CLASS (klass)->constructor = assistant_backup_constructor; - G_OBJECT_CLASS (klass)->finalize = assistant_backup_finalize; - ASSISTANT_OPERATION_CLASS (klass)->add_setup_pages = assistant_backup_real_add_setup_pages; + ASSISTANT_OPERATION_CLASS (klass)->add_custom_config_pages = assistant_backup_real_add_custom_config_pages; ASSISTANT_OPERATION_CLASS (klass)->make_confirm_page = assistant_backup_real_make_confirm_page; ASSISTANT_OPERATION_CLASS (klass)->create_op = assistant_backup_real_create_op; ASSISTANT_OPERATION_CLASS (klass)->get_progress_file_prefix = assistant_backup_real_get_progress_file_prefix; - ASSISTANT_OPERATION_CLASS (klass)->get_op_icon = assistant_backup_real_get_op_icon; + ASSISTANT_OPERATION_CLASS (klass)->make_op_icon = assistant_backup_real_make_op_icon; ASSISTANT_OPERATION_CLASS (klass)->do_prepare = assistant_backup_real_do_prepare; + G_OBJECT_CLASS (klass)->constructor = assistant_backup_constructor; } static void assistant_backup_instance_init (AssistantBackup * self) { - self->priv = ASSISTANT_BACKUP_GET_PRIVATE (self); -} - - -static void assistant_backup_finalize (GObject* obj) { - AssistantBackup * self; - self = ASSISTANT_BACKUP (obj); - (self->priv->confirm_backup == NULL) ? NULL : (self->priv->confirm_backup = (g_object_unref (self->priv->confirm_backup), NULL)); - G_OBJECT_CLASS (assistant_backup_parent_class)->finalize (obj); } diff -Nru deja-dup-7.4/deja-dup/AssistantBackup.h deja-dup-10.0/deja-dup/AssistantBackup.h --- deja-dup-7.4/deja-dup/AssistantBackup.h 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantBackup.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,63 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __ASSISTANTBACKUP_H__ -#define __ASSISTANTBACKUP_H__ - -#include -#include -#include -#include -#include -#include -#include -#include "AssistantOperation.h" - -G_BEGIN_DECLS - - -#define TYPE_ASSISTANT_BACKUP (assistant_backup_get_type ()) -#define ASSISTANT_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_BACKUP, AssistantBackup)) -#define ASSISTANT_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_BACKUP, AssistantBackupClass)) -#define IS_ASSISTANT_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_BACKUP)) -#define IS_ASSISTANT_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_BACKUP)) -#define ASSISTANT_BACKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_BACKUP, AssistantBackupClass)) - -typedef struct _AssistantBackup AssistantBackup; -typedef struct _AssistantBackupClass AssistantBackupClass; -typedef struct _AssistantBackupPrivate AssistantBackupPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -struct _AssistantBackup { - AssistantOperation parent_instance; - AssistantBackupPrivate * priv; -}; - -struct _AssistantBackupClass { - AssistantOperationClass parent_class; -}; - - -AssistantBackup* assistant_backup_construct (GType object_type); -AssistantBackup* assistant_backup_new (void); -GType assistant_backup_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/deja-dup/AssistantBackup.vala deja-dup-10.0/deja-dup/AssistantBackup.vala --- deja-dup-7.4/deja-dup/AssistantBackup.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantBackup.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -21,34 +21,135 @@ public class AssistantBackup : AssistantOperation { - Gtk.Label confirm_backup; construct { title = _("Backup"); } - protected override void add_setup_pages() + Gtk.Widget make_backup_location_page() { + int rows = 0; + Gtk.Widget w, label; + + var page = new Gtk.Table(rows, 2, false); + page.set("row-spacing", 6, + "column-spacing", 6, + "border-width", 12); + + w = new DejaDup.ConfigLocation(); + label = new Gtk.Label.with_mnemonic(_("_Backup location:")); + label.set("xalign", 0.0f, + "mnemonic-widget", w); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 0, 0, 0); + ++rows; + + w = new DejaDup.ConfigBool(DejaDup.ENCRYPT_KEY, _("_Encrypt backup files")); + page.attach(w, 0, 2, rows, rows + 1, + Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, + Gtk.AttachOptions.FILL, 0, 0); + ++rows; + + return page; } - protected override Gtk.Widget make_confirm_page() + Gtk.Widget make_include_exclude_page() { int rows = 0; + Gtk.Widget w, label; + + var page = new Gtk.Table(rows, 2, false); + page.set("row-spacing", 6, + "column-spacing", 6, + "border-width", 12); - var backup_label = new Gtk.Label(_("Backup location:")); - backup_label.set("xalign", 0.0f); - confirm_backup = new Gtk.Label(""); - confirm_backup.set("xalign", 0.0f); + w = new DejaDup.ConfigList(DejaDup.INCLUDE_LIST_KEY); + w.set_size_request(250, -1); + label = new Gtk.Label(_("I_nclude files in folders:")); + label.set("mnemonic-widget", w, + "use-underline", true, + "wrap", true, + "width-request", 100, + "xalign", 0.0f, + "yalign", 0.0f); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL, 0, 0); ++rows; + w = new DejaDup.ConfigList(DejaDup.EXCLUDE_LIST_KEY); + w.set_size_request(250, -1); + label = new Gtk.Label(_("E_xcept files in folders:")); + label.set("mnemonic-widget", w, + "use-underline", true, + "wrap", true, + "width-request", 100, + "xalign", 0.0f, + "yalign", 0.0f); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 0, 0); + ++rows; + + return page; + } + + protected override void add_custom_config_pages() + { + var page = make_backup_location_page(); + append_page(page); + child_set(page, + "title", _("Preferences"), + "page-type", Gtk.AssistantPageType.CONTENT, + "complete", true, + "header-image", op_icon); + + page = make_include_exclude_page(); + append_page(page); + child_set(page, + "title", _("Preferences"), + "page-type", Gtk.AssistantPageType.CONTENT, + "complete", true, + "header-image", op_icon); + } + + protected override Gtk.Widget make_confirm_page() + { + int rows = 0; + Gtk.Widget label, w; + var page = new Gtk.Table(rows, 2, false); page.set("row-spacing", 6, "column-spacing", 6, "border-width", 12); - rows = 0; - page.attach(backup_label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); - page.attach(confirm_backup, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + label = new Gtk.Label(_("Backup location:")); + label.set("xalign", 0.0f); + w = new DejaDup.ConfigLabelLocation(); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + ++rows; + + label = new Gtk.Label(_("Encrypted:")); + label.set("xalign", 0.0f); + w = new DejaDup.ConfigLabelBool(DejaDup.ENCRYPT_KEY); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + ++rows; + + label = new Gtk.Label(_("Include from:")); + label.set("xalign", 0.0f, "yalign", 0.0f); + w = new DejaDup.ConfigLabelList(DejaDup.INCLUDE_LIST_KEY); + w.set("width-request", 250); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, 0, Gtk.AttachOptions.FILL, 0, 0); + ++rows; + + label = new Gtk.Label(_("Except for:")); + label.set("xalign", 0.0f, "yalign", 0.0f); + w = new DejaDup.ConfigLabelList(DejaDup.EXCLUDE_LIST_KEY); + w.set("width-request", 250); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, 0, Gtk.AttachOptions.FILL, 0, 0); + ++rows; return page; } @@ -65,11 +166,10 @@ return _("Backing up"); } - protected override Gdk.Pixbuf? get_op_icon() + protected override Gdk.Pixbuf? make_op_icon() { try { - var filename = get_backup_icon_filename(); - return new Gdk.Pixbuf.from_file_at_size(filename, 48, 48); + return hacks_get_icon_at_size("deja-dup-backup", 48); } catch (Error e) { warning("%s\n", e.message); @@ -77,24 +177,11 @@ } } - protected override void do_prepare(AssistantOperation assist, Gtk.Widget page) + protected override void do_prepare(Gtk.Assistant assist, Gtk.Widget page) { base.do_prepare(assist, page); - if (page == confirm_page) { - // Where the backup is - string backup_loc = null; - try { - backup_loc = DejaDup.Backend.get_default(this).get_location_pretty(); - } - catch (Error e) { - warning("%s\n", e.message); - } - if (backup_loc == null) - backup_loc = _("Unknown"); - confirm_backup.label = backup_loc; - } - else if (page == summary_page) { + if (page == summary_page) { if (error_occurred) assist.child_set(page, "title", _("Backup Failed")); else { diff -Nru deja-dup-7.4/deja-dup/AssistantOperation.c deja-dup-10.0/deja-dup/AssistantOperation.c --- deja-dup-7.4/deja-dup/AssistantOperation.c 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantOperation.c 2009-06-04 16:18:14.000000000 -0400 @@ -1,55 +1,141 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "AssistantOperation.h" +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include #include +#include +#define TYPE_ASSISTANT_OPERATION (assistant_operation_get_type ()) +#define ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperation)) +#define ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) +#define IS_ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_OPERATION)) +#define IS_ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_OPERATION)) +#define ASSISTANT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) + +typedef struct _AssistantOperation AssistantOperation; +typedef struct _AssistantOperationClass AssistantOperationClass; +typedef struct _AssistantOperationPrivate AssistantOperationPrivate; + +/* + Déjà Dup + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _AssistantOperation { + GtkAssistant parent_instance; + AssistantOperationPrivate * priv; + GtkLabel* summary_label; +}; +struct _AssistantOperationClass { + GtkAssistantClass parent_class; + GtkWidget* (*make_confirm_page) (AssistantOperation* self); + void (*add_setup_pages) (AssistantOperation* self); + void (*add_custom_config_pages) (AssistantOperation* self); + DejaDupOperation* (*create_op) (AssistantOperation* self); + char* (*get_progress_file_prefix) (AssistantOperation* self); + GdkPixbuf* (*make_op_icon) (AssistantOperation* self); + GtkWidget* (*make_progress_page) (AssistantOperation* self); + void (*show_error) (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail); + GtkWidget* (*make_summary_page) (AssistantOperation* self); + void (*do_prepare) (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page); + void (*do_close) (AssistantOperation* self); +}; struct _AssistantOperationPrivate { GtkWidget* _confirm_page; GtkLabel* progress_label; GtkLabel* progress_file_label; GtkProgressBar* progress_bar; + GtkTextView* progress_text; + GtkScrolledWindow* progress_scroll; GtkWidget* _progress_page; GtkWidget* error_widget; GtkTextView* error_text_view; GtkWidget* _summary_page; - GdkPixbuf* _icon; + GdkPixbuf* _op_icon; DejaDupOperation* op; guint timeout_id; gboolean _error_occurred; gboolean gives_progress; + gboolean adjustment_at_end; }; + + +GType assistant_operation_get_type (void); #define ASSISTANT_OPERATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ASSISTANT_OPERATION, AssistantOperationPrivate)) enum { ASSISTANT_OPERATION_DUMMY_PROPERTY, ASSISTANT_OPERATION_CONFIRM_PAGE, ASSISTANT_OPERATION_PROGRESS_PAGE, ASSISTANT_OPERATION_SUMMARY_PAGE, - ASSISTANT_OPERATION_ICON, + ASSISTANT_OPERATION_OP_ICON, ASSISTANT_OPERATION_ERROR_OCCURRED }; +GtkWidget* assistant_operation_make_confirm_page (AssistantOperation* self); static GtkWidget* assistant_operation_real_make_confirm_page (AssistantOperation* self); +void assistant_operation_add_setup_pages (AssistantOperation* self); static void assistant_operation_real_add_setup_pages (AssistantOperation* self); +void assistant_operation_add_custom_config_pages (AssistantOperation* self); +static void assistant_operation_real_add_custom_config_pages (AssistantOperation* self); +DejaDupOperation* assistant_operation_create_op (AssistantOperation* self); static DejaDupOperation* assistant_operation_real_create_op (AssistantOperation* self); +char* assistant_operation_get_progress_file_prefix (AssistantOperation* self); static char* assistant_operation_real_get_progress_file_prefix (AssistantOperation* self); -static GdkPixbuf* assistant_operation_real_get_op_icon (AssistantOperation* self); +GdkPixbuf* assistant_operation_make_op_icon (AssistantOperation* self); +static GdkPixbuf* assistant_operation_real_make_op_icon (AssistantOperation* self); static gboolean assistant_operation_pulse (AssistantOperation* self); static void assistant_operation_show_progress (AssistantOperation* self, DejaDupOperation* op, double percent); static void assistant_operation_set_progress_label (AssistantOperation* self, DejaDupOperation* op, const char* label); static void assistant_operation_set_progress_label_file (AssistantOperation* self, DejaDupOperation* op, GFile* file); +static void _lambda0_ (GtkAdjustment* a, AssistantOperation* self); +static void __lambda0__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self); +static void _lambda1_ (GtkAdjustment* a, AssistantOperation* self); +static void __lambda1__gtk_adjustment_changed (GtkAdjustment* _sender, gpointer self); +static void assistant_operation_make_adjustment_stay_at_end (AssistantOperation* self, GtkWidget* range); +static void _assistant_operation_make_adjustment_stay_at_end_gtk_widget_realize (GtkWidget* _sender, gpointer self); +GtkWidget* assistant_operation_make_progress_page (AssistantOperation* self); static GtkWidget* assistant_operation_real_make_progress_page (AssistantOperation* self); -static void assistant_operation_real_show_error (AssistantOperation* self, DejaDupOperation* op, const char* error, const char* detail); +static void assistant_operation_set_error_occurred (AssistantOperation* self, gboolean value); +GtkWidget* assistant_operation_get_summary_page (AssistantOperation* self); +void assistant_operation_show_error (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail); +static void assistant_operation_real_show_error (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail); +GtkWidget* assistant_operation_make_summary_page (AssistantOperation* self); static GtkWidget* assistant_operation_real_make_summary_page (AssistantOperation* self); +static void assistant_operation_add_config_pages_if_needed (AssistantOperation* self); +GdkPixbuf* assistant_operation_get_op_icon (AssistantOperation* self); +static void assistant_operation_set_confirm_page (AssistantOperation* self, GtkWidget* value); static void assistant_operation_add_confirm_page (AssistantOperation* self); +static void assistant_operation_set_progress_page (AssistantOperation* self, GtkWidget* value); static void assistant_operation_add_progress_page (AssistantOperation* self); +static void assistant_operation_set_summary_page (AssistantOperation* self, GtkWidget* value); static void assistant_operation_add_summary_page (AssistantOperation* self); +gboolean assistant_operation_get_error_occurred (AssistantOperation* self); +void assistant_operation_do_close (AssistantOperation* self); static void assistant_operation_apply_finished (AssistantOperation* self, DejaDupOperation* op, gboolean success); static void _assistant_operation_apply_finished_deja_dup_operation_done (DejaDupOperation* _sender, gboolean success, gpointer self); static void _assistant_operation_show_error_deja_dup_operation_raise_error (DejaDupOperation* _sender, const char* errstr, const char* detail, gpointer self); @@ -57,22 +143,24 @@ static void _assistant_operation_set_progress_label_file_deja_dup_operation_action_file_changed (DejaDupOperation* _sender, GFile* file, gpointer self); static void _assistant_operation_show_progress_deja_dup_operation_progress (DejaDupOperation* _sender, double percent, gpointer self); static void assistant_operation_do_apply (AssistantOperation* self); +GtkWidget* assistant_operation_get_confirm_page (AssistantOperation* self); +GtkWidget* assistant_operation_get_progress_page (AssistantOperation* self); static gboolean _assistant_operation_pulse_gsource_func (gpointer self); -static void assistant_operation_real_do_prepare (AssistantOperation* self, AssistantOperation* assist, GtkWidget* page); +void assistant_operation_do_prepare (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page); +static void assistant_operation_real_do_prepare (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page); static void assistant_operation_do_cancel (AssistantOperation* self); static void assistant_operation_real_do_close (AssistantOperation* self); -static void assistant_operation_set_confirm_page (AssistantOperation* self, GtkWidget* value); -static void assistant_operation_set_progress_page (AssistantOperation* self, GtkWidget* value); -static void assistant_operation_set_summary_page (AssistantOperation* self, GtkWidget* value); -static void assistant_operation_set_icon (AssistantOperation* self, GdkPixbuf* value); -static void assistant_operation_set_error_occurred (AssistantOperation* self, gboolean value); -static void _assistant_operation_do_apply_gtk_assistant_apply (AssistantOperation* _sender, gpointer self); -static void _assistant_operation_do_cancel_gtk_assistant_cancel (AssistantOperation* _sender, gpointer self); -static void _assistant_operation_do_close_gtk_assistant_close (AssistantOperation* _sender, gpointer self); -static void _assistant_operation_do_prepare_gtk_assistant_prepare (AssistantOperation* _sender, GtkWidget* page, gpointer self); +static void assistant_operation_set_op_icon (AssistantOperation* self, GdkPixbuf* value); +static void _assistant_operation_do_apply_gtk_assistant_apply (GtkAssistant* _sender, gpointer self); +static void _assistant_operation_do_cancel_gtk_assistant_cancel (GtkAssistant* _sender, gpointer self); +static void _assistant_operation_do_close_gtk_assistant_close (GtkAssistant* _sender, gpointer self); +static void _assistant_operation_do_prepare_gtk_assistant_prepare (GtkAssistant* _sender, GtkWidget* page, gpointer self); static GObject * assistant_operation_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer assistant_operation_parent_class = NULL; static void assistant_operation_finalize (GObject* obj); +static void assistant_operation_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void assistant_operation_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); +static int _vala_strcmp0 (const char * str1, const char * str2); @@ -90,8 +178,6 @@ static void assistant_operation_real_add_setup_pages (AssistantOperation* self) { g_return_if_fail (self != NULL); - g_critical ("Type `%s' does not implement abstract method `assistant_operation_add_setup_pages'", g_type_name (G_TYPE_FROM_INSTANCE (self))); - return; } @@ -100,6 +186,16 @@ } +static void assistant_operation_real_add_custom_config_pages (AssistantOperation* self) { + g_return_if_fail (self != NULL); +} + + +void assistant_operation_add_custom_config_pages (AssistantOperation* self) { + ASSISTANT_OPERATION_GET_CLASS (self)->add_custom_config_pages (self); +} + + static DejaDupOperation* assistant_operation_real_create_op (AssistantOperation* self) { g_return_val_if_fail (self != NULL, NULL); g_critical ("Type `%s' does not implement abstract method `assistant_operation_create_op'", g_type_name (G_TYPE_FROM_INSTANCE (self))); @@ -124,15 +220,15 @@ } -static GdkPixbuf* assistant_operation_real_get_op_icon (AssistantOperation* self) { +static GdkPixbuf* assistant_operation_real_make_op_icon (AssistantOperation* self) { g_return_val_if_fail (self != NULL, NULL); - g_critical ("Type `%s' does not implement abstract method `assistant_operation_get_op_icon'", g_type_name (G_TYPE_FROM_INSTANCE (self))); + g_critical ("Type `%s' does not implement abstract method `assistant_operation_make_op_icon'", g_type_name (G_TYPE_FROM_INSTANCE (self))); return NULL; } -GdkPixbuf* assistant_operation_get_op_icon (AssistantOperation* self) { - return ASSISTANT_OPERATION_GET_CLASS (self)->get_op_icon (self); +GdkPixbuf* assistant_operation_make_op_icon (AssistantOperation* self) { + return ASSISTANT_OPERATION_GET_CLASS (self)->make_op_icon (self); } @@ -158,58 +254,146 @@ g_return_if_fail (op != NULL); g_return_if_fail (label != NULL); gtk_label_set_label (self->priv->progress_label, label); + gtk_label_set_label (self->priv->progress_file_label, ""); } static void assistant_operation_set_progress_label_file (AssistantOperation* self, DejaDupOperation* op, GFile* file) { char* parse_name; char* basename; - char* _tmp1; - char* _tmp0; - char* _tmp2; + char* _tmp1_; + char* _tmp0_; + char* _tmp2_; + GtkTextBuffer* _tmp3_; + GtkTextBuffer* buffer; + gboolean _tmp5_; + GtkTextIter iter = {0}; g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); g_return_if_fail (file != NULL); parse_name = g_file_get_parse_name (file); basename = g_path_get_basename (parse_name); - _tmp1 = NULL; - _tmp0 = NULL; - gtk_label_set_label (self->priv->progress_label, _tmp1 = g_strconcat (_tmp0 = assistant_operation_get_progress_file_prefix (self), " ", NULL)); - _tmp1 = (g_free (_tmp1), NULL); - _tmp0 = (g_free (_tmp0), NULL); - _tmp2 = NULL; - gtk_label_set_label (self->priv->progress_file_label, _tmp2 = g_strdup_printf ("'%s'", basename)); - _tmp2 = (g_free (_tmp2), NULL); + _tmp1_ = NULL; + _tmp0_ = NULL; + gtk_label_set_label (self->priv->progress_label, _tmp1_ = g_strconcat (_tmp0_ = assistant_operation_get_progress_file_prefix (self), " ", NULL)); + _tmp1_ = (g_free (_tmp1_), NULL); + _tmp0_ = (g_free (_tmp0_), NULL); + _tmp2_ = NULL; + gtk_label_set_label (self->priv->progress_file_label, _tmp2_ = g_strdup_printf ("'%s'", basename)); + _tmp2_ = (g_free (_tmp2_), NULL); + _tmp3_ = NULL; + buffer = (_tmp3_ = gtk_text_view_get_buffer (self->priv->progress_text), (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); + if (gtk_text_buffer_get_char_count (buffer) > 0) { + char* _tmp4_; + _tmp4_ = NULL; + parse_name = (_tmp4_ = g_strconcat ("\n", parse_name, NULL), parse_name = (g_free (parse_name), NULL), _tmp4_); + } + _tmp5_ = FALSE; + if (gtk_text_buffer_get_line_count (buffer) >= 100) { + _tmp5_ = self->priv->adjustment_at_end; + } else { + _tmp5_ = FALSE; + } + if (_tmp5_) { + GtkTextIter start = {0}; + GtkTextIter line100 = {0}; + /* If we're watching text scroll by, optimize memory by only keeping last 100 lines*/ + gtk_text_buffer_get_start_iter (buffer, &start); + gtk_text_buffer_get_iter_at_line (buffer, &line100, gtk_text_buffer_get_line_count (buffer) - 100); + gtk_text_buffer_delete (buffer, &start, &line100); + } + gtk_text_buffer_get_end_iter (buffer, &iter); + g_signal_emit_by_name (buffer, "insert-text", &iter, parse_name, -1); parse_name = (g_free (parse_name), NULL); basename = (g_free (basename), NULL); + (buffer == NULL) ? NULL : (buffer = (g_object_unref (buffer), NULL)); +} + + +static void _lambda0_ (GtkAdjustment* a, AssistantOperation* self) { + g_return_if_fail (a != NULL); + self->priv->adjustment_at_end = gtk_adjustment_get_value (a) >= (hacks_adjustment_get_upper (a) - hacks_adjustment_get_page_size (a)); +} + + +static void __lambda0__gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) { + _lambda0_ (_sender, self); +} + + +static void _lambda1_ (GtkAdjustment* a, AssistantOperation* self) { + g_return_if_fail (a != NULL); + if (self->priv->adjustment_at_end) { + gtk_adjustment_set_value (a, hacks_adjustment_get_upper (a)); + } +} + + +static void __lambda1__gtk_adjustment_changed (GtkAdjustment* _sender, gpointer self) { + _lambda1_ (_sender, self); +} + + +/* FIXME: really should subclass adjustment or something...*/ +static void assistant_operation_make_adjustment_stay_at_end (AssistantOperation* self, GtkWidget* range) { + GtkAdjustment* _tmp0_; + GtkAdjustment* adjust; + g_return_if_fail (self != NULL); + g_return_if_fail (range != NULL); + _tmp0_ = NULL; + adjust = (_tmp0_ = gtk_range_get_adjustment (GTK_RANGE (range)), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); + g_signal_connect (adjust, "value-changed", (GCallback) __lambda0__gtk_adjustment_value_changed, self); + g_signal_connect (adjust, "changed", (GCallback) __lambda1__gtk_adjustment_changed, self); + (adjust == NULL) ? NULL : (adjust = (g_object_unref (adjust), NULL)); +} + + +static void _assistant_operation_make_adjustment_stay_at_end_gtk_widget_realize (GtkWidget* _sender, gpointer self) { + assistant_operation_make_adjustment_stay_at_end (self, _sender); } static GtkWidget* assistant_operation_real_make_progress_page (AssistantOperation* self) { - GtkLabel* _tmp0; - GtkLabel* _tmp1; + GtkLabel* _tmp0_; + GtkLabel* _tmp1_; GtkHBox* progress_hbox; - GtkProgressBar* _tmp2; + GtkProgressBar* _tmp2_; + GtkTextView* _tmp3_; + GtkScrolledWindow* _tmp4_; + GtkRange* _tmp5_; + GtkRange* range; + GtkExpander* expander; GtkVBox* page; - GtkWidget* _tmp3; + GtkWidget* _tmp6_; g_return_val_if_fail (self != NULL, NULL); - _tmp0 = NULL; - self->priv->progress_label = (_tmp0 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->progress_label == NULL) ? NULL : (self->priv->progress_label = (g_object_unref (self->priv->progress_label), NULL)), _tmp0); + _tmp0_ = NULL; + self->priv->progress_label = (_tmp0_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->progress_label == NULL) ? NULL : (self->priv->progress_label = (g_object_unref (self->priv->progress_label), NULL)), _tmp0_); g_object_set ((GObject*) self->priv->progress_label, "xalign", 0.0f, NULL); - _tmp1 = NULL; - self->priv->progress_file_label = (_tmp1 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->progress_file_label == NULL) ? NULL : (self->priv->progress_file_label = (g_object_unref (self->priv->progress_file_label), NULL)), _tmp1); + _tmp1_ = NULL; + self->priv->progress_file_label = (_tmp1_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->progress_file_label == NULL) ? NULL : (self->priv->progress_file_label = (g_object_unref (self->priv->progress_file_label), NULL)), _tmp1_); g_object_set ((GObject*) self->priv->progress_file_label, "xalign", 0.0f, "ellipsize", PANGO_ELLIPSIZE_MIDDLE, NULL); progress_hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 0)); g_object_set ((GObject*) progress_hbox, "child", self->priv->progress_label, "child", self->priv->progress_file_label, NULL); gtk_container_child_set ((GtkContainer*) progress_hbox, (GtkWidget*) self->priv->progress_label, "expand", FALSE, NULL); - _tmp2 = NULL; - self->priv->progress_bar = (_tmp2 = g_object_ref_sink ((GtkProgressBar*) gtk_progress_bar_new ()), (self->priv->progress_bar == NULL) ? NULL : (self->priv->progress_bar = (g_object_unref (self->priv->progress_bar), NULL)), _tmp2); + _tmp2_ = NULL; + self->priv->progress_bar = (_tmp2_ = g_object_ref_sink ((GtkProgressBar*) gtk_progress_bar_new ()), (self->priv->progress_bar == NULL) ? NULL : (self->priv->progress_bar = (g_object_unref (self->priv->progress_bar), NULL)), _tmp2_); + _tmp3_ = NULL; + self->priv->progress_text = (_tmp3_ = g_object_ref_sink ((GtkTextView*) gtk_text_view_new ()), (self->priv->progress_text == NULL) ? NULL : (self->priv->progress_text = (g_object_unref (self->priv->progress_text), NULL)), _tmp3_); + gtk_text_view_set_editable (self->priv->progress_text, FALSE); + _tmp4_ = NULL; + self->priv->progress_scroll = (_tmp4_ = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL)), (self->priv->progress_scroll == NULL) ? NULL : (self->priv->progress_scroll = (g_object_unref (self->priv->progress_scroll), NULL)), _tmp4_); + g_object_set ((GObject*) self->priv->progress_scroll, "child", self->priv->progress_text, "hscrollbar-policy", GTK_POLICY_AUTOMATIC, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, "border-width", 6, NULL); + _tmp5_ = NULL; + range = (_tmp5_ = GTK_RANGE (self->priv->progress_scroll->vscrollbar), (_tmp5_ == NULL) ? NULL : g_object_ref (_tmp5_)); + g_signal_connect_object ((GtkWidget*) range, "realize", (GCallback) _assistant_operation_make_adjustment_stay_at_end_gtk_widget_realize, self, 0); + expander = g_object_ref_sink ((GtkExpander*) gtk_expander_new_with_mnemonic (_ ("_Details"))); + g_object_set ((GObject*) expander, "child", self->priv->progress_scroll, NULL); page = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)); - g_object_set ((GObject*) page, "child", progress_hbox, "child", self->priv->progress_bar, "border-width", 12, NULL); + g_object_set ((GObject*) page, "child", progress_hbox, "child", self->priv->progress_bar, "child", expander, "border-width", 12, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) progress_hbox, "expand", FALSE, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) self->priv->progress_bar, "expand", FALSE, NULL); - _tmp3 = NULL; - return (_tmp3 = (GtkWidget*) page, (progress_hbox == NULL) ? NULL : (progress_hbox = (g_object_unref (progress_hbox), NULL)), _tmp3); + _tmp6_ = NULL; + return (_tmp6_ = (GtkWidget*) page, (progress_hbox == NULL) ? NULL : (progress_hbox = (g_object_unref (progress_hbox), NULL)), (range == NULL) ? NULL : (range = (g_object_unref (range), NULL)), (expander == NULL) ? NULL : (expander = (g_object_unref (expander), NULL)), _tmp6_); } @@ -218,43 +402,41 @@ } -static void assistant_operation_real_show_error (AssistantOperation* self, DejaDupOperation* op, const char* error, const char* detail) { - GError * inner_error; +static void assistant_operation_real_show_error (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail) { + GError * _inner_error_; g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); - g_return_if_fail (error != NULL); - inner_error = NULL; + g_return_if_fail (_error_ != NULL); + _inner_error_ = NULL; assistant_operation_set_error_occurred (self, TRUE); { - GdkPixbuf* _tmp0; GdkPixbuf* pixbuf; - _tmp0 = NULL; - pixbuf = (_tmp0 = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), GTK_STOCK_DIALOG_ERROR, 48, GTK_ICON_LOOKUP_FORCE_SIZE, &inner_error), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - if (inner_error != NULL) { - goto __catch2_g_error; - goto __finally2; + pixbuf = hacks_get_icon_at_size (GTK_STOCK_DIALOG_ERROR, 48, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch1_g_error; + goto __finally1; } gtk_container_child_set ((GtkContainer*) self, self->priv->_summary_page, "header-image", pixbuf, NULL); (pixbuf == NULL) ? NULL : (pixbuf = (g_object_unref (pixbuf), NULL)); } - goto __finally2; - __catch2_g_error: + goto __finally1; + __catch1_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally2: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally1: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } /* Eh, don't worry about it*/ - gtk_label_set_label (self->summary_label, error); + gtk_label_set_label (self->summary_label, _error_); g_object_set (self->summary_label, "wrap", TRUE, NULL); gtk_label_set_selectable (self->summary_label, TRUE); if (detail != NULL) { @@ -266,26 +448,26 @@ } -void assistant_operation_show_error (AssistantOperation* self, DejaDupOperation* op, const char* error, const char* detail) { - ASSISTANT_OPERATION_GET_CLASS (self)->show_error (self, op, error, detail); +void assistant_operation_show_error (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail) { + ASSISTANT_OPERATION_GET_CLASS (self)->show_error (self, op, _error_, detail); } /* last, summary page*/ static GtkWidget* assistant_operation_real_make_summary_page (AssistantOperation* self) { - GtkLabel* _tmp0; - GtkTextView* _tmp1; + GtkLabel* _tmp0_; + GtkTextView* _tmp1_; GtkScrolledWindow* scroll; - GtkWidget* _tmp3; - GtkWidget* _tmp2; + GtkWidget* _tmp3_; + GtkWidget* _tmp2_; GtkVBox* page; - GtkWidget* _tmp4; + GtkWidget* _tmp4_; g_return_val_if_fail (self != NULL, NULL); - _tmp0 = NULL; - self->summary_label = (_tmp0 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->summary_label == NULL) ? NULL : (self->summary_label = (g_object_unref (self->summary_label), NULL)), _tmp0); + _tmp0_ = NULL; + self->summary_label = (_tmp0_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->summary_label == NULL) ? NULL : (self->summary_label = (g_object_unref (self->summary_label), NULL)), _tmp0_); g_object_set ((GObject*) self->summary_label, "xalign", 0.0f, NULL); - _tmp1 = NULL; - self->priv->error_text_view = (_tmp1 = g_object_ref_sink ((GtkTextView*) gtk_text_view_new ()), (self->priv->error_text_view == NULL) ? NULL : (self->priv->error_text_view = (g_object_unref (self->priv->error_text_view), NULL)), _tmp1); + _tmp1_ = NULL; + self->priv->error_text_view = (_tmp1_ = g_object_ref_sink ((GtkTextView*) gtk_text_view_new ()), (self->priv->error_text_view == NULL) ? NULL : (self->priv->error_text_view = (g_object_unref (self->priv->error_text_view), NULL)), _tmp1_); gtk_text_view_set_editable (self->priv->error_text_view, FALSE); gtk_text_view_set_wrap_mode (self->priv->error_text_view, GTK_WRAP_WORD); g_object_set ((GtkWidget*) self->priv->error_text_view, "height-request", 150, NULL); @@ -293,14 +475,14 @@ gtk_container_add ((GtkContainer*) scroll, (GtkWidget*) self->priv->error_text_view); gtk_widget_set_no_show_all ((GtkWidget*) scroll, TRUE); /* only will be shown if an error occurs*/ - _tmp3 = NULL; - _tmp2 = NULL; - self->priv->error_widget = (_tmp3 = (_tmp2 = (GtkWidget*) scroll, (_tmp2 == NULL) ? NULL : g_object_ref (_tmp2)), (self->priv->error_widget == NULL) ? NULL : (self->priv->error_widget = (g_object_unref (self->priv->error_widget), NULL)), _tmp3); + _tmp3_ = NULL; + _tmp2_ = NULL; + self->priv->error_widget = (_tmp3_ = (_tmp2_ = (GtkWidget*) scroll, (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)), (self->priv->error_widget == NULL) ? NULL : (self->priv->error_widget = (g_object_unref (self->priv->error_widget), NULL)), _tmp3_); page = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)); g_object_set ((GObject*) page, "child", self->summary_label, "child", self->priv->error_widget, "border-width", 12, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) self->summary_label, "expand", FALSE, NULL); - _tmp4 = NULL; - return (_tmp4 = (GtkWidget*) page, (scroll == NULL) ? NULL : (scroll = (g_object_unref (scroll), NULL)), _tmp4); + _tmp4_ = NULL; + return (_tmp4_ = (GtkWidget*) page, (scroll == NULL) ? NULL : (scroll = (g_object_unref (scroll), NULL)), _tmp4_); } @@ -309,12 +491,73 @@ } +static void assistant_operation_add_config_pages_if_needed (AssistantOperation* self) { + GError * _inner_error_; + GConfClient* client; + char* val; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + val = NULL; + { + const char* _tmp0_; + char* _tmp2_; + const char* _tmp1_; + gboolean _tmp3_; + _tmp0_ = gconf_client_get_string (client, DEJA_DUP_LAST_RUN_KEY, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch2_g_error; + goto __finally2; + } + _tmp2_ = NULL; + _tmp1_ = NULL; + val = (_tmp2_ = (_tmp1_ = _tmp0_, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), val = (g_free (val), NULL), _tmp2_); + _tmp3_ = FALSE; + if (val != NULL) { + _tmp3_ = _vala_strcmp0 (val, "") != 0; + } else { + _tmp3_ = FALSE; + } + if (_tmp3_) { + (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); + val = (g_free (val), NULL); + return; + } + } + goto __finally2; + __catch2_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("AssistantOperation.vala:222: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); + val = (g_free (val), NULL); + return; + } + } + __finally2: + if (_inner_error_ != NULL) { + (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); + val = (g_free (val), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + assistant_operation_add_custom_config_pages (self); + (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); + val = (g_free (val), NULL); +} + + static void assistant_operation_add_confirm_page (AssistantOperation* self) { GtkWidget* page; g_return_if_fail (self != NULL); page = assistant_operation_make_confirm_page (self); gtk_assistant_append_page ((GtkAssistant*) self, page); - gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Summary"), "page-type", GTK_ASSISTANT_PAGE_CONFIRM, "complete", TRUE, "header-image", self->priv->_icon, NULL); + gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Summary"), "page-type", GTK_ASSISTANT_PAGE_CONFIRM, "complete", TRUE, "header-image", self->priv->_op_icon, NULL); assistant_operation_set_confirm_page (self, page); (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); } @@ -327,7 +570,7 @@ gtk_assistant_append_page ((GtkAssistant*) self, page); /* We don't actually use a PROGRESS type for this page, because that doesn't allow for cancelling.*/ - gtk_container_child_set ((GtkContainer*) self, page, "page-type", GTK_ASSISTANT_PAGE_CONTENT, "header-image", self->priv->_icon, NULL); + gtk_container_child_set ((GtkContainer*) self, page, "page-type", GTK_ASSISTANT_PAGE_CONTENT, "header-image", self->priv->_op_icon, NULL); assistant_operation_set_progress_page (self, page); (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); } @@ -338,18 +581,18 @@ g_return_if_fail (self != NULL); page = assistant_operation_make_summary_page (self); gtk_assistant_append_page ((GtkAssistant*) self, page); - gtk_container_child_set ((GtkContainer*) self, page, "page-type", GTK_ASSISTANT_PAGE_SUMMARY, "complete", TRUE, "header-image", self->priv->_icon, NULL); + gtk_container_child_set ((GtkContainer*) self, page, "page-type", GTK_ASSISTANT_PAGE_SUMMARY, "complete", TRUE, "header-image", self->priv->_op_icon, NULL); assistant_operation_set_summary_page (self, page); (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); } static void assistant_operation_apply_finished (AssistantOperation* self, DejaDupOperation* op, gboolean success) { - DejaDupOperation* _tmp0; + DejaDupOperation* _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); - _tmp0 = NULL; - self->priv->op = (_tmp0 = NULL, (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)), _tmp0); + _tmp0_ = NULL; + self->priv->op = (_tmp0_ = NULL, (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)), _tmp0_); if (success) { gtk_assistant_set_current_page ((GtkAssistant*) self, gtk_assistant_get_n_pages ((GtkAssistant*) self) - 1); } else { @@ -387,20 +630,20 @@ static void assistant_operation_do_apply (AssistantOperation* self) { - GError * inner_error; - DejaDupOperation* _tmp0; + GError * _inner_error_; + DejaDupOperation* _tmp0_; g_return_if_fail (self != NULL); - inner_error = NULL; - _tmp0 = NULL; - self->priv->op = (_tmp0 = assistant_operation_create_op (self), (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)), _tmp0); + _inner_error_ = NULL; + _tmp0_ = NULL; + self->priv->op = (_tmp0_ = assistant_operation_create_op (self), (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)), _tmp0_); g_signal_connect_object (self->priv->op, "done", (GCallback) _assistant_operation_apply_finished_deja_dup_operation_done, self, 0); g_signal_connect_object (self->priv->op, "raise-error", (GCallback) _assistant_operation_show_error_deja_dup_operation_raise_error, self, 0); g_signal_connect_object (self->priv->op, "action-desc-changed", (GCallback) _assistant_operation_set_progress_label_deja_dup_operation_action_desc_changed, self, 0); g_signal_connect_object (self->priv->op, "action-file-changed", (GCallback) _assistant_operation_set_progress_label_file_deja_dup_operation_action_file_changed, self, 0); g_signal_connect_object (self->priv->op, "progress", (GCallback) _assistant_operation_show_progress_deja_dup_operation_progress, self, 0); { - deja_dup_operation_start (self->priv->op, &inner_error); - if (inner_error != NULL) { + deja_dup_operation_start (self->priv->op, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch3_g_error; goto __finally3; } @@ -409,10 +652,10 @@ __catch3_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("AssistantOperation.vala:229: %s\n", e->message); + g_warning ("AssistantOperation.vala:290: %s\n", e->message); assistant_operation_show_error (self, self->priv->op, e->message, NULL); /* not really user-friendly text, but ideally this won't happen*/ assistant_operation_apply_finished (self, self->priv->op, FALSE); @@ -420,9 +663,9 @@ } } __finally3: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -433,7 +676,7 @@ } -static void assistant_operation_real_do_prepare (AssistantOperation* self, AssistantOperation* assist, GtkWidget* page) { +static void assistant_operation_real_do_prepare (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page) { g_return_if_fail (self != NULL); g_return_if_fail (assist != NULL); g_return_if_fail (page != NULL); @@ -443,9 +686,13 @@ } if (page == self->priv->_confirm_page) { if (self->priv->op != NULL) { - guint _tmp0; - g_signal_handlers_disconnect_matched (self->priv->op, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_OPERATION, &_tmp0, NULL, FALSE), _tmp0), 0, NULL, (GCallback) _assistant_operation_apply_finished_deja_dup_operation_done, self); + guint _tmp0_; + DejaDupOperation* _tmp1_; + g_signal_handlers_disconnect_matched (self->priv->op, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_OPERATION, &_tmp0_, NULL, FALSE), _tmp0_), 0, NULL, (GCallback) _assistant_operation_apply_finished_deja_dup_operation_done, self); deja_dup_operation_cancel (self->priv->op); + /* in case we just went back from progress page*/ + _tmp1_ = NULL; + self->priv->op = (_tmp1_ = NULL, (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)), _tmp1_); } } else { if (page == self->priv->_progress_page) { @@ -456,7 +703,7 @@ } -void assistant_operation_do_prepare (AssistantOperation* self, AssistantOperation* assist, GtkWidget* page) { +void assistant_operation_do_prepare (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page) { ASSISTANT_OPERATION_GET_CLASS (self)->do_prepare (self, assist, page); } @@ -493,12 +740,12 @@ static void assistant_operation_set_confirm_page (AssistantOperation* self, GtkWidget* value) { - GtkWidget* _tmp2; - GtkWidget* _tmp1; + GtkWidget* _tmp2_; + GtkWidget* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_confirm_page = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_confirm_page == NULL) ? NULL : (self->priv->_confirm_page = (g_object_unref (self->priv->_confirm_page), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_confirm_page = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_confirm_page == NULL) ? NULL : (self->priv->_confirm_page = (g_object_unref (self->priv->_confirm_page), NULL)), _tmp2_); g_object_notify ((GObject *) self, "confirm-page"); } @@ -510,12 +757,12 @@ static void assistant_operation_set_progress_page (AssistantOperation* self, GtkWidget* value) { - GtkWidget* _tmp2; - GtkWidget* _tmp1; + GtkWidget* _tmp2_; + GtkWidget* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_progress_page = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_progress_page == NULL) ? NULL : (self->priv->_progress_page = (g_object_unref (self->priv->_progress_page), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_progress_page = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_progress_page == NULL) ? NULL : (self->priv->_progress_page = (g_object_unref (self->priv->_progress_page), NULL)), _tmp2_); g_object_notify ((GObject *) self, "progress-page"); } @@ -527,30 +774,30 @@ static void assistant_operation_set_summary_page (AssistantOperation* self, GtkWidget* value) { - GtkWidget* _tmp2; - GtkWidget* _tmp1; + GtkWidget* _tmp2_; + GtkWidget* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_summary_page = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_summary_page == NULL) ? NULL : (self->priv->_summary_page = (g_object_unref (self->priv->_summary_page), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_summary_page = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_summary_page == NULL) ? NULL : (self->priv->_summary_page = (g_object_unref (self->priv->_summary_page), NULL)), _tmp2_); g_object_notify ((GObject *) self, "summary-page"); } -GdkPixbuf* assistant_operation_get_icon (AssistantOperation* self) { +GdkPixbuf* assistant_operation_get_op_icon (AssistantOperation* self) { g_return_val_if_fail (self != NULL, NULL); - return self->priv->_icon; + return self->priv->_op_icon; } -static void assistant_operation_set_icon (AssistantOperation* self, GdkPixbuf* value) { - GdkPixbuf* _tmp2; - GdkPixbuf* _tmp1; +static void assistant_operation_set_op_icon (AssistantOperation* self, GdkPixbuf* value) { + GdkPixbuf* _tmp2_; + GdkPixbuf* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_icon = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_icon == NULL) ? NULL : (self->priv->_icon = (g_object_unref (self->priv->_icon), NULL)), _tmp2); - g_object_notify ((GObject *) self, "icon"); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_op_icon = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_op_icon == NULL) ? NULL : (self->priv->_op_icon = (g_object_unref (self->priv->_op_icon), NULL)), _tmp2_); + g_object_notify ((GObject *) self, "op-icon"); } @@ -567,22 +814,22 @@ } -static void _assistant_operation_do_apply_gtk_assistant_apply (AssistantOperation* _sender, gpointer self) { +static void _assistant_operation_do_apply_gtk_assistant_apply (GtkAssistant* _sender, gpointer self) { assistant_operation_do_apply (self); } -static void _assistant_operation_do_cancel_gtk_assistant_cancel (AssistantOperation* _sender, gpointer self) { +static void _assistant_operation_do_cancel_gtk_assistant_cancel (GtkAssistant* _sender, gpointer self) { assistant_operation_do_cancel (self); } -static void _assistant_operation_do_close_gtk_assistant_close (AssistantOperation* _sender, gpointer self) { +static void _assistant_operation_do_close_gtk_assistant_close (GtkAssistant* _sender, gpointer self) { assistant_operation_do_close (self); } -static void _assistant_operation_do_prepare_gtk_assistant_prepare (AssistantOperation* _sender, GtkWidget* page, gpointer self) { +static void _assistant_operation_do_prepare_gtk_assistant_prepare (GtkAssistant* _sender, GtkWidget* page, gpointer self) { assistant_operation_do_prepare (self, _sender, page); } @@ -597,10 +844,11 @@ obj = parent_class->constructor (type, n_construct_properties, construct_properties); self = ASSISTANT_OPERATION (obj); { - GdkPixbuf* _tmp0; - _tmp0 = NULL; - assistant_operation_set_icon (self, _tmp0 = assistant_operation_get_op_icon (self)); - (_tmp0 == NULL) ? NULL : (_tmp0 = (g_object_unref (_tmp0), NULL)); + GdkPixbuf* _tmp0_; + _tmp0_ = NULL; + assistant_operation_set_op_icon (self, _tmp0_ = assistant_operation_make_op_icon (self)); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)); + assistant_operation_add_config_pages_if_needed (self); assistant_operation_add_setup_pages (self); assistant_operation_add_confirm_page (self); assistant_operation_add_progress_page (self); @@ -614,6 +862,68 @@ } +static void assistant_operation_class_init (AssistantOperationClass * klass) { + assistant_operation_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (AssistantOperationPrivate)); + ASSISTANT_OPERATION_CLASS (klass)->make_confirm_page = assistant_operation_real_make_confirm_page; + ASSISTANT_OPERATION_CLASS (klass)->add_setup_pages = assistant_operation_real_add_setup_pages; + ASSISTANT_OPERATION_CLASS (klass)->add_custom_config_pages = assistant_operation_real_add_custom_config_pages; + ASSISTANT_OPERATION_CLASS (klass)->create_op = assistant_operation_real_create_op; + ASSISTANT_OPERATION_CLASS (klass)->get_progress_file_prefix = assistant_operation_real_get_progress_file_prefix; + ASSISTANT_OPERATION_CLASS (klass)->make_op_icon = assistant_operation_real_make_op_icon; + ASSISTANT_OPERATION_CLASS (klass)->make_progress_page = assistant_operation_real_make_progress_page; + ASSISTANT_OPERATION_CLASS (klass)->show_error = assistant_operation_real_show_error; + ASSISTANT_OPERATION_CLASS (klass)->make_summary_page = assistant_operation_real_make_summary_page; + ASSISTANT_OPERATION_CLASS (klass)->do_prepare = assistant_operation_real_do_prepare; + ASSISTANT_OPERATION_CLASS (klass)->do_close = assistant_operation_real_do_close; + G_OBJECT_CLASS (klass)->get_property = assistant_operation_get_property; + G_OBJECT_CLASS (klass)->set_property = assistant_operation_set_property; + G_OBJECT_CLASS (klass)->constructor = assistant_operation_constructor; + G_OBJECT_CLASS (klass)->finalize = assistant_operation_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_CONFIRM_PAGE, g_param_spec_object ("confirm-page", "confirm-page", "confirm-page", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_PROGRESS_PAGE, g_param_spec_object ("progress-page", "progress-page", "progress-page", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_SUMMARY_PAGE, g_param_spec_object ("summary-page", "summary-page", "summary-page", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_OP_ICON, g_param_spec_object ("op-icon", "op-icon", "op-icon", GDK_TYPE_PIXBUF, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_ERROR_OCCURRED, g_param_spec_boolean ("error-occurred", "error-occurred", "error-occurred", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); +} + + +static void assistant_operation_instance_init (AssistantOperation * self) { + self->priv = ASSISTANT_OPERATION_GET_PRIVATE (self); + self->priv->adjustment_at_end = TRUE; +} + + +static void assistant_operation_finalize (GObject* obj) { + AssistantOperation * self; + self = ASSISTANT_OPERATION (obj); + (self->priv->_confirm_page == NULL) ? NULL : (self->priv->_confirm_page = (g_object_unref (self->priv->_confirm_page), NULL)); + (self->priv->progress_label == NULL) ? NULL : (self->priv->progress_label = (g_object_unref (self->priv->progress_label), NULL)); + (self->priv->progress_file_label == NULL) ? NULL : (self->priv->progress_file_label = (g_object_unref (self->priv->progress_file_label), NULL)); + (self->priv->progress_bar == NULL) ? NULL : (self->priv->progress_bar = (g_object_unref (self->priv->progress_bar), NULL)); + (self->priv->progress_text == NULL) ? NULL : (self->priv->progress_text = (g_object_unref (self->priv->progress_text), NULL)); + (self->priv->progress_scroll == NULL) ? NULL : (self->priv->progress_scroll = (g_object_unref (self->priv->progress_scroll), NULL)); + (self->priv->_progress_page == NULL) ? NULL : (self->priv->_progress_page = (g_object_unref (self->priv->_progress_page), NULL)); + (self->summary_label == NULL) ? NULL : (self->summary_label = (g_object_unref (self->summary_label), NULL)); + (self->priv->error_widget == NULL) ? NULL : (self->priv->error_widget = (g_object_unref (self->priv->error_widget), NULL)); + (self->priv->error_text_view == NULL) ? NULL : (self->priv->error_text_view = (g_object_unref (self->priv->error_text_view), NULL)); + (self->priv->_summary_page == NULL) ? NULL : (self->priv->_summary_page = (g_object_unref (self->priv->_summary_page), NULL)); + (self->priv->_op_icon == NULL) ? NULL : (self->priv->_op_icon = (g_object_unref (self->priv->_op_icon), NULL)); + (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)); + G_OBJECT_CLASS (assistant_operation_parent_class)->finalize (obj); +} + + +GType assistant_operation_get_type (void) { + static GType assistant_operation_type_id = 0; + if (assistant_operation_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (AssistantOperationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) assistant_operation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AssistantOperation), 0, (GInstanceInitFunc) assistant_operation_instance_init, NULL }; + assistant_operation_type_id = g_type_register_static (GTK_TYPE_ASSISTANT, "AssistantOperation", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + } + return assistant_operation_type_id; +} + + static void assistant_operation_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { AssistantOperation * self; gpointer boxed; @@ -628,8 +938,8 @@ case ASSISTANT_OPERATION_SUMMARY_PAGE: g_value_set_object (value, assistant_operation_get_summary_page (self)); break; - case ASSISTANT_OPERATION_ICON: - g_value_set_object (value, assistant_operation_get_icon (self)); + case ASSISTANT_OPERATION_OP_ICON: + g_value_set_object (value, assistant_operation_get_op_icon (self)); break; case ASSISTANT_OPERATION_ERROR_OCCURRED: g_value_set_boolean (value, assistant_operation_get_error_occurred (self)); @@ -654,8 +964,8 @@ case ASSISTANT_OPERATION_SUMMARY_PAGE: assistant_operation_set_summary_page (self, g_value_get_object (value)); break; - case ASSISTANT_OPERATION_ICON: - assistant_operation_set_icon (self, g_value_get_object (value)); + case ASSISTANT_OPERATION_OP_ICON: + assistant_operation_set_op_icon (self, g_value_get_object (value)); break; case ASSISTANT_OPERATION_ERROR_OCCURRED: assistant_operation_set_error_occurred (self, g_value_get_boolean (value)); @@ -667,61 +977,14 @@ } -static void assistant_operation_class_init (AssistantOperationClass * klass) { - assistant_operation_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (AssistantOperationPrivate)); - G_OBJECT_CLASS (klass)->get_property = assistant_operation_get_property; - G_OBJECT_CLASS (klass)->set_property = assistant_operation_set_property; - G_OBJECT_CLASS (klass)->constructor = assistant_operation_constructor; - G_OBJECT_CLASS (klass)->finalize = assistant_operation_finalize; - ASSISTANT_OPERATION_CLASS (klass)->make_confirm_page = assistant_operation_real_make_confirm_page; - ASSISTANT_OPERATION_CLASS (klass)->add_setup_pages = assistant_operation_real_add_setup_pages; - ASSISTANT_OPERATION_CLASS (klass)->create_op = assistant_operation_real_create_op; - ASSISTANT_OPERATION_CLASS (klass)->get_progress_file_prefix = assistant_operation_real_get_progress_file_prefix; - ASSISTANT_OPERATION_CLASS (klass)->get_op_icon = assistant_operation_real_get_op_icon; - ASSISTANT_OPERATION_CLASS (klass)->make_progress_page = assistant_operation_real_make_progress_page; - ASSISTANT_OPERATION_CLASS (klass)->show_error = assistant_operation_real_show_error; - ASSISTANT_OPERATION_CLASS (klass)->make_summary_page = assistant_operation_real_make_summary_page; - ASSISTANT_OPERATION_CLASS (klass)->do_prepare = assistant_operation_real_do_prepare; - ASSISTANT_OPERATION_CLASS (klass)->do_close = assistant_operation_real_do_close; - g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_CONFIRM_PAGE, g_param_spec_object ("confirm-page", "confirm-page", "confirm-page", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_PROGRESS_PAGE, g_param_spec_object ("progress-page", "progress-page", "progress-page", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_SUMMARY_PAGE, g_param_spec_object ("summary-page", "summary-page", "summary-page", GTK_TYPE_WIDGET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_ICON, g_param_spec_object ("icon", "icon", "icon", GDK_TYPE_PIXBUF, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_OPERATION_ERROR_OCCURRED, g_param_spec_boolean ("error-occurred", "error-occurred", "error-occurred", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); -} - - -static void assistant_operation_instance_init (AssistantOperation * self) { - self->priv = ASSISTANT_OPERATION_GET_PRIVATE (self); -} - - -static void assistant_operation_finalize (GObject* obj) { - AssistantOperation * self; - self = ASSISTANT_OPERATION (obj); - (self->priv->_confirm_page == NULL) ? NULL : (self->priv->_confirm_page = (g_object_unref (self->priv->_confirm_page), NULL)); - (self->priv->progress_label == NULL) ? NULL : (self->priv->progress_label = (g_object_unref (self->priv->progress_label), NULL)); - (self->priv->progress_file_label == NULL) ? NULL : (self->priv->progress_file_label = (g_object_unref (self->priv->progress_file_label), NULL)); - (self->priv->progress_bar == NULL) ? NULL : (self->priv->progress_bar = (g_object_unref (self->priv->progress_bar), NULL)); - (self->priv->_progress_page == NULL) ? NULL : (self->priv->_progress_page = (g_object_unref (self->priv->_progress_page), NULL)); - (self->summary_label == NULL) ? NULL : (self->summary_label = (g_object_unref (self->summary_label), NULL)); - (self->priv->error_widget == NULL) ? NULL : (self->priv->error_widget = (g_object_unref (self->priv->error_widget), NULL)); - (self->priv->error_text_view == NULL) ? NULL : (self->priv->error_text_view = (g_object_unref (self->priv->error_text_view), NULL)); - (self->priv->_summary_page == NULL) ? NULL : (self->priv->_summary_page = (g_object_unref (self->priv->_summary_page), NULL)); - (self->priv->_icon == NULL) ? NULL : (self->priv->_icon = (g_object_unref (self->priv->_icon), NULL)); - (self->priv->op == NULL) ? NULL : (self->priv->op = (g_object_unref (self->priv->op), NULL)); - G_OBJECT_CLASS (assistant_operation_parent_class)->finalize (obj); -} - - -GType assistant_operation_get_type (void) { - static GType assistant_operation_type_id = 0; - if (assistant_operation_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (AssistantOperationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) assistant_operation_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (AssistantOperation), 0, (GInstanceInitFunc) assistant_operation_instance_init, NULL }; - assistant_operation_type_id = g_type_register_static (GTK_TYPE_ASSISTANT, "AssistantOperation", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); +static int _vala_strcmp0 (const char * str1, const char * str2) { + if (str1 == NULL) { + return -(str1 != str2); } - return assistant_operation_type_id; + if (str2 == NULL) { + return str1 != str2; + } + return strcmp (str1, str2); } diff -Nru deja-dup-7.4/deja-dup/AssistantOperation.h deja-dup-10.0/deja-dup/AssistantOperation.h --- deja-dup-7.4/deja-dup/AssistantOperation.h 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantOperation.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,86 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __ASSISTANTOPERATION_H__ -#define __ASSISTANTOPERATION_H__ - -#include -#include -#include -#include -#include -#include -#include - -G_BEGIN_DECLS - - -#define TYPE_ASSISTANT_OPERATION (assistant_operation_get_type ()) -#define ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperation)) -#define ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) -#define IS_ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_OPERATION)) -#define IS_ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_OPERATION)) -#define ASSISTANT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) - -typedef struct _AssistantOperation AssistantOperation; -typedef struct _AssistantOperationClass AssistantOperationClass; -typedef struct _AssistantOperationPrivate AssistantOperationPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -struct _AssistantOperation { - GtkAssistant parent_instance; - AssistantOperationPrivate * priv; - GtkLabel* summary_label; -}; - -struct _AssistantOperationClass { - GtkAssistantClass parent_class; - GtkWidget* (*make_confirm_page) (AssistantOperation* self); - void (*add_setup_pages) (AssistantOperation* self); - DejaDupOperation* (*create_op) (AssistantOperation* self); - char* (*get_progress_file_prefix) (AssistantOperation* self); - GdkPixbuf* (*get_op_icon) (AssistantOperation* self); - GtkWidget* (*make_progress_page) (AssistantOperation* self); - void (*show_error) (AssistantOperation* self, DejaDupOperation* op, const char* error, const char* detail); - GtkWidget* (*make_summary_page) (AssistantOperation* self); - void (*do_prepare) (AssistantOperation* self, AssistantOperation* assist, GtkWidget* page); - void (*do_close) (AssistantOperation* self); -}; - - -GtkWidget* assistant_operation_make_confirm_page (AssistantOperation* self); -void assistant_operation_add_setup_pages (AssistantOperation* self); -DejaDupOperation* assistant_operation_create_op (AssistantOperation* self); -char* assistant_operation_get_progress_file_prefix (AssistantOperation* self); -GdkPixbuf* assistant_operation_get_op_icon (AssistantOperation* self); -GtkWidget* assistant_operation_make_progress_page (AssistantOperation* self); -void assistant_operation_show_error (AssistantOperation* self, DejaDupOperation* op, const char* error, const char* detail); -GtkWidget* assistant_operation_make_summary_page (AssistantOperation* self); -void assistant_operation_do_prepare (AssistantOperation* self, AssistantOperation* assist, GtkWidget* page); -void assistant_operation_do_close (AssistantOperation* self); -GtkWidget* assistant_operation_get_confirm_page (AssistantOperation* self); -GtkWidget* assistant_operation_get_progress_page (AssistantOperation* self); -GtkWidget* assistant_operation_get_summary_page (AssistantOperation* self); -GdkPixbuf* assistant_operation_get_icon (AssistantOperation* self); -gboolean assistant_operation_get_error_occurred (AssistantOperation* self); -GType assistant_operation_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/deja-dup/AssistantOperation.vala deja-dup-10.0/deja-dup/AssistantOperation.vala --- deja-dup-7.4/deja-dup/AssistantOperation.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantOperation.vala 2009-06-04 16:18:05.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -26,6 +26,8 @@ Gtk.Label progress_label; Gtk.Label progress_file_label; Gtk.ProgressBar progress_bar; + Gtk.TextView progress_text; + Gtk.ScrolledWindow progress_scroll; protected Gtk.Widget progress_page {get; private set;} protected Gtk.Label summary_label; @@ -33,7 +35,7 @@ Gtk.TextView error_text_view; protected Gtk.Widget summary_page {get; private set;} - protected Gdk.Pixbuf icon {get; private set;} + protected Gdk.Pixbuf op_icon {get; private set;} DejaDup.Operation op; uint timeout_id; protected bool error_occurred {get; private set;} @@ -41,24 +43,26 @@ construct { - icon = get_op_icon(); + op_icon = make_op_icon(); + add_config_pages_if_needed(); add_setup_pages(); add_confirm_page(); add_progress_page(); add_summary_page(); - apply += do_apply; - cancel += do_cancel; - close += do_close; - prepare += do_prepare; + apply.connect(do_apply); + cancel.connect(do_cancel); + close.connect(do_close); + prepare.connect(do_prepare); } protected abstract Gtk.Widget make_confirm_page(); - protected abstract void add_setup_pages(); + protected virtual void add_setup_pages() {} + protected virtual void add_custom_config_pages() {} protected abstract DejaDup.Operation create_op(); protected abstract string get_progress_file_prefix(); - protected abstract Gdk.Pixbuf? get_op_icon(); + protected abstract Gdk.Pixbuf? make_op_icon(); bool pulse() { @@ -76,6 +80,7 @@ void set_progress_label(DejaDup.Operation op, string label) { progress_label.label = label; + progress_file_label.label = ""; } void set_progress_label_file(DejaDup.Operation op, File file) @@ -84,6 +89,34 @@ var basename = Path.get_basename(parse_name); progress_label.label = get_progress_file_prefix() + " "; progress_file_label.label = "'%s'".printf(basename); + + var buffer = progress_text.buffer; + if (buffer.get_char_count() > 0) + parse_name = "\n" + parse_name; + if (buffer.get_line_count() >= 100 && adjustment_at_end) { + // If we're watching text scroll by, optimize memory by only keeping last 100 lines + Gtk.TextIter start, line100; + buffer.get_start_iter(out start); + buffer.get_iter_at_line(out line100, buffer.get_line_count() - 100); + buffer.delete(start, line100); + } + + Gtk.TextIter iter; + buffer.get_end_iter(out iter); + buffer.insert_text(iter, parse_name, -1); + } + + bool adjustment_at_end = true; // FIXME: really should subclass adjustment or something... + void make_adjustment_stay_at_end(Gtk.Widget range) + { + Gtk.Adjustment adjust = ((Gtk.Range)range).adjustment; + adjust.value_changed.connect((a) => { + adjustment_at_end = (a.value >= hacks_adjustment_get_upper(a) - hacks_adjustment_get_page_size(a)); + }); + adjust.changed.connect((a) => { + if (adjustment_at_end) + a.value = hacks_adjustment_get_upper(a); + }); } protected virtual Gtk.Widget make_progress_page() @@ -102,9 +135,22 @@ progress_bar = new Gtk.ProgressBar(); + progress_text = new Gtk.TextView(); + progress_text.editable = false; + progress_scroll = new Gtk.ScrolledWindow(null, null); + progress_scroll.set("child", progress_text, + "hscrollbar-policy", Gtk.PolicyType.AUTOMATIC, + "vscrollbar-policy", Gtk.PolicyType.AUTOMATIC, + "border-width", 6); + var range = ((Gtk.Range)progress_scroll.vscrollbar); + range.realize.connect(make_adjustment_stay_at_end); + var expander = new Gtk.Expander.with_mnemonic(_("_Details")); + expander.set("child", progress_scroll); + var page = new Gtk.VBox(false, 6); page.set("child", progress_hbox, "child", progress_bar, + "child", expander, "border-width", 12); page.child_set(progress_hbox, "expand", false); page.child_set(progress_bar, "expand", false); @@ -118,9 +164,7 @@ // Try to show nice error icon try { - var pixbuf = Gtk.IconTheme.get_default().load_icon( - Gtk.STOCK_DIALOG_ERROR, 48, - Gtk.IconLookupFlags.FORCE_SIZE); + var pixbuf = hacks_get_icon_at_size(Gtk.STOCK_DIALOG_ERROR, 48); child_set(summary_page, "header-image", pixbuf); } @@ -165,6 +209,23 @@ return page; } + void add_config_pages_if_needed() + { + var client = DejaDup.get_gconf_client(); + string val; + try { + val = client.get_string(DejaDup.LAST_RUN_KEY); + if (val != null && val != "") + return; + } + catch (Error e) { + warning("%s\n", e.message); + return; + } + + add_custom_config_pages(); + } + void add_confirm_page() { var page = make_confirm_page(); @@ -173,7 +234,7 @@ "title", _("Summary"), "page-type", Gtk.AssistantPageType.CONFIRM, "complete", true, - "header-image", icon); + "header-image", op_icon); confirm_page = page; } @@ -185,7 +246,7 @@ // doesn't allow for cancelling. child_set(page, "page-type", Gtk.AssistantPageType.CONTENT, - "header-image", icon); + "header-image", op_icon); progress_page = page; } @@ -196,7 +257,7 @@ child_set(page, "page-type", Gtk.AssistantPageType.SUMMARY, "complete", true, - "header-image", icon); + "header-image", op_icon); summary_page = page; } @@ -216,11 +277,11 @@ void do_apply() { op = create_op(); - op.done += apply_finished; - op.raise_error += show_error; - op.action_desc_changed += set_progress_label; - op.action_file_changed += set_progress_label_file; - op.progress += show_progress; + op.done.connect(apply_finished); + op.raise_error.connect(show_error); + op.action_desc_changed.connect(set_progress_label); + op.action_file_changed.connect(set_progress_label_file); + op.progress.connect(show_progress); try { op.start(); @@ -232,7 +293,7 @@ } } - protected virtual void do_prepare(AssistantOperation assist, Gtk.Widget page) + protected virtual void do_prepare(Gtk.Assistant assist, Gtk.Widget page) { if (timeout_id > 0) { Source.remove(timeout_id); @@ -241,8 +302,9 @@ if (page == confirm_page) { if (op != null) { - op.done -= apply_finished; + op.done.disconnect(apply_finished); op.cancel(); // in case we just went back from progress page + op = null; } } else if (page == progress_page) { diff -Nru deja-dup-7.4/deja-dup/AssistantRestore.c deja-dup-10.0/deja-dup/AssistantRestore.c --- deja-dup-7.4/deja-dup/AssistantRestore.c 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantRestore.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,18 +1,105 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "AssistantRestore.h" +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include #include -#include #include -#include "MainWindow.h" +#define TYPE_ASSISTANT_OPERATION (assistant_operation_get_type ()) +#define ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperation)) +#define ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) +#define IS_ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_OPERATION)) +#define IS_ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_OPERATION)) +#define ASSISTANT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) + +typedef struct _AssistantOperation AssistantOperation; +typedef struct _AssistantOperationClass AssistantOperationClass; +typedef struct _AssistantOperationPrivate AssistantOperationPrivate; + +#define TYPE_ASSISTANT_RESTORE (assistant_restore_get_type ()) +#define ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestore)) +#define ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) +#define IS_ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_RESTORE)) +#define IS_ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_RESTORE)) +#define ASSISTANT_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) + +typedef struct _AssistantRestore AssistantRestore; +typedef struct _AssistantRestoreClass AssistantRestoreClass; +typedef struct _AssistantRestorePrivate AssistantRestorePrivate; +/* + Déjà Dup + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _AssistantOperation { + GtkAssistant parent_instance; + AssistantOperationPrivate * priv; + GtkLabel* summary_label; +}; + +struct _AssistantOperationClass { + GtkAssistantClass parent_class; + GtkWidget* (*make_confirm_page) (AssistantOperation* self); + void (*add_setup_pages) (AssistantOperation* self); + void (*add_custom_config_pages) (AssistantOperation* self); + DejaDupOperation* (*create_op) (AssistantOperation* self); + char* (*get_progress_file_prefix) (AssistantOperation* self); + GdkPixbuf* (*make_op_icon) (AssistantOperation* self); + GtkWidget* (*make_progress_page) (AssistantOperation* self); + void (*show_error) (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail); + GtkWidget* (*make_summary_page) (AssistantOperation* self); + void (*do_prepare) (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page); + void (*do_close) (AssistantOperation* self); +}; + +/* + Déjà Dup + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _AssistantRestore { + AssistantOperation parent_instance; + AssistantRestorePrivate * priv; +}; + +struct _AssistantRestoreClass { + AssistantOperationClass parent_class; +}; -static char* g_time_format (struct tm *self, const char* format); struct _AssistantRestorePrivate { char* _restore_location; GList* _restore_files; @@ -24,7 +111,6 @@ GtkHBox* cust_box; GtkFileChooserButton* cust_button; GtkTable* confirm_table; - GtkLabel* confirm_backup; gint confirm_location_row; GtkLabel* confirm_location_label; GtkLabel* confirm_location; @@ -40,6 +126,10 @@ gboolean got_dates; }; + + +GType assistant_operation_get_type (void); +GType assistant_restore_get_type (void); #define ASSISTANT_RESTORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ASSISTANT_RESTORE, AssistantRestorePrivate)) enum { ASSISTANT_RESTORE_DUMMY_PROPERTY, @@ -47,55 +137,64 @@ ASSISTANT_RESTORE_RESTORE_FILES }; static void _g_list_free_g_object_unref (GList* self); +void assistant_restore_set_restore_files (AssistantRestore* self, GList* value); +AssistantRestore* assistant_restore_new_with_files (GList* files); +AssistantRestore* assistant_restore_construct_with_files (GType object_type, GList* files); +AssistantRestore* assistant_restore_new_with_files (GList* files); +static void assistant_restore_add_query_backend_page (AssistantRestore* self); +static void assistant_restore_add_date_page (AssistantRestore* self); +static void assistant_restore_add_restore_dest_page (AssistantRestore* self); static void assistant_restore_real_add_setup_pages (AssistantOperation* base); +static GtkWidget* assistant_restore_make_backup_location_page (AssistantRestore* self); +GdkPixbuf* assistant_operation_get_op_icon (AssistantOperation* self); +static void assistant_restore_real_add_custom_config_pages (AssistantOperation* base); static GtkWidget* assistant_restore_make_query_backend_page (AssistantRestore* self); static GtkWidget* assistant_restore_make_date_page (AssistantRestore* self); -static void __lambda0 (GtkRadioButton* r, AssistantRestore* self); -static void ___lambda0_gtk_toggle_button_toggled (GtkRadioButton* _sender, gpointer self); -static void __lambda1 (GtkRadioButton* r, AssistantRestore* self); -static void ___lambda1_gtk_toggle_button_toggled (GtkRadioButton* _sender, gpointer self); -static void __lambda2 (GtkFileChooserButton* b, AssistantRestore* self); -static void ___lambda2_gtk_file_chooser_selection_changed (GtkFileChooserButton* _sender, gpointer self); +void assistant_restore_set_restore_location (AssistantRestore* self, const char* value); +static void _lambda2_ (GtkToggleButton* r, AssistantRestore* self); +static void __lambda2__gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self); +static void _lambda3_ (GtkToggleButton* r, AssistantRestore* self); +static void __lambda3__gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self); +static void _lambda4_ (GtkFileChooser* b, AssistantRestore* self); +static void __lambda4__gtk_file_chooser_selection_changed (GtkFileChooser* _sender, gpointer self); static GtkWidget* assistant_restore_make_restore_dest_page (AssistantRestore* self); static GtkWidget* assistant_restore_real_make_confirm_page (AssistantOperation* base); -static void assistant_restore_add_query_backend_page (AssistantRestore* self); -static void assistant_restore_add_date_page (AssistantRestore* self); -static void assistant_restore_add_restore_dest_page (AssistantRestore* self); +const char* assistant_restore_get_restore_location (AssistantRestore* self); +GList* assistant_restore_get_restore_files (AssistantRestore* self); static DejaDupOperation* assistant_restore_real_create_op (AssistantOperation* base); static char* assistant_restore_real_get_progress_file_prefix (AssistantOperation* base); -static GdkPixbuf* assistant_restore_real_get_op_icon (AssistantOperation* base); +static GdkPixbuf* assistant_restore_real_make_op_icon (AssistantOperation* base); +void assistant_operation_show_error (AssistantOperation* self, DejaDupOperation* op, const char* _error_, const char* detail); +void assistant_restore_handle_collection_dates (AssistantRestore* self, DejaDupOperationStatus* op, GList* dates); +gboolean assistant_operation_get_error_occurred (AssistantOperation* self); +gint assistant_restore_do_forward (AssistantRestore* self, gint n); +void assistant_operation_do_close (AssistantOperation* self); +void assistant_restore_query_finished (AssistantRestore* self, DejaDupOperation* op, gboolean success); static gboolean assistant_restore_query_pulse (AssistantRestore* self); static void _assistant_restore_handle_collection_dates_deja_dup_operation_status_collection_dates (DejaDupOperationStatus* _sender, GList* dates, gpointer self); -static void _assistant_restore_query_finished_deja_dup_operation_done (DejaDupOperationStatus* _sender, gboolean success, gpointer self); +static void _assistant_restore_query_finished_deja_dup_operation_done (DejaDupOperation* _sender, gboolean success, gpointer self); static void _assistant_operation_show_error_deja_dup_operation_raise_error (DejaDupOperation* _sender, const char* errstr, const char* detail, gpointer self); +void assistant_restore_do_query (AssistantRestore* self); +void assistant_operation_do_prepare (AssistantOperation* self, GtkAssistant* assist, GtkWidget* page); +GtkWidget* assistant_operation_get_confirm_page (AssistantOperation* self); +GtkWidget* assistant_operation_get_summary_page (AssistantOperation* self); +GtkWidget* assistant_operation_get_progress_page (AssistantOperation* self); static gboolean _assistant_restore_query_pulse_gsource_func (gpointer self); -static void assistant_restore_real_do_prepare (AssistantOperation* base, AssistantOperation* assist, GtkWidget* page); +static void assistant_restore_real_do_prepare (AssistantOperation* base, GtkAssistant* assist, GtkWidget* page); static void assistant_restore_real_do_close (AssistantOperation* base); +AssistantRestore* assistant_restore_new (void); +AssistantRestore* assistant_restore_construct (GType object_type); +AssistantRestore* assistant_restore_new (void); static gint _assistant_restore_do_forward_gtk_assistant_page_func (gint current_page, gpointer self); static GObject * assistant_restore_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer assistant_restore_parent_class = NULL; static void assistant_restore_finalize (GObject* obj); +static void assistant_restore_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void assistant_restore_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static int _vala_strcmp0 (const char * str1, const char * str2); -static char* g_time_format (struct tm *self, const char* format) { - gchar* _tmp0; - gint buffer_size; - gint buffer_length1; - gchar* buffer; - const char* _tmp1; - char* _tmp2; - g_return_val_if_fail (format != NULL, NULL); - _tmp0 = NULL; - buffer = (_tmp0 = g_new0 (gchar, 64), buffer_length1 = 64, buffer_size = buffer_length1, _tmp0); - strftime (buffer, buffer_length1, format, &(*self)); - _tmp1 = NULL; - _tmp2 = NULL; - return (_tmp2 = (_tmp1 = (const char*) buffer, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), buffer = (g_free (buffer), NULL), _tmp2); -} - - static void _g_list_free_g_object_unref (GList* self) { g_list_foreach (self, (GFunc) g_object_unref, NULL); g_list_free (self); @@ -104,7 +203,6 @@ AssistantRestore* assistant_restore_construct_with_files (GType object_type, GList* files) { AssistantRestore * self; - g_return_val_if_fail (files != NULL, NULL); self = g_object_newv (object_type, 0, NULL); assistant_restore_set_restore_files (self, files); return self; @@ -125,12 +223,55 @@ } +static GtkWidget* assistant_restore_make_backup_location_page (AssistantRestore* self) { + gint rows; + GtkWidget* w; + GtkWidget* label; + GtkTable* page; + GtkWidget* _tmp0_; + GtkWidget* _tmp1_; + GtkWidget* _tmp2_; + GtkWidget* _tmp3_; + g_return_val_if_fail (self != NULL, NULL); + rows = 0; + w = NULL; + label = NULL; + page = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) rows, (guint) 2, FALSE)); + g_object_set ((GObject*) page, "row-spacing", 6, "column-spacing", 6, "border-width", 12, NULL); + _tmp0_ = NULL; + w = (_tmp0_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_location_new ()), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp0_); + _tmp1_ = NULL; + label = (_tmp1_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new_with_mnemonic (_ ("_Backup location:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp1_); + g_object_set ((GObject*) label, "xalign", 0.0f, "mnemonic-widget", w, NULL); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL | GTK_EXPAND, 0, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp2_ = NULL; + w = (_tmp2_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_bool_new (DEJA_DUP_ENCRYPT_KEY, _ ("Backup files are _encrypted"))), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp2_); + gtk_table_attach (page, w, (guint) 0, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp3_ = NULL; + return (_tmp3_ = (GtkWidget*) page, (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp3_); +} + + +static void assistant_restore_real_add_custom_config_pages (AssistantOperation* base) { + AssistantRestore * self; + GtkWidget* page; + self = (AssistantRestore*) base; + page = assistant_restore_make_backup_location_page (self); + gtk_assistant_append_page ((GtkAssistant*) self, page); + gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Preferences"), "page-type", GTK_ASSISTANT_PAGE_CONTENT, "complete", TRUE, "header-image", assistant_operation_get_op_icon ((AssistantOperation*) self), NULL); + (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); +} + + static GtkWidget* assistant_restore_make_query_backend_page (AssistantRestore* self) { - GtkProgressBar* _tmp0; + GtkProgressBar* _tmp0_; GtkVBox* page; g_return_val_if_fail (self != NULL, NULL); - _tmp0 = NULL; - self->priv->query_progress_bar = (_tmp0 = g_object_ref_sink ((GtkProgressBar*) gtk_progress_bar_new ()), (self->priv->query_progress_bar == NULL) ? NULL : (self->priv->query_progress_bar = (g_object_unref (self->priv->query_progress_bar), NULL)), _tmp0); + _tmp0_ = NULL; + self->priv->query_progress_bar = (_tmp0_ = g_object_ref_sink ((GtkProgressBar*) gtk_progress_bar_new ()), (self->priv->query_progress_bar == NULL) ? NULL : (self->priv->query_progress_bar = (g_object_unref (self->priv->query_progress_bar), NULL)), _tmp0_); page = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)); g_object_set ((GObject*) page, "child", self->priv->query_progress_bar, "border-width", 12, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) self->priv->query_progress_bar, "expand", FALSE, NULL); @@ -139,17 +280,17 @@ static GtkWidget* assistant_restore_make_date_page (AssistantRestore* self) { - GtkListStore* _tmp0; - GtkComboBox* _tmp1; + GtkListStore* _tmp0_; + GtkComboBox* _tmp1_; GtkLabel* date_label; GtkHBox* hbox; GtkVBox* page; - GtkWidget* _tmp2; + GtkWidget* _tmp2_; g_return_val_if_fail (self != NULL, NULL); - _tmp0 = NULL; - self->priv->date_store = (_tmp0 = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING, NULL), (self->priv->date_store == NULL) ? NULL : (self->priv->date_store = (g_object_unref (self->priv->date_store), NULL)), _tmp0); - _tmp1 = NULL; - self->priv->date_combo = (_tmp1 = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_text ()), (self->priv->date_combo == NULL) ? NULL : (self->priv->date_combo = (g_object_unref (self->priv->date_combo), NULL)), _tmp1); + _tmp0_ = NULL; + self->priv->date_store = (_tmp0_ = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING, NULL), (self->priv->date_store == NULL) ? NULL : (self->priv->date_store = (g_object_unref (self->priv->date_store), NULL)), _tmp0_); + _tmp1_ = NULL; + self->priv->date_combo = (_tmp1_ = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_text ()), (self->priv->date_combo == NULL) ? NULL : (self->priv->date_combo = (g_object_unref (self->priv->date_combo), NULL)), _tmp1_); gtk_combo_box_set_model (self->priv->date_combo, (GtkTreeModel*) self->priv->date_store); date_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("_Date:"))); g_object_set ((GObject*) date_label, "mnemonic-widget", self->priv->date_combo, "use-underline", TRUE, "xalign", 0.0f, NULL); @@ -160,195 +301,211 @@ gtk_container_child_set ((GtkContainer*) hbox, (GtkWidget*) date_label, "expand", FALSE, NULL); gtk_container_child_set ((GtkContainer*) hbox, (GtkWidget*) self->priv->date_combo, "expand", FALSE, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) hbox, "expand", FALSE, NULL); - _tmp2 = NULL; - return (_tmp2 = (GtkWidget*) page, (date_label == NULL) ? NULL : (date_label = (g_object_unref (date_label), NULL)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp2); + _tmp2_ = NULL; + return (_tmp2_ = (GtkWidget*) page, (date_label == NULL) ? NULL : (date_label = (g_object_unref (date_label), NULL)), (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)), _tmp2_); } -static void __lambda0 (GtkRadioButton* r, AssistantRestore* self) { +static void _lambda2_ (GtkToggleButton* r, AssistantRestore* self) { g_return_if_fail (r != NULL); - if (gtk_toggle_button_get_active ((GtkToggleButton*) r)) { + if (gtk_toggle_button_get_active (r)) { assistant_restore_set_restore_location (self, "/"); } } -static void ___lambda0_gtk_toggle_button_toggled (GtkRadioButton* _sender, gpointer self) { - __lambda0 (_sender, self); +static void __lambda2__gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) { + _lambda2_ (_sender, self); } -static void __lambda1 (GtkRadioButton* r, AssistantRestore* self) { +static void _lambda3_ (GtkToggleButton* r, AssistantRestore* self) { g_return_if_fail (r != NULL); - if (gtk_toggle_button_get_active ((GtkToggleButton*) r)) { - assistant_restore_set_restore_location (self, gtk_file_chooser_get_filename ((GtkFileChooser*) self->priv->cust_button)); + if (gtk_toggle_button_get_active (r)) { + char* _tmp0_; + _tmp0_ = NULL; + assistant_restore_set_restore_location (self, _tmp0_ = gtk_file_chooser_get_filename ((GtkFileChooser*) self->priv->cust_button)); + _tmp0_ = (g_free (_tmp0_), NULL); } - g_object_set ((GtkWidget*) self->priv->cust_box, "sensitive", gtk_toggle_button_get_active ((GtkToggleButton*) r), NULL); + g_object_set ((GtkWidget*) self->priv->cust_box, "sensitive", gtk_toggle_button_get_active (r), NULL); } -static void ___lambda1_gtk_toggle_button_toggled (GtkRadioButton* _sender, gpointer self) { - __lambda1 (_sender, self); +static void __lambda3__gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) { + _lambda3_ (_sender, self); } -static void __lambda2 (GtkFileChooserButton* b, AssistantRestore* self) { +static void _lambda4_ (GtkFileChooser* b, AssistantRestore* self) { + char* _tmp0_; g_return_if_fail (b != NULL); - assistant_restore_set_restore_location (self, gtk_file_chooser_get_filename ((GtkFileChooser*) b)); + _tmp0_ = NULL; + assistant_restore_set_restore_location (self, _tmp0_ = gtk_file_chooser_get_filename (b)); + _tmp0_ = (g_free (_tmp0_), NULL); } -static void ___lambda2_gtk_file_chooser_selection_changed (GtkFileChooserButton* _sender, gpointer self) { - __lambda2 (_sender, self); +static void __lambda4__gtk_file_chooser_selection_changed (GtkFileChooser* _sender, gpointer self) { + _lambda4_ (_sender, self); } static GtkWidget* assistant_restore_make_restore_dest_page (AssistantRestore* self) { GtkRadioButton* orig_radio; GtkRadioButton* cust_radio; - GtkFileChooserButton* _tmp0; - char* _tmp1; - GtkLabel* _tmp2; + GtkFileChooserButton* _tmp0_; + char* _tmp1_; + GtkLabel* _tmp2_; GtkLabel* cust_label; - GtkHBox* _tmp3; + GtkHBox* _tmp3_; GtkVBox* page; - GtkWidget* _tmp4; + GtkWidget* _tmp4_; g_return_val_if_fail (self != NULL, NULL); orig_radio = g_object_ref_sink ((GtkRadioButton*) gtk_radio_button_new (NULL)); g_object_set ((GObject*) orig_radio, "label", _ ("Restore files to _original locations"), "use-underline", TRUE, NULL); - g_signal_connect ((GtkToggleButton*) orig_radio, "toggled", (GCallback) ___lambda0_gtk_toggle_button_toggled, self); + g_signal_connect ((GtkToggleButton*) orig_radio, "toggled", (GCallback) __lambda2__gtk_toggle_button_toggled, self); cust_radio = g_object_ref_sink ((GtkRadioButton*) gtk_radio_button_new (NULL)); g_object_set ((GObject*) cust_radio, "label", _ ("Restore to _specific folder"), "use-underline", TRUE, "group", orig_radio, NULL); - g_signal_connect ((GtkToggleButton*) cust_radio, "toggled", (GCallback) ___lambda1_gtk_toggle_button_toggled, self); - _tmp0 = NULL; - self->priv->cust_button = (_tmp0 = g_object_ref_sink ((GtkFileChooserButton*) gtk_file_chooser_button_new (_ ("Choose destination for restored files"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)), (self->priv->cust_button == NULL) ? NULL : (self->priv->cust_button = (g_object_unref (self->priv->cust_button), NULL)), _tmp0); - g_signal_connect ((GtkFileChooser*) self->priv->cust_button, "selection-changed", (GCallback) ___lambda2_gtk_file_chooser_selection_changed, self); - _tmp1 = NULL; - _tmp2 = NULL; - cust_label = (_tmp2 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp1 = g_strconcat (" ", _ ("Restore _folder:"), NULL))), _tmp1 = (g_free (_tmp1), NULL), _tmp2); + g_signal_connect ((GtkToggleButton*) cust_radio, "toggled", (GCallback) __lambda3__gtk_toggle_button_toggled, self); + _tmp0_ = NULL; + self->priv->cust_button = (_tmp0_ = g_object_ref_sink ((GtkFileChooserButton*) gtk_file_chooser_button_new (_ ("Choose destination for restored files"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)), (self->priv->cust_button == NULL) ? NULL : (self->priv->cust_button = (g_object_unref (self->priv->cust_button), NULL)), _tmp0_); + g_signal_connect ((GtkFileChooser*) self->priv->cust_button, "selection-changed", (GCallback) __lambda4__gtk_file_chooser_selection_changed, self); + _tmp1_ = NULL; + _tmp2_ = NULL; + cust_label = (_tmp2_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp1_ = g_strconcat (" ", _ ("Restore _folder:"), NULL))), _tmp1_ = (g_free (_tmp1_), NULL), _tmp2_); g_object_set ((GObject*) cust_label, "mnemonic-widget", self->priv->cust_button, "use-underline", TRUE, "xalign", 0.0f, NULL); - _tmp3 = NULL; - self->priv->cust_box = (_tmp3 = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6)), (self->priv->cust_box == NULL) ? NULL : (self->priv->cust_box = (g_object_unref (self->priv->cust_box), NULL)), _tmp3); + _tmp3_ = NULL; + self->priv->cust_box = (_tmp3_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6)), (self->priv->cust_box == NULL) ? NULL : (self->priv->cust_box = (g_object_unref (self->priv->cust_box), NULL)), _tmp3_); g_object_set ((GObject*) self->priv->cust_box, "child", cust_label, "child", self->priv->cust_button, "sensitive", FALSE, NULL); page = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)); g_object_set ((GObject*) page, "child", orig_radio, "child", cust_radio, "child", self->priv->cust_box, "border-width", 12, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) orig_radio, "expand", FALSE, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) cust_radio, "expand", FALSE, NULL); gtk_container_child_set ((GtkContainer*) page, (GtkWidget*) self->priv->cust_box, "expand", FALSE, NULL); - _tmp4 = NULL; - return (_tmp4 = (GtkWidget*) page, (orig_radio == NULL) ? NULL : (orig_radio = (g_object_unref (orig_radio), NULL)), (cust_radio == NULL) ? NULL : (cust_radio = (g_object_unref (cust_radio), NULL)), (cust_label == NULL) ? NULL : (cust_label = (g_object_unref (cust_label), NULL)), _tmp4); + _tmp4_ = NULL; + return (_tmp4_ = (GtkWidget*) page, (orig_radio == NULL) ? NULL : (orig_radio = (g_object_unref (orig_radio), NULL)), (cust_radio == NULL) ? NULL : (cust_radio = (g_object_unref (cust_radio), NULL)), (cust_label == NULL) ? NULL : (cust_label = (g_object_unref (cust_label), NULL)), _tmp4_); } static GtkWidget* assistant_restore_real_make_confirm_page (AssistantOperation* base) { AssistantRestore * self; gint rows; - GtkLabel* backup_label; - GtkLabel* _tmp0; - GtkLabel* _tmp1; - GtkLabel* _tmp2; - GtkLabel* _tmp3; - GtkLabel* _tmp4; - GtkLabel* _tmp5; - GtkVBox* _tmp6; - GtkTable* _tmp7; - GtkTable* _tmp8; + GtkWidget* label; + GtkWidget* w; + GtkTable* _tmp0_; + GtkTable* _tmp1_; GtkTable* page; - GtkWidget* _tmp9; + GtkWidget* _tmp2_; + GtkWidget* _tmp3_; + GtkWidget* _tmp4_; + GtkWidget* _tmp5_; + GtkLabel* _tmp6_; + GtkLabel* _tmp7_; + GtkLabel* _tmp8_; + GtkLabel* _tmp9_; + GtkLabel* _tmp10_; + GtkVBox* _tmp11_; + GtkWidget* _tmp12_; self = (AssistantRestore*) base; rows = 0; - backup_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Backup location:"))); - g_object_set ((GObject*) backup_label, "xalign", 0.0f, NULL); - _tmp0 = NULL; - self->priv->confirm_backup = (_tmp0 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_backup == NULL) ? NULL : (self->priv->confirm_backup = (g_object_unref (self->priv->confirm_backup), NULL)), _tmp0); - g_object_set ((GObject*) self->priv->confirm_backup, "xalign", 0.0f, NULL); + label = NULL; + w = NULL; + _tmp0_ = NULL; + self->priv->confirm_table = (_tmp0_ = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) rows, (guint) 3, FALSE)), (self->priv->confirm_table == NULL) ? NULL : (self->priv->confirm_table = (g_object_unref (self->priv->confirm_table), NULL)), _tmp0_); + _tmp1_ = NULL; + page = (_tmp1_ = self->priv->confirm_table, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); + g_object_set ((GObject*) page, "row-spacing", 6, "column-spacing", 6, "border-width", 12, NULL); + _tmp2_ = NULL; + label = (_tmp2_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Backup location:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp2_); + g_object_set ((GObject*) label, "xalign", 0.0f, NULL); + _tmp3_ = NULL; + w = (_tmp3_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_label_location_new ()), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp3_); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL | GTK_EXPAND, 0, (guint) 0, (guint) 0); rows = rows + 1; - _tmp1 = NULL; - self->priv->confirm_date_label = (_tmp1 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Restore date:"))), (self->priv->confirm_date_label == NULL) ? NULL : (self->priv->confirm_date_label = (g_object_unref (self->priv->confirm_date_label), NULL)), _tmp1); + _tmp4_ = NULL; + label = (_tmp4_ = (GtkWidget*) g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Encrypted:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp4_); + g_object_set ((GObject*) label, "xalign", 0.0f, NULL); + _tmp5_ = NULL; + w = (_tmp5_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_label_bool_new (DEJA_DUP_ENCRYPT_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp5_); + gtk_table_attach (page, label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + gtk_table_attach (page, w, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); + rows = rows + 1; + _tmp6_ = NULL; + self->priv->confirm_date_label = (_tmp6_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Restore date:"))), (self->priv->confirm_date_label == NULL) ? NULL : (self->priv->confirm_date_label = (g_object_unref (self->priv->confirm_date_label), NULL)), _tmp6_); g_object_set ((GObject*) self->priv->confirm_date_label, "xalign", 0.0f, NULL); - _tmp2 = NULL; - self->priv->confirm_date = (_tmp2 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_date == NULL) ? NULL : (self->priv->confirm_date = (g_object_unref (self->priv->confirm_date), NULL)), _tmp2); + _tmp7_ = NULL; + self->priv->confirm_date = (_tmp7_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_date == NULL) ? NULL : (self->priv->confirm_date = (g_object_unref (self->priv->confirm_date), NULL)), _tmp7_); g_object_set ((GObject*) self->priv->confirm_date, "xalign", 0.0f, NULL); - rows = rows + 1; - _tmp3 = NULL; - self->priv->confirm_location_label = (_tmp3 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Restore folder:"))), (self->priv->confirm_location_label == NULL) ? NULL : (self->priv->confirm_location_label = (g_object_unref (self->priv->confirm_location_label), NULL)), _tmp3); - g_object_set ((GObject*) self->priv->confirm_location_label, "xalign", 0.0f, NULL); - _tmp4 = NULL; - self->priv->confirm_location = (_tmp4 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_location == NULL) ? NULL : (self->priv->confirm_location = (g_object_unref (self->priv->confirm_location), NULL)), _tmp4); - g_object_set ((GObject*) self->priv->confirm_location, "xalign", 0.0f, NULL); - rows = rows + 1; - _tmp5 = NULL; - self->priv->confirm_files_label = (_tmp5 = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_files_label == NULL) ? NULL : (self->priv->confirm_files_label = (g_object_unref (self->priv->confirm_files_label), NULL)), _tmp5); - g_object_set ((GObject*) self->priv->confirm_files_label, "xalign", 0.0f, "yalign", 0.0f, NULL); - _tmp6 = NULL; - self->priv->confirm_files = (_tmp6 = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (TRUE, 6)), (self->priv->confirm_files == NULL) ? NULL : (self->priv->confirm_files = (g_object_unref (self->priv->confirm_files), NULL)), _tmp6); - rows = rows + 1; - _tmp7 = NULL; - self->priv->confirm_table = (_tmp7 = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) rows, (guint) 3, FALSE)), (self->priv->confirm_table == NULL) ? NULL : (self->priv->confirm_table = (g_object_unref (self->priv->confirm_table), NULL)), _tmp7); - _tmp8 = NULL; - page = (_tmp8 = self->priv->confirm_table, (_tmp8 == NULL) ? NULL : g_object_ref (_tmp8)); - g_object_set ((GObject*) page, "row-spacing", 6, "column-spacing", 6, "border-width", 12, NULL); - rows = 0; - gtk_table_attach (page, (GtkWidget*) backup_label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); - gtk_table_attach (page, (GtkWidget*) self->priv->confirm_backup, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); - rows = rows + 1; self->priv->confirm_date_row = rows; gtk_table_attach (page, (GtkWidget*) self->priv->confirm_date_label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); gtk_table_attach (page, (GtkWidget*) self->priv->confirm_date, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); rows = rows + 1; + _tmp8_ = NULL; + self->priv->confirm_location_label = (_tmp8_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Restore folder:"))), (self->priv->confirm_location_label == NULL) ? NULL : (self->priv->confirm_location_label = (g_object_unref (self->priv->confirm_location_label), NULL)), _tmp8_); + g_object_set ((GObject*) self->priv->confirm_location_label, "xalign", 0.0f, NULL); + _tmp9_ = NULL; + self->priv->confirm_location = (_tmp9_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_location == NULL) ? NULL : (self->priv->confirm_location = (g_object_unref (self->priv->confirm_location), NULL)), _tmp9_); + g_object_set ((GObject*) self->priv->confirm_location, "xalign", 0.0f, NULL); self->priv->confirm_location_row = rows; gtk_table_attach (page, (GtkWidget*) self->priv->confirm_location_label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); gtk_table_attach (page, (GtkWidget*) self->priv->confirm_location, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); rows = rows + 1; + _tmp10_ = NULL; + self->priv->confirm_files_label = (_tmp10_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->priv->confirm_files_label == NULL) ? NULL : (self->priv->confirm_files_label = (g_object_unref (self->priv->confirm_files_label), NULL)), _tmp10_); + g_object_set ((GObject*) self->priv->confirm_files_label, "xalign", 0.0f, "yalign", 0.0f, NULL); + _tmp11_ = NULL; + self->priv->confirm_files = (_tmp11_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (TRUE, 6)), (self->priv->confirm_files == NULL) ? NULL : (self->priv->confirm_files = (g_object_unref (self->priv->confirm_files), NULL)), _tmp11_); self->priv->confirm_files_row = rows; gtk_table_attach (page, (GtkWidget*) self->priv->confirm_files_label, (guint) 0, (guint) 1, (guint) rows, (guint) (rows + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); gtk_table_attach (page, (GtkWidget*) self->priv->confirm_files, (guint) 1, (guint) 2, (guint) rows, (guint) (rows + 1), GTK_FILL, 0, (guint) 0, (guint) 0); - _tmp9 = NULL; - return (_tmp9 = (GtkWidget*) page, (backup_label == NULL) ? NULL : (backup_label = (g_object_unref (backup_label), NULL)), _tmp9); + rows = rows + 1; + _tmp12_ = NULL; + return (_tmp12_ = (GtkWidget*) page, (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp12_); } static void assistant_restore_add_query_backend_page (AssistantRestore* self) { GtkWidget* page; - GtkWidget* _tmp1; - GtkWidget* _tmp0; + GtkWidget* _tmp1_; + GtkWidget* _tmp0_; g_return_if_fail (self != NULL); page = assistant_restore_make_query_backend_page (self); gtk_assistant_append_page ((GtkAssistant*) self, page); - gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Checking for Backups"), "complete", FALSE, "header-image", assistant_operation_get_icon ((AssistantOperation*) self), NULL); - _tmp1 = NULL; - _tmp0 = NULL; - self->priv->query_progress_page = (_tmp1 = (_tmp0 = page, (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)), (self->priv->query_progress_page == NULL) ? NULL : (self->priv->query_progress_page = (g_object_unref (self->priv->query_progress_page), NULL)), _tmp1); + gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Checking for Backups"), "complete", FALSE, "header-image", assistant_operation_get_op_icon ((AssistantOperation*) self), NULL); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->priv->query_progress_page = (_tmp1_ = (_tmp0_ = page, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->query_progress_page == NULL) ? NULL : (self->priv->query_progress_page = (g_object_unref (self->priv->query_progress_page), NULL)), _tmp1_); (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); } static void assistant_restore_add_date_page (AssistantRestore* self) { GtkWidget* page; - GtkWidget* _tmp1; - GtkWidget* _tmp0; + GtkWidget* _tmp1_; + GtkWidget* _tmp0_; g_return_if_fail (self != NULL); page = assistant_restore_make_date_page (self); gtk_assistant_append_page ((GtkAssistant*) self, page); - gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Restore from When?"), "complete", TRUE, "header-image", assistant_operation_get_icon ((AssistantOperation*) self), NULL); - _tmp1 = NULL; - _tmp0 = NULL; - self->priv->date_page = (_tmp1 = (_tmp0 = page, (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)), (self->priv->date_page == NULL) ? NULL : (self->priv->date_page = (g_object_unref (self->priv->date_page), NULL)), _tmp1); + gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Restore from When?"), "complete", TRUE, "header-image", assistant_operation_get_op_icon ((AssistantOperation*) self), NULL); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->priv->date_page = (_tmp1_ = (_tmp0_ = page, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->date_page == NULL) ? NULL : (self->priv->date_page = (g_object_unref (self->priv->date_page), NULL)), _tmp1_); (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); } static void assistant_restore_add_restore_dest_page (AssistantRestore* self) { GtkWidget* page; - GtkWidget* _tmp1; - GtkWidget* _tmp0; + GtkWidget* _tmp1_; + GtkWidget* _tmp0_; g_return_if_fail (self != NULL); page = assistant_restore_make_restore_dest_page (self); gtk_assistant_append_page ((GtkAssistant*) self, page); - gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Restore to Where?"), "complete", TRUE, "header-image", assistant_operation_get_icon ((AssistantOperation*) self), NULL); - _tmp1 = NULL; - _tmp0 = NULL; - self->priv->restore_dest_page = (_tmp1 = (_tmp0 = page, (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)), (self->priv->restore_dest_page == NULL) ? NULL : (self->priv->restore_dest_page = (g_object_unref (self->priv->restore_dest_page), NULL)), _tmp1); + gtk_container_child_set ((GtkContainer*) self, page, "title", _ ("Restore to Where?"), "complete", TRUE, "header-image", assistant_operation_get_op_icon ((AssistantOperation*) self), NULL); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->priv->restore_dest_page = (_tmp1_ = (_tmp0_ = page, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->restore_dest_page == NULL) ? NULL : (self->priv->restore_dest_page = (g_object_unref (self->priv->restore_dest_page), NULL)), _tmp1_); (page == NULL) ? NULL : (page = (g_object_unref (page), NULL)); } @@ -356,7 +513,7 @@ static DejaDupOperation* assistant_restore_real_create_op (AssistantOperation* base) { AssistantRestore * self; char* date; - DejaDupOperation* _tmp0; + DejaDupOperation* _tmp0_; self = (AssistantRestore*) base; date = NULL; if (self->priv->got_dates) { @@ -365,62 +522,81 @@ gtk_tree_model_get ((GtkTreeModel*) self->priv->date_store, &iter, 1, &date, -1); } } - _tmp0 = NULL; - return (_tmp0 = (DejaDupOperation*) deja_dup_operation_restore_new ((GtkWindow*) self, self->priv->_restore_location, date, assistant_restore_get_restore_files (self), 0), date = (g_free (date), NULL), _tmp0); + _tmp0_ = NULL; + return (_tmp0_ = (DejaDupOperation*) deja_dup_operation_restore_new ((GtkWindow*) self, self->priv->_restore_location, date, assistant_restore_get_restore_files (self), 0), date = (g_free (date), NULL), _tmp0_); } static char* assistant_restore_real_get_progress_file_prefix (AssistantOperation* base) { AssistantRestore * self; - const char* _tmp0; + const char* _tmp0_; self = (AssistantRestore*) base; /* Translators: This is the word 'Restoring' in the phrase "Restoring '%s'". %s is a filename.*/ - _tmp0 = NULL; - return (_tmp0 = _ ("Restoring"), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + return (_tmp0_ = _ ("Restoring"), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); } -static GdkPixbuf* assistant_restore_real_get_op_icon (AssistantOperation* base) { +static GdkPixbuf* assistant_restore_real_make_op_icon (AssistantOperation* base) { AssistantRestore * self; - GError * inner_error; + GError * _inner_error_; self = (AssistantRestore*) base; - inner_error = NULL; + _inner_error_ = NULL; { - char* filename; - GdkPixbuf* _tmp0; - filename = get_restore_icon_filename (); - _tmp0 = NULL; - return (_tmp0 = gdk_pixbuf_new_from_file_at_size (filename, 48, 48, &inner_error), filename = (g_free (filename), NULL), _tmp0); + GdkPixbuf* _tmp0_; + _tmp0_ = hacks_get_icon_at_size ("deja-dup-restore", 48, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch4_g_error; + goto __finally4; + } + return _tmp0_; } goto __finally4; __catch4_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - GdkPixbuf* _tmp1; - g_warning ("AssistantRestore.vala:277: %s\n", e->message); - _tmp1 = NULL; - return (_tmp1 = NULL, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), _tmp1); + GdkPixbuf* _tmp2_; + g_warning ("AssistantRestore.vala:315: %s\n", e->message); + _tmp2_ = NULL; + return (_tmp2_ = NULL, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), _tmp2_); } } __finally4: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return NULL; } } +static char* g_time_format (struct tm *self, const char* format) { + gchar* _tmp0_; + gint buffer_size; + gint buffer_length1; + gchar* buffer; + const char* _tmp1_; + char* _tmp2_; + g_return_val_if_fail (format != NULL, NULL); + _tmp0_ = NULL; + buffer = (_tmp0_ = g_new0 (gchar, 64), buffer_length1 = 64, buffer_size = buffer_length1, _tmp0_); + strftime (buffer, buffer_length1, format, &(*self)); + _tmp1_ = NULL; + _tmp2_ = NULL; + return (_tmp2_ = (_tmp1_ = (const char*) buffer, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), buffer = (g_free (buffer), NULL), _tmp2_); +} + + void assistant_restore_handle_collection_dates (AssistantRestore* self, DejaDupOperationStatus* op, GList* dates) { - GTimeVal _tmp0 = {0}; + GTimeVal _tmp0_ = {0}; GTimeVal tv; g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); - tv = (g_get_current_time (&_tmp0), _tmp0); + tv = (g_get_current_time (&_tmp0_), _tmp0_); self->priv->got_dates = TRUE; gtk_list_store_clear (self->priv->date_store); { @@ -428,17 +604,17 @@ GList* date_it; date_collection = dates; for (date_it = date_collection; date_it != NULL; date_it = date_it->next) { - const char* _tmp2; + const char* _tmp2_; char* date; - _tmp2 = NULL; - date = (_tmp2 = (const char*) date_it->data, (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)); + _tmp2_ = NULL; + date = (_tmp2_ = (const char*) date_it->data, (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)); { if (g_time_val_from_iso8601 (date, &tv)) { - struct tm _tmp1 = {0}; + struct tm _tmp1_ = {0}; struct tm t; char* user_str; GtkTreeIter iter = {0}; - t = (localtime_r (&tv.tv_sec, &_tmp1), _tmp1); + t = (localtime_r (&tv.tv_sec, &_tmp1_), _tmp1_); user_str = g_time_format (&t, "%c"); gtk_list_store_prepend (self->priv->date_store, &iter); gtk_list_store_set (self->priv->date_store, &iter, 0, user_str, 1, date, -1); @@ -456,26 +632,23 @@ } -void assistant_restore_query_finished (AssistantRestore* self, DejaDupOperationStatus* op, gboolean success) { - gboolean _tmp0; - DejaDupOperationStatus* _tmp1; +void assistant_restore_query_finished (AssistantRestore* self, DejaDupOperation* op, gboolean success) { + DejaDupOperationStatus* _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (op != NULL); - _tmp0 = FALSE; - if (success) { - _tmp0 = !assistant_operation_get_error_occurred ((AssistantOperation*) self); - } else { - _tmp0 = FALSE; - } - if (_tmp0) { - gint next_page; - next_page = assistant_restore_do_forward (self, gtk_assistant_get_current_page ((GtkAssistant*) self)); - if (next_page >= 0) { - gtk_assistant_set_current_page ((GtkAssistant*) self, next_page); + _tmp0_ = NULL; + self->priv->query_op = (_tmp0_ = NULL, (self->priv->query_op == NULL) ? NULL : (self->priv->query_op = (g_object_unref (self->priv->query_op), NULL)), _tmp0_); + if (!assistant_operation_get_error_occurred ((AssistantOperation*) self)) { + if (success) { + gint next_page; + next_page = assistant_restore_do_forward (self, gtk_assistant_get_current_page ((GtkAssistant*) self)); + if (next_page >= 0) { + gtk_assistant_set_current_page ((GtkAssistant*) self, next_page); + } + } else { + assistant_operation_do_close ((AssistantOperation*) self); } } - _tmp1 = NULL; - self->priv->query_op = (_tmp1 = NULL, (self->priv->query_op == NULL) ? NULL : (self->priv->query_op = (g_object_unref (self->priv->query_op), NULL)), _tmp1); } @@ -491,7 +664,7 @@ } -static void _assistant_restore_query_finished_deja_dup_operation_done (DejaDupOperationStatus* _sender, gboolean success, gpointer self) { +static void _assistant_restore_query_finished_deja_dup_operation_done (DejaDupOperation* _sender, gboolean success, gpointer self) { assistant_restore_query_finished (self, _sender, success); } @@ -502,18 +675,18 @@ void assistant_restore_do_query (AssistantRestore* self) { - GError * inner_error; - DejaDupOperationStatus* _tmp0; + GError * _inner_error_; + DejaDupOperationStatus* _tmp0_; g_return_if_fail (self != NULL); - inner_error = NULL; - _tmp0 = NULL; - self->priv->query_op = (_tmp0 = deja_dup_operation_status_new ((GtkWindow*) self, 0), (self->priv->query_op == NULL) ? NULL : (self->priv->query_op = (g_object_unref (self->priv->query_op), NULL)), _tmp0); + _inner_error_ = NULL; + _tmp0_ = NULL; + self->priv->query_op = (_tmp0_ = deja_dup_operation_status_new ((GtkWindow*) self, 0), (self->priv->query_op == NULL) ? NULL : (self->priv->query_op = (g_object_unref (self->priv->query_op), NULL)), _tmp0_); g_signal_connect_object (self->priv->query_op, "collection-dates", (GCallback) _assistant_restore_handle_collection_dates_deja_dup_operation_status_collection_dates, self, 0); g_signal_connect_object ((DejaDupOperation*) self->priv->query_op, "done", (GCallback) _assistant_restore_query_finished_deja_dup_operation_done, self, 0); - g_signal_connect_object ((DEJA_DUP_OPERATION (self->priv->query_op)), "raise-error", (GCallback) _assistant_operation_show_error_deja_dup_operation_raise_error, (AssistantOperation*) self, 0); + g_signal_connect_object (DEJA_DUP_OPERATION (self->priv->query_op), "raise-error", (GCallback) _assistant_operation_show_error_deja_dup_operation_raise_error, (AssistantOperation*) self, 0); { - deja_dup_operation_start ((DejaDupOperation*) self->priv->query_op, &inner_error); - if (inner_error != NULL) { + deja_dup_operation_start ((DejaDupOperation*) self->priv->query_op, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch5_g_error; goto __finally5; } @@ -522,20 +695,20 @@ __catch5_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("AssistantRestore.vala:333: %s\n", e->message); + g_warning ("AssistantRestore.vala:375: %s\n", e->message); assistant_operation_show_error ((AssistantOperation*) self, (DejaDupOperation*) self->priv->query_op, e->message, NULL); /* not really user-friendly text, but ideally this won't happen*/ - assistant_restore_query_finished (self, self->priv->query_op, FALSE); + assistant_restore_query_finished (self, (DejaDupOperation*) self->priv->query_op, FALSE); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally5: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -543,46 +716,46 @@ gint assistant_restore_do_forward (AssistantRestore* self, gint n) { gint next; - GtkWidget* _tmp1; + GtkWidget* _tmp1_; GtkWidget* next_page; - gboolean _tmp4; - gint _tmp7; + gboolean _tmp4_; + gint _tmp7_; g_return_val_if_fail (self != NULL, 0); if (n >= (gtk_assistant_get_n_pages ((GtkAssistant*) self) - 1)) { return -1; } next = n + 1; - _tmp1 = NULL; - next_page = (_tmp1 = gtk_assistant_get_nth_page ((GtkAssistant*) self, next), (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); + _tmp1_ = NULL; + next_page = (_tmp1_ = gtk_assistant_get_nth_page ((GtkAssistant*) self, next), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); if (next_page == self->priv->date_page) { if (!self->priv->got_dates) { - GtkWidget* _tmp3; - GtkWidget* _tmp2; + GtkWidget* _tmp3_; + GtkWidget* _tmp2_; /* Hmm, we never got a date from querying the backend, but we also didn't hit an error (since we're about to show this page, and not the summary/error page). Skip the date portion, since the backend must not be capable of giving us dates (duplicity < 0.5.04 couldn't).*/ - _tmp3 = NULL; - _tmp2 = NULL; - next_page = (_tmp3 = (_tmp2 = gtk_assistant_get_nth_page ((GtkAssistant*) self, (next = next + 1)), (_tmp2 == NULL) ? NULL : g_object_ref (_tmp2)), (next_page == NULL) ? NULL : (next_page = (g_object_unref (next_page), NULL)), _tmp3); + _tmp3_ = NULL; + _tmp2_ = NULL; + next_page = (_tmp3_ = (_tmp2_ = gtk_assistant_get_nth_page ((GtkAssistant*) self, next = next + 1), (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)), (next_page == NULL) ? NULL : (next_page = (g_object_unref (next_page), NULL)), _tmp3_); } } - _tmp4 = FALSE; + _tmp4_ = FALSE; if (next_page == self->priv->restore_dest_page) { - _tmp4 = assistant_restore_get_restore_files (self) != NULL; + _tmp4_ = assistant_restore_get_restore_files (self) != NULL; } else { - _tmp4 = FALSE; + _tmp4_ = FALSE; } /* If we're doing a known-file-set restore, assume user wants same-location restore.*/ - if (_tmp4) { - GtkWidget* _tmp6; - GtkWidget* _tmp5; - _tmp6 = NULL; - _tmp5 = NULL; - next_page = (_tmp6 = (_tmp5 = gtk_assistant_get_nth_page ((GtkAssistant*) self, (next = next + 1)), (_tmp5 == NULL) ? NULL : g_object_ref (_tmp5)), (next_page == NULL) ? NULL : (next_page = (g_object_unref (next_page), NULL)), _tmp6); + if (_tmp4_) { + GtkWidget* _tmp6_; + GtkWidget* _tmp5_; + _tmp6_ = NULL; + _tmp5_ = NULL; + next_page = (_tmp6_ = (_tmp5_ = gtk_assistant_get_nth_page ((GtkAssistant*) self, next = next + 1), (_tmp5_ == NULL) ? NULL : g_object_ref (_tmp5_)), (next_page == NULL) ? NULL : (next_page = (g_object_unref (next_page), NULL)), _tmp6_); } - return (_tmp7 = next, (next_page == NULL) ? NULL : (next_page = (g_object_unref (next_page), NULL)), _tmp7); + return (_tmp7_ = next, (next_page == NULL) ? NULL : (next_page = (g_object_unref (next_page), NULL)), _tmp7_); } @@ -591,69 +764,17 @@ } -static void assistant_restore_real_do_prepare (AssistantOperation* base, AssistantOperation* assist, GtkWidget* page) { +static void assistant_restore_real_do_prepare (AssistantOperation* base, GtkAssistant* assist, GtkWidget* page) { AssistantRestore * self; - GError * inner_error; self = (AssistantRestore*) base; g_return_if_fail (assist != NULL); g_return_if_fail (page != NULL); - inner_error = NULL; ASSISTANT_OPERATION_CLASS (assistant_restore_parent_class)->do_prepare (ASSISTANT_OPERATION (self), assist, page); if (self->priv->query_timeout_id > 0) { g_source_remove (self->priv->query_timeout_id); self->priv->query_timeout_id = (guint) 0; } if (page == assistant_operation_get_confirm_page ((AssistantOperation*) self)) { - char* backup_loc; - /* Where the backup is*/ - backup_loc = NULL; - { - DejaDupBackend* _tmp0; - DejaDupBackend* _tmp1; - char* _tmp2; - char* _tmp3; - char* _tmp4; - _tmp0 = deja_dup_backend_get_default ((GtkWindow*) self, &inner_error); - if (inner_error != NULL) { - goto __catch6_g_error; - goto __finally6; - } - _tmp1 = NULL; - _tmp2 = NULL; - _tmp3 = (_tmp2 = deja_dup_backend_get_location_pretty (_tmp1 = _tmp0, &inner_error), (_tmp1 == NULL) ? NULL : (_tmp1 = (g_object_unref (_tmp1), NULL)), _tmp2); - if (inner_error != NULL) { - goto __catch6_g_error; - goto __finally6; - } - _tmp4 = NULL; - backup_loc = (_tmp4 = _tmp3, backup_loc = (g_free (backup_loc), NULL), _tmp4); - } - goto __finally6; - __catch6_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("AssistantRestore.vala:381: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally6: - if (inner_error != NULL) { - backup_loc = (g_free (backup_loc), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - if (backup_loc == NULL) { - char* _tmp6; - const char* _tmp5; - _tmp6 = NULL; - _tmp5 = NULL; - backup_loc = (_tmp6 = (_tmp5 = _ ("Unknown"), (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), backup_loc = (g_free (backup_loc), NULL), _tmp6); - } - gtk_label_set_label (self->priv->confirm_backup, backup_loc); /* When we restore from*/ if (self->priv->got_dates) { gtk_label_set_label (self->priv->confirm_date, gtk_combo_box_get_active_text (self->priv->date_combo)); @@ -670,7 +791,13 @@ if (_vala_strcmp0 (self->priv->_restore_location, "/") == 0) { gtk_label_set_label (self->priv->confirm_location, _ ("Original location")); } else { - gtk_label_set_label (self->priv->confirm_location, self->priv->_restore_location); + char* _tmp1_; + GFile* _tmp0_; + _tmp1_ = NULL; + _tmp0_ = NULL; + gtk_label_set_label (self->priv->confirm_location, _tmp1_ = deja_dup_get_file_desc (_tmp0_ = g_file_new_for_path (self->priv->_restore_location))); + _tmp1_ = (g_free (_tmp1_), NULL); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)); } gtk_widget_show ((GtkWidget*) self->priv->confirm_location_label); gtk_widget_show ((GtkWidget*) self->priv->confirm_location); @@ -685,19 +812,19 @@ GList* f_it; f_collection = assistant_restore_get_restore_files (self); for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp9; + GFile* _tmp4_; GFile* f; - _tmp9 = NULL; - f = (_tmp9 = (GFile*) f_it->data, (_tmp9 == NULL) ? NULL : g_object_ref (_tmp9)); + _tmp4_ = NULL; + f = (_tmp4_ = (GFile*) f_it->data, (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_)); { char* parse_name; - char* _tmp7; - GtkLabel* _tmp8; + char* _tmp2_; + GtkLabel* _tmp3_; GtkLabel* file_label; parse_name = g_file_get_parse_name (f); - _tmp7 = NULL; - _tmp8 = NULL; - file_label = (_tmp8 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp7 = g_path_get_basename (parse_name))), _tmp7 = (g_free (_tmp7), NULL), _tmp8); + _tmp2_ = NULL; + _tmp3_ = NULL; + file_label = (_tmp3_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp2_ = g_path_get_basename (parse_name))), _tmp2_ = (g_free (_tmp2_), NULL), _tmp3_); gtk_widget_set_tooltip_text ((GtkWidget*) file_label, parse_name); g_object_set ((GObject*) file_label, "xalign", 0.0f, NULL); gtk_container_add ((GtkContainer*) self->priv->confirm_files, (GtkWidget*) file_label); @@ -714,7 +841,6 @@ gtk_widget_show_all ((GtkWidget*) self->priv->confirm_files); gtk_table_set_row_spacing (self->priv->confirm_table, (guint) self->priv->confirm_files_row, gtk_table_get_default_row_spacing (self->priv->confirm_table)); } - backup_loc = (g_free (backup_loc), NULL); } else { if (page == assistant_operation_get_summary_page ((AssistantOperation*) self)) { if (assistant_operation_get_error_occurred ((AssistantOperation*) self)) { @@ -751,7 +877,7 @@ /* Déjà Dup - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -785,12 +911,12 @@ void assistant_restore_set_restore_location (AssistantRestore* self, const char* value) { - char* _tmp2; - const char* _tmp1; + char* _tmp2_; + const char* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_restore_location = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), self->priv->_restore_location = (g_free (self->priv->_restore_location), NULL), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_restore_location = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->_restore_location = (g_free (self->priv->_restore_location), NULL), _tmp2_); g_object_notify ((GObject *) self, "restore-location"); } @@ -802,34 +928,34 @@ void assistant_restore_set_restore_files (AssistantRestore* self, GList* value) { - GList* _tmp2; + GList* _tmp2_; g_return_if_fail (self != NULL); { GList* f_collection; GList* f_it; f_collection = self->priv->_restore_files; for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp1; + GFile* _tmp1_; GFile* f; - _tmp1 = NULL; - f = (_tmp1 = (GFile*) f_it->data, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); + _tmp1_ = NULL; + f = (_tmp1_ = (GFile*) f_it->data, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); { g_object_unref ((GObject*) f); (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); } } } - _tmp2 = NULL; - self->priv->_restore_files = (_tmp2 = g_list_copy (value), (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)), _tmp2); + _tmp2_ = NULL; + self->priv->_restore_files = (_tmp2_ = g_list_copy (value), (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)), _tmp2_); { GList* f_collection; GList* f_it; f_collection = self->priv->_restore_files; for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp3; + GFile* _tmp3_; GFile* f; - _tmp3 = NULL; - f = (_tmp3 = (GFile*) f_it->data, (_tmp3 == NULL) ? NULL : g_object_ref (_tmp3)); + _tmp3_ = NULL; + f = (_tmp3_ = (GFile*) f_it->data, (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); { g_object_ref ((GObject*) f); (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); @@ -862,55 +988,21 @@ } -static void assistant_restore_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - AssistantRestore * self; - gpointer boxed; - self = ASSISTANT_RESTORE (object); - switch (property_id) { - case ASSISTANT_RESTORE_RESTORE_LOCATION: - g_value_set_string (value, assistant_restore_get_restore_location (self)); - break; - case ASSISTANT_RESTORE_RESTORE_FILES: - g_value_set_pointer (value, assistant_restore_get_restore_files (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void assistant_restore_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - AssistantRestore * self; - self = ASSISTANT_RESTORE (object); - switch (property_id) { - case ASSISTANT_RESTORE_RESTORE_LOCATION: - assistant_restore_set_restore_location (self, g_value_get_string (value)); - break; - case ASSISTANT_RESTORE_RESTORE_FILES: - assistant_restore_set_restore_files (self, g_value_get_pointer (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - static void assistant_restore_class_init (AssistantRestoreClass * klass) { assistant_restore_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (AssistantRestorePrivate)); - G_OBJECT_CLASS (klass)->get_property = assistant_restore_get_property; - G_OBJECT_CLASS (klass)->set_property = assistant_restore_set_property; - G_OBJECT_CLASS (klass)->constructor = assistant_restore_constructor; - G_OBJECT_CLASS (klass)->finalize = assistant_restore_finalize; ASSISTANT_OPERATION_CLASS (klass)->add_setup_pages = assistant_restore_real_add_setup_pages; + ASSISTANT_OPERATION_CLASS (klass)->add_custom_config_pages = assistant_restore_real_add_custom_config_pages; ASSISTANT_OPERATION_CLASS (klass)->make_confirm_page = assistant_restore_real_make_confirm_page; ASSISTANT_OPERATION_CLASS (klass)->create_op = assistant_restore_real_create_op; ASSISTANT_OPERATION_CLASS (klass)->get_progress_file_prefix = assistant_restore_real_get_progress_file_prefix; - ASSISTANT_OPERATION_CLASS (klass)->get_op_icon = assistant_restore_real_get_op_icon; + ASSISTANT_OPERATION_CLASS (klass)->make_op_icon = assistant_restore_real_make_op_icon; ASSISTANT_OPERATION_CLASS (klass)->do_prepare = assistant_restore_real_do_prepare; ASSISTANT_OPERATION_CLASS (klass)->do_close = assistant_restore_real_do_close; + G_OBJECT_CLASS (klass)->get_property = assistant_restore_get_property; + G_OBJECT_CLASS (klass)->set_property = assistant_restore_set_property; + G_OBJECT_CLASS (klass)->constructor = assistant_restore_constructor; + G_OBJECT_CLASS (klass)->finalize = assistant_restore_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_RESTORE_RESTORE_LOCATION, g_param_spec_string ("restore-location", "restore-location", "restore-location", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), ASSISTANT_RESTORE_RESTORE_FILES, g_param_spec_pointer ("restore-files", "restore-files", "restore-files", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); } @@ -934,7 +1026,6 @@ (self->priv->cust_box == NULL) ? NULL : (self->priv->cust_box = (g_object_unref (self->priv->cust_box), NULL)); (self->priv->cust_button == NULL) ? NULL : (self->priv->cust_button = (g_object_unref (self->priv->cust_button), NULL)); (self->priv->confirm_table == NULL) ? NULL : (self->priv->confirm_table = (g_object_unref (self->priv->confirm_table), NULL)); - (self->priv->confirm_backup == NULL) ? NULL : (self->priv->confirm_backup = (g_object_unref (self->priv->confirm_backup), NULL)); (self->priv->confirm_location_label == NULL) ? NULL : (self->priv->confirm_location_label = (g_object_unref (self->priv->confirm_location_label), NULL)); (self->priv->confirm_location == NULL) ? NULL : (self->priv->confirm_location = (g_object_unref (self->priv->confirm_location), NULL)); (self->priv->confirm_date_label == NULL) ? NULL : (self->priv->confirm_date_label = (g_object_unref (self->priv->confirm_date_label), NULL)); @@ -958,6 +1049,41 @@ } +static void assistant_restore_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + AssistantRestore * self; + gpointer boxed; + self = ASSISTANT_RESTORE (object); + switch (property_id) { + case ASSISTANT_RESTORE_RESTORE_LOCATION: + g_value_set_string (value, assistant_restore_get_restore_location (self)); + break; + case ASSISTANT_RESTORE_RESTORE_FILES: + g_value_set_pointer (value, assistant_restore_get_restore_files (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void assistant_restore_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + AssistantRestore * self; + self = ASSISTANT_RESTORE (object); + switch (property_id) { + case ASSISTANT_RESTORE_RESTORE_LOCATION: + assistant_restore_set_restore_location (self, g_value_get_string (value)); + break; + case ASSISTANT_RESTORE_RESTORE_FILES: + assistant_restore_set_restore_files (self, g_value_get_pointer (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + static int _vala_strcmp0 (const char * str1, const char * str2) { if (str1 == NULL) { return -(str1 != str2); diff -Nru deja-dup-7.4/deja-dup/AssistantRestore.h deja-dup-10.0/deja-dup/AssistantRestore.h --- deja-dup-7.4/deja-dup/AssistantRestore.h 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantRestore.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,74 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __ASSISTANTRESTORE_H__ -#define __ASSISTANTRESTORE_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "AssistantOperation.h" - -G_BEGIN_DECLS - - -#define TYPE_ASSISTANT_RESTORE (assistant_restore_get_type ()) -#define ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestore)) -#define ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) -#define IS_ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_RESTORE)) -#define IS_ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_RESTORE)) -#define ASSISTANT_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) - -typedef struct _AssistantRestore AssistantRestore; -typedef struct _AssistantRestoreClass AssistantRestoreClass; -typedef struct _AssistantRestorePrivate AssistantRestorePrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -struct _AssistantRestore { - AssistantOperation parent_instance; - AssistantRestorePrivate * priv; -}; - -struct _AssistantRestoreClass { - AssistantOperationClass parent_class; -}; - - -AssistantRestore* assistant_restore_construct_with_files (GType object_type, GList* files); -AssistantRestore* assistant_restore_new_with_files (GList* files); -void assistant_restore_handle_collection_dates (AssistantRestore* self, DejaDupOperationStatus* op, GList* dates); -void assistant_restore_query_finished (AssistantRestore* self, DejaDupOperationStatus* op, gboolean success); -void assistant_restore_do_query (AssistantRestore* self); -gint assistant_restore_do_forward (AssistantRestore* self, gint n); -AssistantRestore* assistant_restore_construct (GType object_type); -AssistantRestore* assistant_restore_new (void); -const char* assistant_restore_get_restore_location (AssistantRestore* self); -void assistant_restore_set_restore_location (AssistantRestore* self, const char* value); -GList* assistant_restore_get_restore_files (AssistantRestore* self); -void assistant_restore_set_restore_files (AssistantRestore* self, GList* value); -GType assistant_restore_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/deja-dup/AssistantRestore.vala deja-dup-10.0/deja-dup/AssistantRestore.vala --- deja-dup-7.4/deja-dup/AssistantRestore.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/deja-dup/AssistantRestore.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -52,7 +52,6 @@ Gtk.HBox cust_box; Gtk.FileChooserButton cust_button; Gtk.Table confirm_table; - Gtk.Label confirm_backup; int confirm_location_row; Gtk.Label confirm_location_label; Gtk.Label confirm_location; @@ -80,6 +79,44 @@ add_restore_dest_page(); } + Gtk.Widget make_backup_location_page() + { + int rows = 0; + Gtk.Widget w, label; + + var page = new Gtk.Table(rows, 2, false); + page.set("row-spacing", 6, + "column-spacing", 6, + "border-width", 12); + + w = new DejaDup.ConfigLocation(); + label = new Gtk.Label.with_mnemonic(_("_Backup location:")); + label.set("xalign", 0.0f, + "mnemonic-widget", w); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 0, 0, 0); + ++rows; + + w = new DejaDup.ConfigBool(DejaDup.ENCRYPT_KEY, _("Backup files are _encrypted")); + page.attach(w, 0, 2, rows, rows + 1, + Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, + Gtk.AttachOptions.FILL, 0, 0); + ++rows; + + return page; + } + + protected override void add_custom_config_pages() + { + var page = make_backup_location_page(); + append_page(page); + child_set(page, + "title", _("Preferences"), + "page-type", Gtk.AssistantPageType.CONTENT, + "complete", true, + "header-image", op_icon); + } + Gtk.Widget make_query_backend_page() { query_progress_bar = new Gtk.ProgressBar(); @@ -123,22 +160,22 @@ var orig_radio = new Gtk.RadioButton(null); orig_radio.set("label", _("Restore files to _original locations"), "use-underline", true); - orig_radio.toggled += (r) => {if (r.active) restore_location = "/";}; + orig_radio.toggled.connect((r) => {if (r.active) restore_location = "/";}); var cust_radio = new Gtk.RadioButton(null); cust_radio.set("label", _("Restore to _specific folder"), "use-underline", true, "group", orig_radio); - cust_radio.toggled += (r) => { + cust_radio.toggled.connect((r) => { if (r.active) restore_location = cust_button.get_filename(); cust_box.sensitive = r.active; - }; + }); cust_button = new Gtk.FileChooserButton(_("Choose destination for restored files"), Gtk.FileChooserAction.SELECT_FOLDER); - cust_button.selection_changed += (b) => {restore_location = b.get_filename();}; + cust_button.selection_changed.connect((b) => {restore_location = b.get_filename();}); var cust_label = new Gtk.Label(" " + _("Restore _folder:")); cust_label.set("mnemonic-widget", cust_button, @@ -165,51 +202,53 @@ protected override Gtk.Widget make_confirm_page() { int rows = 0; + Gtk.Widget label, w; - var backup_label = new Gtk.Label(_("Backup location:")); - backup_label.set("xalign", 0.0f); - confirm_backup = new Gtk.Label(""); - confirm_backup.set("xalign", 0.0f); + confirm_table = new Gtk.Table(rows, 3, false); + var page = confirm_table; + page.set("row-spacing", 6, + "column-spacing", 6, + "border-width", 12); + + label = new Gtk.Label(_("Backup location:")); + label.set("xalign", 0.0f); + w = new DejaDup.ConfigLabelLocation(); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 0, 0, 0); + ++rows; + + label = new Gtk.Label(_("Encrypted:")); + label.set("xalign", 0.0f); + w = new DejaDup.ConfigLabelBool(DejaDup.ENCRYPT_KEY); + page.attach(label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + page.attach(w, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); ++rows; confirm_date_label = new Gtk.Label(_("Restore date:")); confirm_date_label.set("xalign", 0.0f); confirm_date = new Gtk.Label(""); confirm_date.set("xalign", 0.0f); + confirm_date_row = rows; + page.attach(confirm_date_label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); + page.attach(confirm_date, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); ++rows; confirm_location_label = new Gtk.Label(_("Restore folder:")); confirm_location_label.set("xalign", 0.0f); confirm_location = new Gtk.Label(""); confirm_location.set("xalign", 0.0f); + confirm_location_row = rows; + page.attach(confirm_location_label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); + page.attach(confirm_location, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); ++rows; confirm_files_label = new Gtk.Label(""); confirm_files_label.set("xalign", 0.0f, "yalign", 0.0f); confirm_files = new Gtk.VBox(true, 6); - ++rows; - - confirm_table = new Gtk.Table(rows, 3, false); - var page = confirm_table; - page.set("row-spacing", 6, - "column-spacing", 6, - "border-width", 12); - - rows = 0; - page.attach(backup_label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); - page.attach(confirm_backup, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); - ++rows; - confirm_date_row = rows; - page.attach(confirm_date_label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); - page.attach(confirm_date, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); - ++rows; - confirm_location_row = rows; - page.attach(confirm_location_label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); - page.attach(confirm_location, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); - ++rows; confirm_files_row = rows; page.attach(confirm_files_label, 0, 1, rows, rows + 1, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, 0, 0); page.attach(confirm_files, 1, 2, rows, rows + 1, Gtk.AttachOptions.FILL, 0, 0, 0); + ++rows; return page; } @@ -221,7 +260,7 @@ child_set(page, "title", _("Checking for Backups"), "complete", false, - "header-image", icon); + "header-image", op_icon); query_progress_page = page; } @@ -232,7 +271,7 @@ child_set(page, "title", _("Restore from When?"), "complete", true, - "header-image", icon); + "header-image", op_icon); date_page = page; } @@ -243,7 +282,7 @@ child_set(page, "title", _("Restore to Where?"), "complete", true, - "header-image", icon); + "header-image", op_icon); restore_dest_page = page; } @@ -267,11 +306,10 @@ return _("Restoring"); } - protected override Gdk.Pixbuf? get_op_icon() + protected override Gdk.Pixbuf? make_op_icon() { try { - var filename = get_restore_icon_filename(); - return new Gdk.Pixbuf.from_file_at_size(filename, 48, 48); + return hacks_get_icon_at_size("deja-dup-restore", 48); } catch (Error e) { warning("%s\n", e.message); @@ -302,15 +340,19 @@ show_error(query_op, _("No backups to restore"), null); } - protected void query_finished(DejaDup.OperationStatus op, bool success) + protected void query_finished(DejaDup.Operation op, bool success) { - if (success && !error_occurred) { - var next_page = do_forward(get_current_page()); - if (next_page >= 0) - set_current_page(next_page); - } - this.query_op = null; + + if (!error_occurred) { + if (success) { + var next_page = do_forward(get_current_page()); + if (next_page >= 0) + set_current_page(next_page); + } + else // cancelled + do_close(); + } } bool query_pulse() @@ -322,9 +364,9 @@ protected void do_query() { query_op = new DejaDup.OperationStatus(this); - query_op.collection_dates += handle_collection_dates; - query_op.done += query_finished; - ((DejaDup.Operation)query_op).raise_error += show_error; + query_op.collection_dates.connect(handle_collection_dates); + query_op.done.connect(query_finished); + ((DejaDup.Operation)query_op).raise_error.connect(show_error); try { query_op.start(); @@ -362,7 +404,7 @@ return next; } - protected override void do_prepare(AssistantOperation assist, Gtk.Widget page) + protected override void do_prepare(Gtk.Assistant assist, Gtk.Widget page) { base.do_prepare(assist, page); @@ -372,18 +414,6 @@ } if (page == confirm_page) { - // Where the backup is - string backup_loc = null; - try { - backup_loc = DejaDup.Backend.get_default(this).get_location_pretty(); - } - catch (Error e) { - warning("%s\n", e.message); - } - if (backup_loc == null) - backup_loc = _("Unknown"); - confirm_backup.label = backup_loc; - // When we restore from if (got_dates) { confirm_date.label = date_combo.get_active_text(); @@ -403,7 +433,7 @@ if (restore_location == "/") confirm_location.label = _("Original location"); else - confirm_location.label = restore_location; + confirm_location.label = DejaDup.get_file_desc(File.new_for_path(restore_location)); confirm_location_label.show(); confirm_location.show(); diff -Nru deja-dup-7.4/deja-dup/main.c deja-dup-10.0/deja-dup/main.c --- deja-dup-7.4/deja-dup/main.c 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/main.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,28 +1,98 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "main.h" +#include +#include #include #include +#include +#include #include -#include "AssistantRestore.h" -#include "MainWindow.h" +#include +#include +#define TYPE_DEJA_DUP_APP (deja_dup_app_get_type ()) +#define DEJA_DUP_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEJA_DUP_APP, DejaDupApp)) +#define DEJA_DUP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEJA_DUP_APP, DejaDupAppClass)) +#define IS_DEJA_DUP_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEJA_DUP_APP)) +#define IS_DEJA_DUP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEJA_DUP_APP)) +#define DEJA_DUP_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEJA_DUP_APP, DejaDupAppClass)) + +typedef struct _DejaDupApp DejaDupApp; +typedef struct _DejaDupAppClass DejaDupAppClass; +typedef struct _DejaDupAppPrivate DejaDupAppPrivate; + +#define TYPE_ASSISTANT_OPERATION (assistant_operation_get_type ()) +#define ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperation)) +#define ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) +#define IS_ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_OPERATION)) +#define IS_ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_OPERATION)) +#define ASSISTANT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) + +typedef struct _AssistantOperation AssistantOperation; +typedef struct _AssistantOperationClass AssistantOperationClass; + +#define TYPE_ASSISTANT_RESTORE (assistant_restore_get_type ()) +#define ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestore)) +#define ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) +#define IS_ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_RESTORE)) +#define IS_ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_RESTORE)) +#define ASSISTANT_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) + +typedef struct _AssistantRestore AssistantRestore; +typedef struct _AssistantRestoreClass AssistantRestoreClass; + +#define TYPE_MAIN_WINDOW (main_window_get_type ()) +#define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow)) +#define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass)) +#define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW)) +#define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW)) +#define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass)) + +typedef struct _MainWindow MainWindow; +typedef struct _MainWindowClass MainWindowClass; + +struct _DejaDupApp { + GObject parent_instance; + DejaDupAppPrivate * priv; +}; + +struct _DejaDupAppClass { + GObjectClass parent_class; +}; + +extern GtkWindow* toplevel; GtkWindow* toplevel = NULL; +GType deja_dup_app_get_type (void); enum { DEJA_DUP_APP_DUMMY_PROPERTY }; +static gboolean deja_dup_app_show_version; static gboolean deja_dup_app_show_version = FALSE; +static gboolean deja_dup_app_restore_mode; static gboolean deja_dup_app_restore_mode = FALSE; +static char** deja_dup_app_filenames; +static gint deja_dup_app_filenames_length1; static char** deja_dup_app_filenames = NULL; static gint deja_dup_app_filenames_length1 = 0; static gint deja_dup_app_filenames_size = 0; static gboolean deja_dup_app_handle_console_options (gint* status); -static void __lambda0 (GtkWindow* t); -static void ___lambda0_gtk_object_destroy (GtkWindow* _sender, gpointer self); +AssistantRestore* assistant_restore_new_with_files (GList* files); +AssistantRestore* assistant_restore_construct_with_files (GType object_type, GList* files); +GType assistant_operation_get_type (void); +GType assistant_restore_get_type (void); +static void _lambda7_ (GtkObject* t); +static void __lambda7__gtk_object_destroy (GtkObject* _sender, gpointer self); static void _g_list_free_g_object_unref (GList* self); +MainWindow* main_window_new (void); +MainWindow* main_window_construct (GType object_type); +GType main_window_get_type (void); +gint deja_dup_app_main (char** args, int args_length1); +DejaDupApp* deja_dup_app_new (void); +DejaDupApp* deja_dup_app_construct (GType object_type); +DejaDupApp* deja_dup_app_new (void); static gpointer deja_dup_app_parent_class = NULL; static void deja_dup_app_finalize (GObject* obj); @@ -47,14 +117,14 @@ } -static void __lambda0 (GtkWindow* t) { +static void _lambda7_ (GtkObject* t) { g_return_if_fail (t != NULL); gtk_main_quit (); } -static void ___lambda0_gtk_object_destroy (GtkWindow* _sender, gpointer self) { - __lambda0 (_sender); +static void __lambda7__gtk_object_destroy (GtkObject* _sender, gpointer self) { + _lambda7_ (_sender); } @@ -65,11 +135,11 @@ gint deja_dup_app_main (char** args, int args_length1) { - GError * inner_error; + GError * _inner_error_; GOptionContext* context; gint status; - gint _tmp5; - inner_error = NULL; + gint _tmp5_; + _inner_error_ = NULL; textdomain (GETTEXT_PACKAGE); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); @@ -83,39 +153,40 @@ g_option_context_add_main_entries (context, DEJA_DUP_APP_options, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (FALSE)); { - g_option_context_parse (context, &args_length1, &args, &inner_error); - if (inner_error != NULL) { - goto __catch11_g_error; - goto __finally11; + g_option_context_parse (context, &args_length1, &args, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch10_g_error; + goto __finally10; } } - goto __finally11; - __catch11_g_error: + goto __finally10; + __catch10_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - char* _tmp0; - gint _tmp1; - _tmp0 = NULL; - g_printerr ("%s\n\n%s", e->message, _tmp0 = g_option_context_get_help (context, TRUE, NULL)); - _tmp0 = (g_free (_tmp0), NULL); - return (_tmp1 = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1); + char* _tmp0_; + gint _tmp1_; + _tmp0_ = NULL; + g_printerr ("%s\n\n%s", e->message, _tmp0_ = g_option_context_get_help (context, TRUE, NULL)); + _tmp0_ = (g_free (_tmp0_), NULL); + return (_tmp1_ = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1_); } } - __finally11: - if (inner_error != NULL) { + __finally10: + if (_inner_error_ != NULL) { (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return 0; } status = 0; if (!deja_dup_app_handle_console_options (&status)) { - gint _tmp2; - return (_tmp2 = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2); + gint _tmp2_; + return (_tmp2_ = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2_); } + deja_dup_initialize (); gtk_init (&args_length1, &args); /* to open display ('cause we passed false above)*/ gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), THEME_DIR); @@ -123,24 +194,24 @@ if (deja_dup_app_restore_mode) { GList* file_list; gint i; - GtkWindow* _tmp3; + GtkWindow* _tmp3_; file_list = NULL; i = 0; while (deja_dup_app_filenames[i] != NULL) { file_list = g_list_append (file_list, g_file_new_for_commandline_arg (deja_dup_app_filenames[i++])); } - _tmp3 = NULL; - toplevel = (_tmp3 = (GtkWindow*) g_object_ref_sink (assistant_restore_new_with_files (file_list)), (toplevel == NULL) ? NULL : (toplevel = (g_object_unref (toplevel), NULL)), _tmp3); - g_signal_connect ((GtkObject*) toplevel, "destroy", (GCallback) ___lambda0_gtk_object_destroy, NULL); + _tmp3_ = NULL; + toplevel = (_tmp3_ = (GtkWindow*) g_object_ref_sink (assistant_restore_new_with_files (file_list)), (toplevel == NULL) ? NULL : (toplevel = (g_object_unref (toplevel), NULL)), _tmp3_); + g_signal_connect ((GtkObject*) toplevel, "destroy", (GCallback) __lambda7__gtk_object_destroy, NULL); (file_list == NULL) ? NULL : (file_list = (_g_list_free_g_object_unref (file_list), NULL)); } else { - GtkWindow* _tmp4; - _tmp4 = NULL; - toplevel = (_tmp4 = (GtkWindow*) g_object_ref_sink (main_window_new ()), (toplevel == NULL) ? NULL : (toplevel = (g_object_unref (toplevel), NULL)), _tmp4); + GtkWindow* _tmp4_; + _tmp4_ = NULL; + toplevel = (_tmp4_ = (GtkWindow*) g_object_ref_sink (main_window_new ()), (toplevel == NULL) ? NULL : (toplevel = (g_object_unref (toplevel), NULL)), _tmp4_); } gtk_widget_show_all ((GtkWidget*) toplevel); gtk_main (); - return (_tmp5 = 0, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp5); + return (_tmp5_ = 0, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp5_); } diff -Nru deja-dup-7.4/deja-dup/main.h deja-dup-10.0/deja-dup/main.h --- deja-dup-7.4/deja-dup/main.h 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/main.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,45 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __MAIN_H__ -#define __MAIN_H__ - -#include -#include -#include -#include -#include - -G_BEGIN_DECLS - - -#define TYPE_DEJA_DUP_APP (deja_dup_app_get_type ()) -#define DEJA_DUP_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEJA_DUP_APP, DejaDupApp)) -#define DEJA_DUP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEJA_DUP_APP, DejaDupAppClass)) -#define IS_DEJA_DUP_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEJA_DUP_APP)) -#define IS_DEJA_DUP_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEJA_DUP_APP)) -#define DEJA_DUP_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEJA_DUP_APP, DejaDupAppClass)) - -typedef struct _DejaDupApp DejaDupApp; -typedef struct _DejaDupAppClass DejaDupAppClass; -typedef struct _DejaDupAppPrivate DejaDupAppPrivate; - -struct _DejaDupApp { - GObject parent_instance; - DejaDupAppPrivate * priv; -}; - -struct _DejaDupAppClass { - GObjectClass parent_class; -}; - - -extern GtkWindow* toplevel; -gint deja_dup_app_main (char** args, int args_length1); -DejaDupApp* deja_dup_app_construct (GType object_type); -DejaDupApp* deja_dup_app_new (void); -GType deja_dup_app_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/deja-dup/main.vala deja-dup-10.0/deja-dup/main.vala --- deja-dup-7.4/deja-dup/main.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/deja-dup/main.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -80,6 +80,7 @@ if (!handle_console_options(out status)) return status; + DejaDup.initialize(); Gtk.init(ref args); // to open display ('cause we passed false above) Gtk.IconTheme.get_default().append_search_path(Config.THEME_DIR); @@ -91,7 +92,7 @@ while (filenames[i] != null) file_list.append(File.new_for_commandline_arg(filenames[i++])); toplevel = new AssistantRestore.with_files(file_list); - toplevel.destroy += (t) => {Gtk.main_quit();}; + toplevel.destroy.connect((t) => {Gtk.main_quit();}); } else toplevel = new MainWindow(); diff -Nru deja-dup-7.4/deja-dup/MainWindow.c deja-dup-10.0/deja-dup/MainWindow.c --- deja-dup-7.4/deja-dup/MainWindow.c 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/MainWindow.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,33 +1,107 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "MainWindow.h" -#include -#include -#include +#include +#include +#include +#include #include -#include -#include +#include +#include +#include #include -#include "AssistantBackup.h" -#include "AssistantRestore.h" +#define TYPE_MAIN_WINDOW (main_window_get_type ()) +#define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow)) +#define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass)) +#define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW)) +#define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW)) +#define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass)) + +typedef struct _MainWindow MainWindow; +typedef struct _MainWindowClass MainWindowClass; +typedef struct _MainWindowPrivate MainWindowPrivate; + +#define TYPE_ASSISTANT_OPERATION (assistant_operation_get_type ()) +#define ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperation)) +#define ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) +#define IS_ASSISTANT_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_OPERATION)) +#define IS_ASSISTANT_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_OPERATION)) +#define ASSISTANT_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_OPERATION, AssistantOperationClass)) + +typedef struct _AssistantOperation AssistantOperation; +typedef struct _AssistantOperationClass AssistantOperationClass; + +#define TYPE_ASSISTANT_BACKUP (assistant_backup_get_type ()) +#define ASSISTANT_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_BACKUP, AssistantBackup)) +#define ASSISTANT_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_BACKUP, AssistantBackupClass)) +#define IS_ASSISTANT_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_BACKUP)) +#define IS_ASSISTANT_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_BACKUP)) +#define ASSISTANT_BACKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_BACKUP, AssistantBackupClass)) + +typedef struct _AssistantBackup AssistantBackup; +typedef struct _AssistantBackupClass AssistantBackupClass; + +#define TYPE_ASSISTANT_RESTORE (assistant_restore_get_type ()) +#define ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestore)) +#define ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) +#define IS_ASSISTANT_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ASSISTANT_RESTORE)) +#define IS_ASSISTANT_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ASSISTANT_RESTORE)) +#define ASSISTANT_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ASSISTANT_RESTORE, AssistantRestoreClass)) +typedef struct _AssistantRestore AssistantRestore; +typedef struct _AssistantRestoreClass AssistantRestoreClass; + +/* + Déjà Dup + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ +struct _MainWindow { + GtkWindow parent_instance; + MainWindowPrivate * priv; +}; + +struct _MainWindowClass { + GtkWindowClass parent_class; +}; struct _MainWindowPrivate { GtkAction* backup_action; GtkAction* restore_action; }; + + +GType main_window_get_type (void); #define MAIN_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MAIN_WINDOW, MainWindowPrivate)) enum { MAIN_WINDOW_DUMMY_PROPERTY }; static gboolean main_window_check_duplicity_version (MainWindow* self); -static void main_window_on_backup (MainWindow* self, GtkAction* action); static void main_window_ask_backup (MainWindow* self); -static void main_window_on_restore (MainWindow* self, GtkAction* action); +static void main_window_on_backup (MainWindow* self, GtkAction* action); +AssistantBackup* assistant_backup_new (void); +AssistantBackup* assistant_backup_construct (GType object_type); +GType assistant_operation_get_type (void); +GType assistant_backup_get_type (void); static void main_window_ask_restore (MainWindow* self); +static void main_window_on_restore (MainWindow* self, GtkAction* action); +AssistantRestore* assistant_restore_new (void); +AssistantRestore* assistant_restore_construct (GType object_type); +GType assistant_restore_get_type (void); static void main_window_on_about (MainWindow* self, GtkAction* action); static void main_window_on_contents (MainWindow* self, GtkAction* action); static void main_window_on_get_help (MainWindow* self, GtkAction* action); @@ -44,51 +118,27 @@ static void _main_window_on_report_gtk_action_activate (GtkAction* _sender, gpointer self); static void _main_window_on_about_gtk_action_activate (GtkAction* _sender, gpointer self); static GtkWidget* main_window_setup_menu (MainWindow* self); -static void __lambda0 (GtkButton* b, MainWindow* self); -static void ___lambda0_gtk_button_clicked (GtkButton* _sender, gpointer self); -static void __lambda1 (GtkButton* b, MainWindow* self); -static void ___lambda1_gtk_button_clicked (GtkButton* _sender, gpointer self); +MainWindow* main_window_new (void); +MainWindow* main_window_construct (GType object_type); +MainWindow* main_window_new (void); +static void _lambda5_ (GtkButton* b, MainWindow* self); +static void __lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self); +static void _lambda6_ (GtkButton* b, MainWindow* self); +static void __lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self); static gboolean _main_window_check_duplicity_version_gsource_func (gpointer self); -static void _gtk_main_quit_gtk_object_destroy (MainWindow* _sender, gpointer self); +static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self); static GObject * main_window_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer main_window_parent_class = NULL; static void main_window_finalize (GObject* obj); -/* - Déjà Dup - © 2008—2009 Michael Terry - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ -char* get_restore_icon_filename (void) { - return g_build_filename (PKG_DATA_DIR, "document-save.svg", NULL); -} - - -char* get_backup_icon_filename (void) { - return g_build_filename (PKG_DATA_DIR, "document-send.svg", NULL); -} - - static gboolean main_window_check_duplicity_version (MainWindow* self) { - DejaDupDuplicityInfo* _tmp0; + DejaDupDuplicityInfo* _tmp0_; g_return_val_if_fail (self != NULL, FALSE); - _tmp0 = NULL; - deja_dup_duplicity_info_check_duplicity_version (_tmp0 = deja_dup_duplicity_info_get_default (), (GtkWindow*) self); - (_tmp0 == NULL) ? NULL : (_tmp0 = (g_object_unref (_tmp0), NULL)); + _tmp0_ = NULL; + deja_dup_duplicity_info_check_duplicity_version (_tmp0_ = deja_dup_duplicity_info_get_default (), (GtkWindow*) self); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)); return FALSE; } @@ -165,23 +215,23 @@ static void main_window_on_preferences (MainWindow* self, GtkAction* action) { - GError * inner_error; + GError * _inner_error_; g_return_if_fail (self != NULL); g_return_if_fail (action != NULL); - inner_error = NULL; + _inner_error_ = NULL; { - g_spawn_command_line_async ("deja-dup-preferences", &inner_error); - if (inner_error != NULL) { - goto __catch7_g_error; - goto __finally7; + g_spawn_command_line_async ("deja-dup-preferences", &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch6_g_error; + goto __finally6; } } - goto __finally7; - __catch7_g_error: + goto __finally6; + __catch6_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { GtkMessageDialog* dlg; dlg = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("Could not open preferences"), NULL)); @@ -192,10 +242,10 @@ (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); } } - __finally7: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally6: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -247,121 +297,138 @@ static GtkWidget* main_window_setup_menu (MainWindow* self) { - GError * inner_error; + GError * _inner_error_; GtkActionGroup* action_group; GtkAction* action; - GtkAction* _tmp0; - GtkAction* _tmp2; - GtkAction* _tmp1; - GtkAction* _tmp3; - GtkAction* _tmp5; - GtkAction* _tmp4; - GtkAction* _tmp6; - GtkAction* _tmp7; - GtkAction* _tmp8; - GtkAction* _tmp9; - GtkAction* _tmp10; - GtkAction* _tmp11; - GtkAction* _tmp12; - GtkAction* _tmp13; - GtkAction* _tmp14; + GtkAction* _tmp0_; + GtkAction* _tmp2_; + GtkAction* _tmp1_; + GtkAction* _tmp3_; + GtkAction* _tmp5_; + GtkAction* _tmp4_; + GtkAction* _tmp6_; + GtkAction* _tmp7_; + GtkAction* _tmp8_; + GtkAction* _tmp9_; + GtkAction* _tmp10_; + GtkAction* _tmp11_; + GtkAction* _tmp12_; + GtkAction* _tmp13_; + GtkAction* _tmp14_; char* ui; GtkUIManager* manager; - GtkWidget* _tmp15; - GtkWidget* _tmp16; + GtkWidget* _tmp15_; + GtkWidget* _tmp16_; g_return_val_if_fail (self != NULL, NULL); - inner_error = NULL; + _inner_error_ = NULL; action_group = gtk_action_group_new ("actions"); action = gtk_action_new ("FileMenuAction", _ ("_File"), NULL, NULL); gtk_action_group_add_action (action_group, action); - _tmp0 = NULL; - action = (_tmp0 = gtk_action_new ("BackupAction", _ ("_Backup"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp0); - /*action.set("icon-name", "document-send");*/ + _tmp0_ = NULL; + action = (_tmp0_ = gtk_action_new ("BackupAction", _ ("_Backup"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp0_); + g_object_set ((GObject*) action, "icon-name", "deja-dup-backup", NULL); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_backup_gtk_action_activate, self, 0); gtk_action_group_add_action_with_accel (action_group, action, "B"); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->backup_action = (_tmp2 = (_tmp1 = action, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->backup_action == NULL) ? NULL : (self->priv->backup_action = (g_object_unref (self->priv->backup_action), NULL)), _tmp2); - _tmp3 = NULL; - action = (_tmp3 = gtk_action_new ("RestoreAction", _ ("_Restore"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp3); - /*action.set("icon-name", "document-save");*/ + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->backup_action = (_tmp2_ = (_tmp1_ = action, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->backup_action == NULL) ? NULL : (self->priv->backup_action = (g_object_unref (self->priv->backup_action), NULL)), _tmp2_); + _tmp3_ = NULL; + action = (_tmp3_ = gtk_action_new ("RestoreAction", _ ("_Restore"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp3_); + g_object_set ((GObject*) action, "icon-name", "deja-dup-restore", NULL); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_restore_gtk_action_activate, self, 0); gtk_action_group_add_action_with_accel (action_group, action, "R"); - _tmp5 = NULL; - _tmp4 = NULL; - self->priv->restore_action = (_tmp5 = (_tmp4 = action, (_tmp4 == NULL) ? NULL : g_object_ref (_tmp4)), (self->priv->restore_action == NULL) ? NULL : (self->priv->restore_action = (g_object_unref (self->priv->restore_action), NULL)), _tmp5); - _tmp6 = NULL; - action = (_tmp6 = gtk_action_new ("QuitAction", NULL, NULL, GTK_STOCK_QUIT), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp6); + _tmp5_ = NULL; + _tmp4_ = NULL; + self->priv->restore_action = (_tmp5_ = (_tmp4_ = action, (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_)), (self->priv->restore_action == NULL) ? NULL : (self->priv->restore_action = (g_object_unref (self->priv->restore_action), NULL)), _tmp5_); + _tmp6_ = NULL; + action = (_tmp6_ = gtk_action_new ("QuitAction", NULL, NULL, GTK_STOCK_QUIT), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp6_); g_signal_connect (action, "activate", (GCallback) _gtk_main_quit_gtk_action_activate, NULL); gtk_action_group_add_action_with_accel (action_group, action, "Q"); - _tmp7 = NULL; - action = (_tmp7 = gtk_action_new ("EditMenuAction", _ ("_Edit"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp7); + _tmp7_ = NULL; + action = (_tmp7_ = gtk_action_new ("EditMenuAction", _ ("_Edit"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp7_); gtk_action_group_add_action (action_group, action); - _tmp8 = NULL; - action = (_tmp8 = gtk_action_new ("PreferencesAction", NULL, NULL, GTK_STOCK_PREFERENCES), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp8); + _tmp8_ = NULL; + action = (_tmp8_ = gtk_action_new ("PreferencesAction", NULL, NULL, GTK_STOCK_PREFERENCES), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp8_); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_preferences_gtk_action_activate, self, 0); gtk_action_group_add_action (action_group, action); - _tmp9 = NULL; - action = (_tmp9 = gtk_action_new ("HelpMenuAction", _ ("_Help"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp9); + _tmp9_ = NULL; + action = (_tmp9_ = gtk_action_new ("HelpMenuAction", _ ("_Help"), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp9_); gtk_action_group_add_action (action_group, action); - _tmp10 = NULL; - action = (_tmp10 = gtk_action_new ("ContentsAction", _ ("Contents"), NULL, GTK_STOCK_HELP), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp10); + _tmp10_ = NULL; + action = (_tmp10_ = gtk_action_new ("ContentsAction", _ ("_Contents"), NULL, GTK_STOCK_HELP), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp10_); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_contents_gtk_action_activate, self, 0); gtk_action_group_add_action_with_accel (action_group, action, "F1"); - _tmp11 = NULL; - action = (_tmp11 = gtk_action_new ("GetHelpAction", _ ("Get Help _Online..."), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp11); + _tmp11_ = NULL; + action = (_tmp11_ = gtk_action_new ("GetHelpAction", _ ("Get Help _Online..."), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp11_); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_get_help_gtk_action_activate, self, 0); gtk_action_group_add_action (action_group, action); - _tmp12 = NULL; - action = (_tmp12 = gtk_action_new ("TranslateAction", _ ("_Translate This Application..."), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp12); + _tmp12_ = NULL; + action = (_tmp12_ = gtk_action_new ("TranslateAction", _ ("_Translate This Application..."), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp12_); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_translate_gtk_action_activate, self, 0); gtk_action_group_add_action (action_group, action); - _tmp13 = NULL; - action = (_tmp13 = gtk_action_new ("ReportAction", _ ("_Report a Problem..."), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp13); + _tmp13_ = NULL; + action = (_tmp13_ = gtk_action_new ("ReportAction", _ ("_Report a Problem..."), NULL, NULL), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp13_); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_report_gtk_action_activate, self, 0); gtk_action_group_add_action (action_group, action); - _tmp14 = NULL; - action = (_tmp14 = gtk_action_new ("AboutAction", NULL, NULL, GTK_STOCK_ABOUT), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp14); + _tmp14_ = NULL; + action = (_tmp14_ = gtk_action_new ("AboutAction", NULL, NULL, GTK_STOCK_ABOUT), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), _tmp14_); g_signal_connect_object (action, "activate", (GCallback) _main_window_on_about_gtk_action_activate, self, 0); gtk_action_group_add_action (action_group, action); ui = g_strdup ("\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"); manager = gtk_ui_manager_new (); { - gtk_ui_manager_add_ui_from_string (manager, ui, (gssize) strlen (ui), &inner_error); - if (inner_error != NULL) { - goto __catch8_g_error; - goto __finally8; + gtk_ui_manager_add_ui_from_string (manager, ui, (gssize) strlen (ui), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch7_g_error; + goto __finally7; } } - goto __finally8; - __catch8_g_error: + goto __finally7; + __catch7_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_error ("MainWindow.vala:261: Internal error: bad ui string.\n"); + g_error ("MainWindow.vala:253: Internal error: bad ui string.\n"); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally8: - if (inner_error != NULL) { + __finally7: + if (_inner_error_ != NULL) { (action_group == NULL) ? NULL : (action_group = (g_object_unref (action_group), NULL)); (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)); ui = (g_free (ui), NULL); (manager == NULL) ? NULL : (manager = (g_object_unref (manager), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return NULL; } gtk_ui_manager_insert_action_group (manager, action_group, 0); gtk_window_add_accel_group ((GtkWindow*) self, gtk_ui_manager_get_accel_group (manager)); - _tmp15 = NULL; - _tmp16 = NULL; - return (_tmp16 = (_tmp15 = gtk_ui_manager_get_widget (manager, "/ui/menubar"), (_tmp15 == NULL) ? NULL : g_object_ref (_tmp15)), (action_group == NULL) ? NULL : (action_group = (g_object_unref (action_group), NULL)), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), ui = (g_free (ui), NULL), (manager == NULL) ? NULL : (manager = (g_object_unref (manager), NULL)), _tmp16); + _tmp15_ = NULL; + _tmp16_ = NULL; + return (_tmp16_ = (_tmp15_ = gtk_ui_manager_get_widget (manager, "/ui/menubar"), (_tmp15_ == NULL) ? NULL : g_object_ref (_tmp15_)), (action_group == NULL) ? NULL : (action_group = (g_object_unref (action_group), NULL)), (action == NULL) ? NULL : (action = (g_object_unref (action), NULL)), ui = (g_free (ui), NULL), (manager == NULL) ? NULL : (manager = (g_object_unref (manager), NULL)), _tmp16_); } +/* + Déjà Dup + © 2008,2009 Michael Terry + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ MainWindow* main_window_construct (GType object_type) { MainWindow * self; self = g_object_newv (object_type, 0, NULL); @@ -374,25 +441,25 @@ } -static void __lambda0 (GtkButton* b, MainWindow* self) { +static void _lambda5_ (GtkButton* b, MainWindow* self) { g_return_if_fail (b != NULL); main_window_ask_restore (self); } -static void ___lambda0_gtk_button_clicked (GtkButton* _sender, gpointer self) { - __lambda0 (_sender, self); +static void __lambda5__gtk_button_clicked (GtkButton* _sender, gpointer self) { + _lambda5_ (_sender, self); } -static void __lambda1 (GtkButton* b, MainWindow* self) { +static void _lambda6_ (GtkButton* b, MainWindow* self) { g_return_if_fail (b != NULL); main_window_ask_backup (self); } -static void ___lambda1_gtk_button_clicked (GtkButton* _sender, gpointer self) { - __lambda1 (_sender, self); +static void __lambda6__gtk_button_clicked (GtkButton* _sender, gpointer self) { + _lambda6_ (_sender, self); } @@ -401,7 +468,7 @@ } -static void _gtk_main_quit_gtk_object_destroy (MainWindow* _sender, gpointer self) { +static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self) { gtk_main_quit (); } @@ -411,12 +478,12 @@ MainWindowClass * klass; GObjectClass * parent_class; MainWindow * self; - GError * inner_error; + GError * _inner_error_; klass = MAIN_WINDOW_CLASS (g_type_class_peek (TYPE_MAIN_WINDOW)); parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); obj = parent_class->constructor (type, n_construct_properties, construct_properties); self = MAIN_WINDOW (obj); - inner_error = NULL; + _inner_error_ = NULL; { GtkVBox* vb; GtkAlignment* restore_align; @@ -430,45 +497,42 @@ GtkLabel* backup_label; GtkVBox* backup_vbox; GtkHBox* hbox; - GtkWidget* _tmp0; + GtkWidget* _tmp0_; vb = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0)); + gtk_window_set_title ((GtkWindow*) self, _ ("Déjà Dup")); restore_align = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new (0.5f, 0.5f, 0.0f, 0.0f)); restore_button = g_object_ref_sink ((GtkButton*) gtk_button_new ()); g_object_set ((GObject*) restore_button, "child", restore_align, NULL); restore_icon = g_object_ref_sink ((GtkImage*) gtk_image_new ()); { - char* filename; GdkPixbuf* restore_pix; - filename = get_restore_icon_filename (); - restore_pix = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, &inner_error); - if (inner_error != NULL) { - filename = (g_free (filename), NULL); - goto __catch9_g_error; - goto __finally9; + restore_pix = hacks_get_icon_at_size ("deja-dup-restore", 128, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch8_g_error; + goto __finally8; } g_object_set ((GObject*) restore_icon, "pixbuf", restore_pix, NULL); - filename = (g_free (filename), NULL); (restore_pix == NULL) ? NULL : (restore_pix = (g_object_unref (restore_pix), NULL)); } - goto __finally9; - __catch9_g_error: + goto __finally8; + __catch8_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("MainWindow.vala:48: %s\n", e->message); + g_warning ("MainWindow.vala:41: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally9: - if (inner_error != NULL) { + __finally8: + if (_inner_error_ != NULL) { (vb == NULL) ? NULL : (vb = (g_object_unref (vb), NULL)); (restore_align == NULL) ? NULL : (restore_align = (g_object_unref (restore_align), NULL)); (restore_button == NULL) ? NULL : (restore_button = (g_object_unref (restore_button), NULL)); (restore_icon == NULL) ? NULL : (restore_icon = (g_object_unref (restore_icon), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); } restore_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("_Restore"))); g_object_set ((GObject*) restore_label, "use-underline", TRUE, "mnemonic-widget", restore_button, NULL); @@ -480,32 +544,28 @@ g_object_set ((GObject*) backup_button, "child", backup_align, NULL); backup_icon = g_object_ref_sink ((GtkImage*) gtk_image_new ()); { - char* filename; GdkPixbuf* backup_pix; - filename = get_backup_icon_filename (); - backup_pix = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, &inner_error); - if (inner_error != NULL) { - filename = (g_free (filename), NULL); - goto __catch10_g_error; - goto __finally10; + backup_pix = hacks_get_icon_at_size ("deja-dup-backup", 128, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch9_g_error; + goto __finally9; } g_object_set ((GObject*) backup_icon, "pixbuf", backup_pix, NULL); - filename = (g_free (filename), NULL); (backup_pix == NULL) ? NULL : (backup_pix = (g_object_unref (backup_pix), NULL)); } - goto __finally10; - __catch10_g_error: + goto __finally9; + __catch9_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("MainWindow.vala:74: %s\n", e->message); + g_warning ("MainWindow.vala:66: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally10: - if (inner_error != NULL) { + __finally9: + if (_inner_error_ != NULL) { (vb == NULL) ? NULL : (vb = (g_object_unref (vb), NULL)); (restore_align == NULL) ? NULL : (restore_align = (g_object_unref (restore_align), NULL)); (restore_button == NULL) ? NULL : (restore_button = (g_object_unref (restore_button), NULL)); @@ -515,8 +575,8 @@ (backup_align == NULL) ? NULL : (backup_align = (g_object_unref (backup_align), NULL)); (backup_button == NULL) ? NULL : (backup_button = (g_object_unref (backup_button), NULL)); (backup_icon == NULL) ? NULL : (backup_icon = (g_object_unref (backup_icon), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); } backup_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("_Backup"))); g_object_set ((GObject*) backup_label, "use-underline", TRUE, "mnemonic-widget", backup_button, NULL); @@ -525,11 +585,11 @@ gtk_container_add ((GtkContainer*) backup_align, (GtkWidget*) backup_vbox); hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (TRUE, 12)); g_object_set ((GObject*) hbox, "border-width", 12, "child", restore_button, "child", backup_button, NULL); - g_signal_connect (restore_button, "clicked", (GCallback) ___lambda0_gtk_button_clicked, self); - g_signal_connect (backup_button, "clicked", (GCallback) ___lambda1_gtk_button_clicked, self); - _tmp0 = NULL; - gtk_box_pack_start ((GtkBox*) vb, _tmp0 = main_window_setup_menu (self), FALSE, FALSE, (guint) 0); - (_tmp0 == NULL) ? NULL : (_tmp0 = (g_object_unref (_tmp0), NULL)); + g_signal_connect (restore_button, "clicked", (GCallback) __lambda5__gtk_button_clicked, self); + g_signal_connect (backup_button, "clicked", (GCallback) __lambda6__gtk_button_clicked, self); + _tmp0_ = NULL; + gtk_box_pack_start ((GtkBox*) vb, _tmp0_ = main_window_setup_menu (self), FALSE, FALSE, (guint) 0); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)); gtk_box_pack_start ((GtkBox*) vb, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0); gtk_widget_grab_focus ((GtkWidget*) backup_button); gtk_container_add ((GtkContainer*) self, (GtkWidget*) vb); diff -Nru deja-dup-7.4/deja-dup/MainWindow.h deja-dup-10.0/deja-dup/MainWindow.h --- deja-dup-7.4/deja-dup/MainWindow.h 2009-01-29 15:50:21.000000000 -0500 +++ deja-dup-10.0/deja-dup/MainWindow.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,45 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __MAINWINDOW_H__ -#define __MAINWINDOW_H__ - -#include -#include -#include -#include -#include - -G_BEGIN_DECLS - - -#define TYPE_MAIN_WINDOW (main_window_get_type ()) -#define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow)) -#define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass)) -#define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW)) -#define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW)) -#define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass)) - -typedef struct _MainWindow MainWindow; -typedef struct _MainWindowClass MainWindowClass; -typedef struct _MainWindowPrivate MainWindowPrivate; - -struct _MainWindow { - GtkWindow parent_instance; - MainWindowPrivate * priv; -}; - -struct _MainWindowClass { - GtkWindowClass parent_class; -}; - - -char* get_restore_icon_filename (void); -char* get_backup_icon_filename (void); -MainWindow* main_window_construct (GType object_type); -MainWindow* main_window_new (void); -GType main_window_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/deja-dup/MainWindow.vala deja-dup-10.0/deja-dup/MainWindow.vala --- deja-dup-7.4/deja-dup/MainWindow.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/deja-dup/MainWindow.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry + © 2008,2009 Michael Terry 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 @@ -19,20 +19,14 @@ using GLib; -public string get_restore_icon_filename() { - return Path.build_filename(Config.PKG_DATA_DIR, "document-save.svg"); -} - -public string get_backup_icon_filename() { - return Path.build_filename(Config.PKG_DATA_DIR, "document-send.svg"); -} - public class MainWindow : Gtk.Window { construct { Gtk.VBox vb = new Gtk.VBox (false, 0); + this.title = _("Déjà Dup"); + var restore_align = new Gtk.Alignment(0.5f, 0.5f, 0.0f, 0.0f); var restore_button = new Gtk.Button(); @@ -40,8 +34,7 @@ var restore_icon = new Gtk.Image(); try { - var filename = get_restore_icon_filename(); - var restore_pix = new Gdk.Pixbuf.from_file_at_size(filename, 128, 128); + var restore_pix = hacks_get_icon_at_size("deja-dup-restore", 128); restore_icon.set("pixbuf", restore_pix); } catch (Error e) { @@ -66,8 +59,7 @@ var backup_icon = new Gtk.Image(); try { - var filename = get_backup_icon_filename(); - var backup_pix = new Gdk.Pixbuf.from_file_at_size(filename, 128, 128); + var backup_pix = hacks_get_icon_at_size("deja-dup-backup", 128); backup_icon.set("pixbuf", backup_pix); } catch (Error e) { @@ -90,8 +82,8 @@ "child", restore_button, "child", backup_button); - restore_button.clicked += (b) => {ask_restore();}; - backup_button.clicked += (b) => {ask_backup();}; + restore_button.clicked.connect((b) => {ask_restore();}); + backup_button.clicked.connect((b) => {ask_backup();}); vb.pack_start (setup_menu (), false, false, 0); vb.pack_start (hbox, true, true, 0); @@ -102,7 +94,7 @@ Idle.add(check_duplicity_version); - destroy += Gtk.main_quit; + destroy.connect(Gtk.main_quit); } bool check_duplicity_version() @@ -185,49 +177,49 @@ action_group.add_action (action); action = new Gtk.Action ("BackupAction", _("_Backup"), null, null); - //action.set("icon-name", "document-send"); - action.activate += on_backup; + action.set("icon-name", "deja-dup-backup"); + action.activate.connect(on_backup); action_group.add_action_with_accel (action, "B"); this.backup_action = action; action = new Gtk.Action ("RestoreAction", _("_Restore"), null, null); - //action.set("icon-name", "document-save"); - action.activate += on_restore; + action.set("icon-name", "deja-dup-restore"); + action.activate.connect(on_restore); action_group.add_action_with_accel (action, "R"); this.restore_action = action; action = new Gtk.Action ("QuitAction", null, null, Gtk.STOCK_QUIT); - action.activate += Gtk.main_quit; + action.activate.connect(Gtk.main_quit); action_group.add_action_with_accel (action, "Q"); action = new Gtk.Action ("EditMenuAction", _("_Edit"), null, null); action_group.add_action (action); action = new Gtk.Action ("PreferencesAction", null, null, Gtk.STOCK_PREFERENCES); - action.activate += on_preferences; + action.activate.connect(on_preferences); action_group.add_action (action); action = new Gtk.Action ("HelpMenuAction", _("_Help"), null, null); action_group.add_action (action); - action = new Gtk.Action ("ContentsAction", _("Contents"), null, Gtk.STOCK_HELP); - action.activate += on_contents; + action = new Gtk.Action ("ContentsAction", _("_Contents"), null, Gtk.STOCK_HELP); + action.activate.connect(on_contents); action_group.add_action_with_accel (action, "F1"); action = new Gtk.Action ("GetHelpAction", _("Get Help _Online..."), null, null); - action.activate += on_get_help; + action.activate.connect(on_get_help); action_group.add_action (action); action = new Gtk.Action ("TranslateAction", _("_Translate This Application..."), null, null); - action.activate += on_translate; + action.activate.connect(on_translate); action_group.add_action (action); action = new Gtk.Action ("ReportAction", _("_Report a Problem..."), null, null); - action.activate += on_report; + action.activate.connect(on_report); action_group.add_action (action); action = new Gtk.Action ("AboutAction", null, null, Gtk.STOCK_ABOUT); - action.activate += on_about; + action.activate.connect(on_about); action_group.add_action (action); var ui = """ diff -Nru deja-dup-7.4/deja-dup/Makefile.am deja-dup-10.0/deja-dup/Makefile.am --- deja-dup-7.4/deja-dup/Makefile.am 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/deja-dup/Makefile.am 2009-06-02 17:48:48.000000000 -0400 @@ -1,4 +1,4 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- bin_PROGRAMS = deja-dup @@ -12,6 +12,7 @@ --pkg gnome-keyring-1 \ --pkg libdeja-dup \ --pkg unix \ + --pkg hacks \ --pkg config AM_CFLAGS = \ @@ -32,7 +33,6 @@ deja_dup_SOURCES = \ $(deja_dup_VALASOURCES:.vala=.c) \ - $(deja_dup_VALASOURCES:.vala=.h) \ $(deja_dup_VALASOURCES) deja-dup.stamp: $(deja_dup_VALASOURCES) diff -Nru deja-dup-7.4/deja-dup/Makefile.in deja-dup-10.0/deja-dup/Makefile.in --- deja-dup-7.4/deja-dup/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/deja-dup/Makefile.in 2009-06-02 17:51:12.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -59,8 +59,7 @@ am__objects_1 = AssistantBackup.$(OBJEXT) AssistantOperation.$(OBJEXT) \ AssistantRestore.$(OBJEXT) MainWindow.$(OBJEXT) main.$(OBJEXT) am__objects_2 = -am_deja_dup_OBJECTS = $(am__objects_1) $(am__objects_2) \ - $(am__objects_2) +am_deja_dup_OBJECTS = $(am__objects_1) $(am__objects_2) deja_dup_OBJECTS = $(am_deja_dup_OBJECTS) am__DEPENDENCIES_1 = deja_dup_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -129,29 +128,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -179,6 +159,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -191,6 +172,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -254,6 +236,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ VALA_CFLAGS = \ @@ -266,6 +249,7 @@ --pkg gnome-keyring-1 \ --pkg libdeja-dup \ --pkg unix \ + --pkg hacks \ --pkg config AM_CFLAGS = \ @@ -286,7 +270,6 @@ deja_dup_SOURCES = \ $(deja_dup_VALASOURCES:.vala=.c) \ - $(deja_dup_VALASOURCES:.vala=.h) \ $(deja_dup_VALASOURCES) deja_dup_LDADD = $(DUP_LIBS) @INTLLIBS@ $(top_builddir)/libdeja-dup/libdeja-dup.la @@ -305,8 +288,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -406,7 +389,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS diff -Nru deja-dup-7.4/gnome-doc-utils.make deja-dup-10.0/gnome-doc-utils.make --- deja-dup-7.4/gnome-doc-utils.make 2009-01-29 15:48:54.000000000 -0500 +++ deja-dup-10.0/gnome-doc-utils.make 2009-06-02 17:48:47.000000000 -0400 @@ -504,14 +504,13 @@ install-doc-figs: @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \ for lc in C $(_DOC_REAL_LINGUAS); do \ + figsymlink=false; \ if test -f "$$lc/$$fig"; then \ figfile="$$lc/$$fig"; \ elif test -f "$(srcdir)/$$lc/$$fig"; then \ figfile="$(srcdir)/$$lc/$$fig"; \ - elif test -f "C/$$fig"; then \ - figfile="C/$$fig"; \ else \ - figfile="$(srcdir)/C/$$fig"; \ + figsymlink=true; \ fi; \ figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ figdir="$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$figdir"; \ @@ -520,8 +519,13 @@ $(mkinstalldirs) "$$figdir"; \ fi; \ figbase=`echo $$fig | sed -e 's/^.*\///'`; \ - echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ - $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + if $$figsymlink; then \ + echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \ + ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \ + else \ + echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ + $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + fi; \ done; \ done diff -Nru deja-dup-7.4/help/ar/ar.po deja-dup-10.0/help/ar/ar.po --- deja-dup-7.4/help/ar/ar.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ar/ar.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,867 @@ +# Arabic translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-03-21 22:28+0000\n" +"Last-Translator: Amr Hassan \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " +"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" +"X-Launchpad-Export-Date: 2009-03-29 14:20+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +msgid "Local Folders" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Backup your files" +#~ msgstr "عمل نسخة احتياطية من الملفات" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "ديجا-دوب" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "مراقب ديجا-دوب" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Amr Hassan https://launchpad.net/~amr-hassan" diff -Nru deja-dup-7.4/help/ar/deja-dup.1 deja-dup-10.0/help/ar/deja-dup.1 --- deja-dup-7.4/help/ar/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ar/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/ar/deja-dup-applet.1 deja-dup-10.0/help/ar/deja-dup-applet.1 --- deja-dup-7.4/help/ar/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ar/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/ar/deja-dup-monitor.1 deja-dup-10.0/help/ar/deja-dup-monitor.1 --- deja-dup-7.4/help/ar/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ar/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/ar/deja-dup-preferences.1 deja-dup-10.0/help/ar/deja-dup-preferences.1 --- deja-dup-7.4/help/ar/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ar/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/ar/deja-dup.xml deja-dup-10.0/help/ar/deja-dup.xml --- deja-dup-7.4/help/ar/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ar/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="ar"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/C/deja-dup.1 deja-dup-10.0/help/C/deja-dup.1 --- deja-dup-7.4/help/C/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/C/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,31 @@ +.TH deja-dup 1 "2009-06-05" deja-dup "USER COMMANDS" +.SH NAME +deja-dup \- backup your data +.SH SYNOPSIS +.B deja-dup +.RI [OPTIONS] + +.B deja-dup +.RI --restore +.RI [FILES] +.SH DESCRIPTION +deja-dup is a graphical frontend to +.BR duplicity (1). +It can backup and restore using a local folder or a remote server, including Amazon S3, +as well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH SEE ALSO +.BR duplicity (1) diff -Nru deja-dup-7.4/help/C/deja-dup-applet.1 deja-dup-10.0/help/C/deja-dup-applet.1 --- deja-dup-7.4/help/C/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/C/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,24 @@ +.TH deja-dup-applet 1 "2009-06-05" deja-dup "USER COMMANDS" +.SH NAME +deja-dup-applet \- backup your data +.SH SYNOPSIS +.B deja-dup-applet +.RI [OPTIONS] +.SH DESCRIPTION +deja-dup-applet is a notification applet that carries out a scheuduled backup. +It is usually started automatically by +.BR deja-dup-monitor (1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH SEE ALSO +.BR deja-dup (1), +.BR deja-dup-monitor (1) diff -Nru deja-dup-7.4/help/C/deja-dup-monitor.1 deja-dup-10.0/help/C/deja-dup-monitor.1 --- deja-dup-7.4/help/C/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/C/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.TH deja-dup-monitor 1 "2009-06-05" deja-dup "USER COMMANDS" +.SH NAME +deja-dup-monitor \- backup your data +.SH SYNOPSIS +.B deja-dup-monitor +.RI [OPTIONS] +.SH DESCRIPTION +deja-dup-monitor is a session daemon that handles scheduled backups. +It is started by default whenever a user logs in. +When a scheduled backup is due, it starts +.BR deja-dup-applet (1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH SEE ALSO +.BR deja-dup (1), +.BR deja-dup-applet (1) diff -Nru deja-dup-7.4/help/C/deja-dup-preferences.1 deja-dup-10.0/help/C/deja-dup-preferences.1 --- deja-dup-7.4/help/C/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/C/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,18 @@ +.TH deja-dup-preferences 1 "2009-06-05" deja-dup "USER COMMANDS" +.SH NAME +deja-dup-preferences \- backup your data +.SH SYNOPSIS +.B deja-dup-preferences +.RI [OPTIONS] +.SH DESCRIPTION +deja-dup-preferences is the preferences dialog for +.BR deja-dup (1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH SEE ALSO +.BR deja-dup (1) diff -Nru deja-dup-7.4/help/C/deja-dup.xml deja-dup-10.0/help/C/deja-dup.xml --- deja-dup-7.4/help/C/deja-dup.xml 2009-02-11 21:16:24.000000000 -0500 +++ deja-dup-10.0/help/C/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -1,37 +1,20 @@ - - - Déjà Dup"> - - - - -]> - -
- - &app; Manual + + +
+ + <application>Déjà Dup</application> Manual - &app; is a simple backup utility. + Déjà Dup is a simple backup utility. - - 2009 - Michael Terry - - - - - &app; Administrators - - - + + Déjà Dup Administrators + + + + Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License (GPL), Version 3 or any later version published by the Free Software Foundation. You can find a copy of the GPL at this link or in the file COPYING distributed with this manual. + This manual 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 General Public License for more details. + @@ -44,371 +27,174 @@ - - &appname; Manual V&manrevision; - &date; - - Michael Terry - mike@mterry.name - - &app; Administrators - - - + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà Dup application or this manual, visit the Déjà Dup project page. + + - This manual describes version &appversion; of &appname;. - - - Feedback - To report a bug or make a suggestion regarding the &app; application or - this manual, visit the - &app; project page. - - - - - - - &appname; - - - deja-dup + + Déjà Dup + + + deja-dup - - - - - Introduction - &app; is a simple backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend. - &app; provides the following features: - - - Support for the following backup locations: - - - Amazon S3 - - - SSH server - - - Local folder - - - - - Automatically schedules backups at regular intervals. - + + Introduction + Déjà Dup is a simple backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. - - Getting Started + + Getting Started - Starting &app; - You can start &app; in the following ways: - + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose FileBackup. Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is your first time using Déjà Dup, you will be asked to choose a backup location and which files to include or exclude. On the Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose FileRestore. Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is your first time using Déjà Dup, you will be asked to choose a backup location. Then choose which backup date to restore from and where to put the restored files. You can either restore them to their original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose EditPreferences. - Applications menu + Backup location + + Use this drop-down list box to specify the backup location that Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small fee per gigabyte, they hold your data for you. This is the recommended default because it is an easy way to keep your data offsite (meaning out of your home: in case of disaster or theft, your data will still be safe). You can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a server not listed, select Other... and click Connect to Server.... This will let you enter the server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 + backup location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for S3. It is like a username for logging into S3. If left empty, you will be prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup location has been selected. + If you have multiple backups, you may want to keep them separated in multiple folders. Use this option to enter a path on the S3 service in which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add or Remove buttons to modify the list. If you are only interested in backing up your own data, the default of Home Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add or Remove buttons to modify the list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files - Choose - - Accessories - &appname; Backup Utility - . + Encrypting your backup files is recommended to keep your data safe. If you don't have exclusive physical control of your backup location, or if it is stolen, an encrypted backup prevents others from looking at your personal data. + If on, you will be prompted for a password. Keep this password safe, you will need it to restore your data. + Default: On. - Command line + Automatically backup on a regular schedule - To start &app; from a command line, type the following command, - then press Return: - - deja-dup - + Turn this option on to have Déjà Dup automatically backup for you. This is recommended so that you don't forget to backup. Backups are more useful the more recently you have made them, so it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. - - - - When You Start &app; - When you start &app;, the following window is displayed. - - -
- &app; Start Up Window - - - - - - Shows &app; main window. Contains titlebar, menubar, and display area. - Menubar contains File, Edit, and Help menus. - - - -
- - -
- - - Backing Up - To backup, choose - - File - Backup - . Or press the Backup button on - the main window. - -
- Backup Window - - - - - - Shows initial backup window. - - - -
- - The Backup dialog is displayed. Click - Apply to start the backup. A progress bar will appear. If an - error occurs, the dialog will display an error message. -
- - - Restoring - To restore, choose - - File - Restore - . Or press the Restore button on - the main window. - -
- Restore Window - - - - - - Shows initial restore window. - - - -
- - The Restore dialog is displayed. You first must - pick where to put the restored files. You can either restore them to their - original locations or put them under a folder of your choice. - After clicking Forward, you can review your - restore options, then click Apply to start the restore. - A progress bar will appear. If an error occurs, the dialog will display an - error message. -
- - - Preferences - To configure &app;, choose - - Edit - Preferences - . - -
- &app; Preferences - - - - - - Shows &app; preferences window. - - - -
- - - - - Backup location - - Use this drop-down list box to specify the - backup location that - &app; uses when backing up or restoring. Select one of the following - options: - - - - Amazon S3 - This backup location uses the S3 storage service from - Amazon. For a small fee per gigabyte, they hold your data for you. - This is the recommended default because it is an easy way to keep - your data offsite (meaning out of your home: in case of disaster or - theft, your data will still be safe). You can sign up - online. - - - This service costs money. Read their rates carefully before - using it. - - - - - Local Folder - This is the backup location to pick if you have an external hard - drive that you want to use for backups. - - - - SSH - If you have access to a server running SSH (a protocol - that lets remote users log in), pick this location. Web hosts or - data servers often provide SSH access. - - - Default: - Amazon S3. - - - - S3 Access Key ID - - - This option only appears if the Amazon S3 - backup location has been selected. - - This is your Access Key ID that Amazon gave you when you signed up - for S3. It is like a username for logging into S3. If left empty, you - will be prompted for it as you backup or restore. - - - - Folder - - - This option only appears if the Amazon S3 - backup location has been selected. - - If you have multiple backups, you may want to keep them separated - in multiple folders. Use this option to enter a path on the S3 service - in which to put your files. - - - - Folder - - - This option only appears if the Local Folder - backup location has been selected. - - Choose the folder into which you want to store the backup files. - This often will be an external drive that you plug in. - - - - Username - - - This option only appears if the SSH - backup location has been selected. - - Enter the username used to log in to the server. - - - - Server - - - This option only appears if the SSH - backup location has been selected. - - Enter the address of the server to use. This can either - be an IP address (all numbers) or a domain name. - - - - Port - - - This option only appears if the SSH - backup location has been selected. - - Enter the SSH port for the server. This is almost always best left - blank or as the default 22. - - - - Directory - - - This option only appears if the SSH - backup location has been selected. - - Enter the directory to store backup files on the server. - - - - Include - - Select a list of directories to backup. Press the Add - or Remove buttons to modify the list. - If you are only interested in backing up your own data, the default of - Home Folder is sufficient. - - - - Exclude - - Select a list of directories to not backup. Press the Add - or Remove buttons to modify the list. - This list takes precedence over the list of included directories. - Some of your data may be large and not very important to you. In that - case, you can save yourself some time and space by not backing them up. - - - - Encrypt backup files - - Encrypting your backup files is recommended to keep your data safe. - If you don't have exclusive physical control of your backup location, or - if it is stolen, an encrypted backup prevents others from looking at your - personal data. - If on, you will be prompted for a password. Keep this - password safe, you will need it to restore your data. - Default: On. - - - - Automatically backup on a regular schedule - - Turn this option on to have &app; automatically backup for you. This - is recommended so that you don't forget to backup. Backups are more useful - the more recently you have made them, so it is important to regularly do so. - - Default: Off. - - - - How often to backup - - Choose a schedule for automatic backups. - Default: Weekly. - - - -
Binary files /tmp/YxZQt7hp4j/deja-dup-7.4/help/C/figures/backup.png and /tmp/HllF5MnMC4/deja-dup-10.0/help/C/figures/backup.png differ Binary files /tmp/YxZQt7hp4j/deja-dup-7.4/help/C/figures/preferences.png and /tmp/HllF5MnMC4/deja-dup-10.0/help/C/figures/preferences.png differ Binary files /tmp/YxZQt7hp4j/deja-dup-7.4/help/C/figures/restore.png and /tmp/HllF5MnMC4/deja-dup-10.0/help/C/figures/restore.png differ Binary files /tmp/YxZQt7hp4j/deja-dup-7.4/help/C/figures/start_window.png and /tmp/HllF5MnMC4/deja-dup-10.0/help/C/figures/start_window.png differ diff -Nru deja-dup-7.4/help/C/legal.xml deja-dup-10.0/help/C/legal.xml --- deja-dup-7.4/help/C/legal.xml 2009-02-11 21:16:24.000000000 -0500 +++ deja-dup-10.0/help/C/legal.xml 1969-12-31 19:00:00.000000000 -0500 @@ -1,58 +0,0 @@ - - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation - License (GFDL), Version 1.1 or any later version published - by the Free Software Foundation with no Invariant Sections, - no Front-Cover Texts, and no Back-Cover Texts. You can find - a copy of the GFDL at this link or in the file COPYING-DOCS - distributed with this manual. - - - - DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED - UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE - WITH THE FURTHER UNDERSTANDING THAT: - - - - DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, - WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR - IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES - THAT THE DOCUMENT OR MODIFIED VERSION OF THE - DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR - A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE - RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE - OF THE DOCUMENT OR MODIFIED VERSION OF THE - DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR - MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, - YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY - CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY - SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER - OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS - LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED - VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER - EXCEPT UNDER THIS DISCLAIMER; AND - UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL - THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE), - CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, - INITIAL WRITER, ANY CONTRIBUTOR, OR ANY - DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION - OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH - PARTIES, BE LIABLE TO ANY PERSON FOR ANY - DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR - CONSEQUENTIAL DAMAGES OF ANY CHARACTER - INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS - OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR - MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR - LOSSES ARISING OUT OF OR RELATING TO USE OF THE - DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, - EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF - THE POSSIBILITY OF SUCH DAMAGES. - - - - - - diff -Nru deja-dup-7.4/help/da/da.po deja-dup-10.0/help/da/da.po --- deja-dup-7.4/help/da/da.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/da/da.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,872 @@ +# Danish translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-03-11 14:51+0000\n" +"Last-Translator: Peter Skov \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-03-29 14:20+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "Planlæg backups med faste mellemrum" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +msgid "Local Folders" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Backup your files" +#~ msgstr "Backup dine filer" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Déjà Dup Backup Værktøj" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Déjà Dup Overvågning" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Mappe i dit system som skal indeholde backup filerne" + +#~ msgid "How often to periodically backup" +#~ msgstr "Hvor ofte backup skal finde sted" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Peter Skov https://launchpad.net/~a0peter" diff -Nru deja-dup-7.4/help/da/deja-dup.1 deja-dup-10.0/help/da/deja-dup.1 --- deja-dup-7.4/help/da/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/da/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/da/deja-dup-applet.1 deja-dup-10.0/help/da/deja-dup-applet.1 --- deja-dup-7.4/help/da/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/da/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/da/deja-dup-monitor.1 deja-dup-10.0/help/da/deja-dup-monitor.1 --- deja-dup-7.4/help/da/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/da/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/da/deja-dup-preferences.1 deja-dup-10.0/help/da/deja-dup-preferences.1 --- deja-dup-7.4/help/da/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/da/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/da/deja-dup.xml deja-dup-10.0/help/da/deja-dup.xml --- deja-dup-7.4/help/da/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/da/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="da"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/de/deja-dup.1 deja-dup-10.0/help/de/deja-dup.1 --- deja-dup-7.4/help/de/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/de/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- datensicherung +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/de/deja-dup-applet.1 deja-dup-10.0/help/de/deja-dup-applet.1 --- deja-dup-7.4/help/de/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/de/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/de/deja-dup-monitor.1 deja-dup-10.0/help/de/deja-dup-monitor.1 --- deja-dup-7.4/help/de/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/de/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/de/deja-dup-preferences.1 deja-dup-10.0/help/de/deja-dup-preferences.1 --- deja-dup-7.4/help/de/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/de/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/de/deja-dup.xml deja-dup-10.0/help/de/deja-dup.xml --- deja-dup-7.4/help/de/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/de/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ + + +
+ + <application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Wiederherstellung von + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/de/de.po deja-dup-10.0/help/de/de.po --- deja-dup-7.4/help/de/de.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/de/de.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1335 @@ +# German translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-05-04 19:01+0000\n" +"Last-Translator: Maximilian Blömer \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-05-06 00:00+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "deja-dup" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "%DATE%" + +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "USER COMMANDS" + +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "NAME" + +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "deja-dup - datensicherung" + +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "SYNOPSIS" + +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "B [OPTIONS]" + +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "B --restore [FILES]" + +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPTION" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"Die Veröffentlichung dieses Programmes erfolgt in der Hoffnung, dass es " +"Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die " +"implizierte Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN " +"BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "Wiederherstellung von" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Lokaler Ordner" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "SSH Server" + +#~ msgid "Backup your files" +#~ msgstr "Datensicherung" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Déjà Dup Datensicherung" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Déjà Dup Monitor" + +#~ msgid "Schedule backups at regular intervals" +#~ msgstr "Datensicherungen in regelmäßigen Abständen durchführen" + +#~ msgid "Amazon S3 Access Key ID" +#~ msgstr "Amazon S3 Zugangsschlüssel ID" + +#~ msgid "" +#~ "An optional folder name to store files in. This folder will be created in " +#~ "the chosen bucket." +#~ msgstr "" +#~ "Optionaler Name eines Ordners, in dem die Dateien gespeichert werden. Der " +#~ "Ordner wird im gewählten S3 bucket erstellt." + +#~ msgid "Directories not to backup" +#~ msgstr "Ordner, die nicht gesichert werden sollen" + +#~ msgid "Directories to backup" +#~ msgstr "Ordner, die gesichert werden sollen" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Position der Datensicherungsdateien" + +#~ msgid "How often to periodically backup" +#~ msgstr "Datensicherung regelmäßig ausführen" + +#~ msgid "Local backup location" +#~ msgstr "lokaler Ordner für Datensicherung" + +#~ msgid "SSH directory" +#~ msgstr "SSH Ordner" + +#~ msgid "SSH port" +#~ msgstr "SSH Port" + +#~ msgid "SSH username" +#~ msgstr "SSH Benutzername" + +#~ msgid "The Amazon S3 bucket name to use" +#~ msgstr "der Amazon S3 bucket name, der genutzt werden soll" + +#~ msgid "The Amazon S3 folder" +#~ msgstr "Ordner auf Amazon S3" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "der Ordner, der für SSH-Verbindungen genutzt werden soll" + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "Déjà Dup wurde zuletzt ausgeführt am" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "Déjà Dup wurde zuletzt ausgeführt am, im ISO 8601-Format" + +#~ msgid "The number of days between backups." +#~ msgstr "Anzahl der Tage zwischen den Datensicherungen" + +#~ msgid "The port used for SSH connections." +#~ msgstr "der Port, der für SSH-Verbindungen verwendet wird" + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Das für Datensicherungen verwendete Protokoll. Gültige Werte sind \"s3\", " +#~ "\"file\" oder \"ssh\"." + +#~ msgid "The server used for SSH connections." +#~ msgstr "Der für SSH-Verbindungen verwendete Server." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Der für SSH-Verbindungen verwendete Benutzer." + +#~ msgid "" +#~ "This list of directories will be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory." +#~ msgstr "" +#~ "Diese Liste von Ordnern wird gesichert. Die reservierten Werte $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH und $VIDEO werden als Spezialordner des Benutzers " +#~ "erkannt. Relative Einträge sind relativ zu den Benutzerverzeichnis." + +#~ msgid "" +#~ "This list of directories will not be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory. " +#~ "This list takes precedence over the include list." +#~ msgstr "" +#~ "Diese Liste von Ordnern wird nicht gesichert. Die reservierten Werte " +#~ "$HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH und $VIDEO werden als Spezialordner des Benutzers " +#~ "erkannt. Relative Einträge sind relativ zu den Benutzerverzeichnis. Diese " +#~ "Liste hat Vorrang gegenüber der Datensicherungsliste." + +#~ msgid "Type of location to store backup" +#~ msgstr "Art des Datensicherungzieles" + +#~ msgid "Whether to automatically backup on a regular schedule." +#~ msgstr "" +#~ "Ob eine Datensicherung automatisch regelmäßig durchgeführt werden soll." + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Ob die Datensicherungen verschlüsselt werden sollen." + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "Ob die Datensicherungsdateien im Zielordner verschlüsselt werden sollen. " +#~ "Es wird dringend empfohlen, diese Option aktiviert zu belassen." + +#~ msgid "Whether to periodically backup" +#~ msgstr "Ob die Datensicherung regelmäßig durchgeführt werden soll." + +#~ msgid "" +#~ "Which Amazon S3 bucket to store files in. This does not need to exist " +#~ "already. Only legal hostname strings are valid." +#~ msgstr "" +#~ "In welchem Amazon S3 bucket die Dateien gespeichert werden sollen. Der " +#~ "Ordner muss nicht bereits existieren. Nur korrekte Servernamen sind " +#~ "gültig." + +#~ msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +#~ msgstr "" +#~ "Die Amazon S3 Zugangsschlüsselkennung. Dies fungiert als S3 Benutzername." + +#~ msgid "Show version" +#~ msgstr "Version anzeigen" + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Déjà Dup Kontrolleisten-Icon" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% abgeschlossen" + +#~ msgid "Backup about to start" +#~ msgstr "Datensicherung wird gleich beginnen" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "Eine anstehende Datensicherung wird in Kürze starten. Sie können die " +#~ "Datensicherung verschieben oder überspringen." + +#~ msgid "Skip Backup" +#~ msgstr "Datensicherung überspringen" + +#~ msgid "Backup Later" +#~ msgstr "Datensicherung verschieben" + +#~ msgid "Encryption password needed" +#~ msgstr "Verschlüsselungspasswort benötigt" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "" +#~ "Bitte geben Sie das Verschlüsselungspasswort für die " +#~ "Datensicherungsdateien ein." + +#~ msgid "Enter" +#~ msgstr "Eingabe" + +#~ msgid "Server password needed" +#~ msgstr "Serverpasswort benötigt" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Bitte geben Sie das Serverpasswort für Ihre Datensicherung ein." + +#~ msgid "Backup error occurred" +#~ msgstr "Fehler bei der Datensicherung aufgetreten" + +#~ msgid "Rerun" +#~ msgstr "Wiederholung" + +#~ msgid "Backup _Later" +#~ msgstr "Daten später sichern" + +#~ msgid "_Skip Backup" +#~ msgstr "Datensicherung überspringen" + +#~ msgid "Could not open preferences" +#~ msgstr "Einstellungen konnten nicht aufgerufen werden" + +#~ msgid "Backup" +#~ msgstr "Datensicherung" + +#~ msgid "Backup location:" +#~ msgstr "Sicherungs-Ort:" + +#~ msgid "Backing up" +#~ msgstr "Sichere Daten" + +#~ msgid "Unknown" +#~ msgstr "Unbekannt" + +#~ msgid "Backup Failed" +#~ msgstr "Datensicherung fehlgeschlagen" + +#~ msgid "Backup Finished" +#~ msgstr "Datensicherung beendet" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "Ihre Daten wurden erfolgreich gesichert." + +#~ msgid "Backing up..." +#~ msgstr "Sichere Daten..." + +#~ msgid "Summary" +#~ msgstr "Zusammenfassung" + +#~ msgid "Restore" +#~ msgstr "Wiederherstellen" + +#~ msgid "_Date:" +#~ msgstr "_Datum:" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Daten an den ursprünglichen Ordner wiederherstellen" + +#~ msgid "Restore to _specific folder" +#~ msgstr "in einen anderen Ordner wiederherstellen" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Position der gesicherten Daten auswählen" + +#~ msgid "Restore _folder:" +#~ msgstr "Order für die Wiederherstellung:" + +#~ msgid "Restore date:" +#~ msgstr "Wiederherstellungsdatum" + +#~ msgid "Restore folder:" +#~ msgstr "Ordner der Wiederherstellung:" + +#~ msgid "Checking for Backups" +#~ msgstr "Nach Datensicherungen wird gesucht" + +#~ msgid "Restore from When?" +#~ msgstr "Von wann soll wiederhergestellt werden?" + +#~ msgid "Restore to Where?" +#~ msgstr "Wohin soll die Datensicherung wiederhergestellt werden?" + +#~ msgid "No backups to restore" +#~ msgstr "keine Datensicherungen zur Wiederherstellung gefunden" + +#~ msgid "Original location" +#~ msgstr "Ursprünglicher Ordner" + +#~ msgid "File to restore:" +#~ msgid_plural "Files to restore:" +#~ msgstr[0] "Datei, die wiederhergestellt werden soll:" +#~ msgstr[1] "Dateien, die wiederhergestellt werden sollen:" + +#~ msgid "Restore Failed" +#~ msgstr "Wiederherstellung fehlgeschlagen" + +#~ msgid "Restore Finished" +#~ msgstr "Wiederherstellung abgeschlossen" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Ihre Daten wurden erfolgreich wiederhergestellt." + +#~ msgid "Restoring..." +#~ msgstr "Wiederherstellung läuft..." + +#~ msgid "Restore given files" +#~ msgstr "gegebene Dateiegn wiederherstellen" + +#~ msgid "No filenames provided" +#~ msgstr "keine Dateinamen angegeben" + +#~ msgid "_Restore" +#~ msgstr "_Wiederherstellung" + +#~ msgid "_Backup" +#~ msgstr "_Datensicherung" + +#~ msgid "_File" +#~ msgstr "_Datei" + +#~ msgid "_Edit" +#~ msgstr "Bearbeiten" + +#~ msgid "_Help" +#~ msgstr "_Hilfe" + +#~ msgid "Contents" +#~ msgstr "Hilfe" + +#~ msgid "Get Help _Online..." +#~ msgstr "Online Hilfe erhalten ..." + +#~ msgid "_Translate This Application..." +#~ msgstr "Diese _Anwendung übersetzen..." + +#~ msgid "_Report a Problem..." +#~ msgstr "Fehler melden" + +#~ msgid "Choose backup destination" +#~ msgstr "Position der Datensicherung auswählen" + +#~ msgid "Folder %s on Amazon S3" +#~ msgstr "Order %s auf Amazon S3" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Amazon S3 Passwort" + +#~ msgid "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." +#~ msgstr "" +#~ "Bitte Amazon Web Services Benutzer-ID und geheimen Schlüssel eingeben. " +#~ "Dies entspricht nicht dem amazon.com Benutzernamen und Passwort." + +#~ msgid "No username specified" +#~ msgstr "kein Benutzername angegeben" + +#~ msgid "No server specified" +#~ msgstr "Kein Server angegeben" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s auf ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH Passwort" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "" +#~ "Geben Sie den Benutzernamen und das Passwort für den SSH-Server %s ein," + +#~ msgid "Could not run duplicity" +#~ msgstr "duplicity konnte nicht ausgeführt werden" + +#~ msgid "" +#~ "Could not understand duplicity version.\n" +#~ "\n" +#~ msgstr "" +#~ "Version von duplicity konnte nicht ausgelesen werden.\n" +#~ "\n" + +#~ msgid "" +#~ "Could not understand duplicity version '%s'.\n" +#~ "\n" +#~ msgstr "" +#~ "Version '%s' von duplicity konnte nicht ausgelesen werden.\n" +#~ "\n" + +#~ msgid "Without duplicity, Déjà Dup cannot function. It will close now." +#~ msgstr "Déjà Dup funktioniert ohne duplicity nicht und wird nun beendet." + +#~ msgid "Duplicity's version is too old" +#~ msgstr "Die Version von duplicity ist zu alt." + +#~ msgid "" +#~ "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only " +#~ "found version %d.%d.%.2d" +#~ msgstr "" +#~ "Déjà Dup benötigt mindestens duplicity Version %d.%d.%.2d, es konnte aber " +#~ "nur duplicity Version %d.%d.%.2d gefunden werden." + +#~ msgid "Preparing..." +#~ msgstr "Daten vorbereiten..." + +#~ msgid "Cleaning up..." +#~ msgstr "Räume auf..." + +#~ msgid "Failed with an unknown error." +#~ msgstr "mit unbekanntem Fehler fehlgeschlagen" + +#~ msgid "Could not restore '%s': File not found in backup" +#~ msgstr "" +#~ "'%s' konnte nicht wiederhergestellt werden. Datei in Datensicherung nicht " +#~ "vorhanden." + +#~ msgid "Invalid ID." +#~ msgstr "ungültige ID." + +#~ msgid "Invalid secret key." +#~ msgstr "ungültiger geheimer Schlüssel." + +#~ msgid "" +#~ "Your Amazon Web Services account is not signed up for the S3 service." +#~ msgstr "" +#~ "Der angegebene Amazon Web Services Account ist für den S3 Dienst " +#~ "eingetragen." + +#~ msgid "S3 bucket name is not available." +#~ msgstr "S3 bucket Name nicht verfügbar." + +#~ msgid "Bad encryption password." +#~ msgstr "falsches Passwort zum Verschlüsseln" + +#~ msgid "No backup files found" +#~ msgstr "Keine Datensicherungsdateien gefunden" + +#~ msgid "Could not display %s" +#~ msgstr "%s konnte nicht angezeigt werden" + +#~ msgid "About Déjà Dup" +#~ msgstr "über Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Maximilian Blömer https://launchpad.net/~maxbloemer\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Daniel Nylander https://launchpad.net/~yeager\n" +#~ " Maximilian Blömer https://launchpad.net/~maxbloemer\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Daniel Nylander https://launchpad.net/~yeager\n" +#~ " Maximilian Blömer https://launchpad.net/~maxbloemer" + +#~ msgid "" +#~ "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 3 of the License, or (at your " +#~ "option) any later version." +#~ msgstr "" +#~ "Dieses Programm ist freie Software, Sie können sie weitergeben und/oder " +#~ "verändern solange Sie sich an die Regeln der GNU General Public License " +#~ "halten, so wie sie von der Free Software Foundation festgelegt wurden; " +#~ "entweder in Version 3 der Lizenz oder (nach Ihrem Ermessen) in jeder " +#~ "folgenden Lizenz." + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Sie sollten ein Exemplar der GNU General Public License zusammen mit\r\n" +#~ "diesem Programm erhalten haben. Falls nicht, schreiben Sie an die Free\r\n" +#~ "Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-" +#~ "1307, USA." + +#~ msgid "Restoring files..." +#~ msgstr "Dateien werden wiederhergestellt..." + +#~ msgid "" +#~ "Not all files could be restored. Any files that could not be restored may " +#~ "still be found in %s." +#~ msgstr "" +#~ "Nicht alle Dateien konnten wiederhergestellt werden. Die Dateien, die " +#~ "nicht wiederhergestellt werden konnten, befinden sich möglicherweise noch " +#~ "in %s." + +#~ msgid "Could not restore %s: %s" +#~ msgstr "%s: %s konnte nicht wiederhergestellt werden" + +#~ msgid "Checking for backups..." +#~ msgstr "Nach Datensicherungen wird gesucht..." + +#~ msgid "Encryption Password" +#~ msgstr "Verschlüsselungspasswort" + +#~ msgid "Enter the password used to encrypt your backup files." +#~ msgstr "" +#~ "geben Sie das Passwort ein, mit dem die Datensicherung verschlüsselt " +#~ "werden soll." + +#~ msgid "Déjà Dup backup passphrase" +#~ msgstr "Déjà DupDatensicherung Passwortsatz" + +#~ msgid "Another Déjà Dup is already running" +#~ msgstr "Déjà Dup wird bereits ausgeführt" + +#~ msgid "Revert to Previous Version..." +#~ msgid_plural "Revert to Previous Versions..." +#~ msgstr[0] "Alte Version wiederherstellen..." +#~ msgstr[1] "Alte Versionen wiederherstellen..." + +#~ msgid "Restore file from backup" +#~ msgid_plural "Restore files from backup" +#~ msgstr[0] "Datei aus Datensicherung wiederherstellen" +#~ msgstr[1] "Dateien aus Datensicherung wiederherstellen" + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "Select Folder" +#~ msgstr "Ordner auswählen" + +#~ msgid "Home Folder" +#~ msgstr "Persönlicher Ordner" + +#~ msgid "Trash" +#~ msgstr "Mülleimer" + +#~ msgid "Choose folder" +#~ msgstr "Ordner wählen" + +#~ msgid "Could not add the folder" +#~ msgstr "konnte den Ordner nicht hinzufügen" + +#~ msgid "%s is already in the list." +#~ msgstr "%s ist bereits in der Liste." + +#~ msgid "Daily" +#~ msgstr "täglich" + +#~ msgid "Weekly" +#~ msgstr "wöchentlich" + +#~ msgid "Biweekly" +#~ msgstr "zweiwöchentlich" + +#~ msgid "Monthly" +#~ msgstr "monatlich" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "jeden %d Tag" +#~ msgstr[1] "alle %d Tage" + +#~ msgid "Déjà Dup Preferences" +#~ msgstr "Déjà Dup Einstellungen" + +#~ msgid "_Backup location:" +#~ msgstr "Ort der Datensicherung:" + +#~ msgid "S3 Access Key I_D:" +#~ msgstr "S3 Zugangsschlüssel ID" + +#~ msgid "_Folder:" +#~ msgstr "_Ordner:" + +#~ msgid "_Username:" +#~ msgstr "_Benutzername:" + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "I_nclude:" +#~ msgstr "_Einbeziehen:" + +#~ msgid "E_xclude:" +#~ msgstr "_Ausschließen:" + +#~ msgid "_Encrypt backup files" +#~ msgstr "Datensicherungsdateien verschlüsseln" + +#~ msgid "_Automatically backup on a regular schedule" +#~ msgstr "regelmäßige Datensicherungen erstellen" + +#~ msgid "How _often to backup:" +#~ msgstr "Wie _oft gesichert werden soll:" + +#~ msgid "Error reading file '%s'." +#~ msgstr "Fehler beim Lesen von Datei '%s'." + +#~ msgid "Error writing file '%s'." +#~ msgstr "Fehler beim Schreiben von Datei '%s'." + +#~ msgid "No space left in %s" +#~ msgstr "Nicht genügend Speicherplatz unter %s verfügbar" diff -Nru deja-dup-7.4/help/deja-dup.1 deja-dup-10.0/help/deja-dup.1 --- deja-dup-7.4/help/deja-dup.1 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/help/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 @@ -1,31 +0,0 @@ -.TH deja-dup 1 "2008-01-03" deja-dup "USER COMMANDS" -.SH NAME -deja-dup \- backup your data -.SH SYNOPSIS -.B deja-dup -.RI [OPTIONS] - -.B deja-dup -.RI --restore -.RI [FILES] -.SH DESCRIPTION -deja-dup is a graphical frontend to -.BR duplicity (1). -It can backup and restore using Amazon S3, an SSH server, or a local folder, -as well as schedule backups at regular intervals. -.SH OPTIONS -.TP -\-?, \-\-help -Display usage information -.TP -\-\-version -Prints program name and version -.TP -\-\-restore -Restores only the specified files -.SH ENVIRONMENT -.TP -DEJA_DUP_DEBUG -Set to 1 to enable more verbose output. Helpful for debugging. -.SH SEE ALSO -.BR duplicity (1) diff -Nru deja-dup-7.4/help/deja-dup-applet.1 deja-dup-10.0/help/deja-dup-applet.1 --- deja-dup-7.4/help/deja-dup-applet.1 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/help/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 @@ -1,24 +0,0 @@ -.TH deja-dup-applet 1 "2008-01-03" deja-dup "USER COMMANDS" -.SH NAME -deja-dup-applet \- backup your data -.SH SYNOPSIS -.B deja-dup-applet -.RI [OPTIONS] -.SH DESCRIPTION -deja-dup-applet is a notification applet that carries out a scheuduled backup. -It is usually started automatically by -.BR deja-dup-monitor (1). -.SH OPTIONS -.TP -\-?, \-\-help -Display usage information -.TP -\-\-version -Prints program name and version -.SH ENVIRONMENT -.TP -DEJA_DUP_DEBUG -Set to 1 to enable more verbose output. Helpful for debugging. -.SH SEE ALSO -.BR deja-dup (1), -.BR deja-dup-monitor (1) diff -Nru deja-dup-7.4/help/deja-dup-monitor.1 deja-dup-10.0/help/deja-dup-monitor.1 --- deja-dup-7.4/help/deja-dup-monitor.1 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/help/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 @@ -1,21 +0,0 @@ -.TH deja-dup-monitor 1 "2008-01-03" deja-dup "USER COMMANDS" -.SH NAME -deja-dup-monitor \- backup your data -.SH SYNOPSIS -.B deja-dup-monitor -.RI [OPTIONS] -.SH DESCRIPTION -deja-dup-monitor is a session daemon that handles scheduled backups. -It is started by default whenever a user logs in. -When a scheduled backup is due, it starts -.BR deja-dup-applet (1). -.SH OPTIONS -.TP -\-?, \-\-help -Display usage information -.TP -\-\-version -Prints program name and version -.SH SEE ALSO -.BR deja-dup (1), -.BR deja-dup-applet (1) diff -Nru deja-dup-7.4/help/deja-dup-preferences.1 deja-dup-10.0/help/deja-dup-preferences.1 --- deja-dup-7.4/help/deja-dup-preferences.1 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/help/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 @@ -1,18 +0,0 @@ -.TH deja-dup-preferences 1 "2008-01-03" deja-dup "USER COMMANDS" -.SH NAME -deja-dup-preferences \- backup your data -.SH SYNOPSIS -.B deja-dup-preferences -.RI [OPTIONS] -.SH DESCRIPTION -deja-dup-preferences is the preferences dialog for -.BR deja-dup (1). -.SH OPTIONS -.TP -\-?, \-\-help -Display usage information -.TP -\-\-version -Prints program name and version -.SH SEE ALSO -.BR deja-dup (1) diff -Nru deja-dup-7.4/help/en_GB/deja-dup.1 deja-dup-10.0/help/en_GB/deja-dup.1 --- deja-dup-7.4/help/en_GB/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/en_GB/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/en_GB/deja-dup-applet.1 deja-dup-10.0/help/en_GB/deja-dup-applet.1 --- deja-dup-7.4/help/en_GB/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/en_GB/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/en_GB/deja-dup-monitor.1 deja-dup-10.0/help/en_GB/deja-dup-monitor.1 --- deja-dup-7.4/help/en_GB/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/en_GB/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/en_GB/deja-dup-preferences.1 deja-dup-10.0/help/en_GB/deja-dup-preferences.1 --- deja-dup-7.4/help/en_GB/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/en_GB/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/en_GB/deja-dup.xml deja-dup-10.0/help/en_GB/deja-dup.xml --- deja-dup-7.4/help/en_GB/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/en_GB/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="en_GB"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in which +to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/en_GB/en_GB.po deja-dup-10.0/help/en_GB/en_GB.po --- deja-dup-7.4/help/en_GB/en_GB.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/en_GB/en_GB.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1590 @@ +# English (United Kingdom) translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-05-04 14:55+0000\n" +"Last-Translator: Mathieu Divaret \n" +"Language-Team: English (United Kingdom) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-05-06 00:00+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "deja-dup" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "%DATE%" + +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "USER COMMANDS" + +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "NAME" + +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "deja-dup - backup your data" + +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "SYNOPSIS" + +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "B [OPTIONS]" + +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "B --restore [FILES]" + +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPTION" + +#. type: Plain text +#: C/deja-dup.1:16 +#, fuzzy +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using Amazon S3, an SSH server, or a local folder, as well as " +"schedule backups at regular intervals." + +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "OPTIONS" + +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "-?, --help" + +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "Display usage information" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "--version" + +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "Prints program name and version" + +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "--restore" + +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "Restores only the specified files" + +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "ENVIRONMENT" + +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "DEJA_DUP_DEBUG" + +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "Set to 1 to enable more verbose output. Helpful for debugging." + +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "SEE ALSO" + +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "B(1)" + +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "deja-dup-applet" + +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "deja-dup-applet - backup your data" + +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "B [OPTIONS]" + +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." + +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "B(1), B(1)" + +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "deja-dup-monitor" + +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "deja-dup-monitor - backup your data" + +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "B [OPTIONS]" + +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." + +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "B(1), B(1)" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "deja-dup-preferences" + +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "deja-dup-preferences - backup your data" + +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "B [OPTIONS]" + +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "deja-dup-preferences is the preferences dialog for B(1)." + +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "B(1)" + +#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "C" + +#. type: Content of:
+#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "<application>Déjà Dup</application> Manual" + +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "<application>Déjà Dup</application> is a simple backup utility." + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +#, fuzzy +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +#, fuzzy +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any " +"later version published by the Free Software Foundation with no Invariant " +"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy " +"of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl\">link</ulink> or " +"in the file COPYING-DOCS distributed with this manual." + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"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 General Public Licence for " +"more details." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +#, fuzzy +msgid "Michael" +msgstr "Michael Terry" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr " <email>mike@mterry.name</email> " + +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "%VERSION%" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "Michael Terry <email>mike@mterry.name</email>" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" + +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "This manual describes version %VERSION% of Déjà Dup." + +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "Feedback" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "Introduction" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "<application>Déjà Dup</application> provides the following features:" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "Securely encrypts and compresses your data." + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" +"Incrementally backs up, letting you restore from any particular backup." + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "Schedules regular backups." + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "Integrates well into your GNOME desktop." + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "Getting Started" + +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "Starting <application>Déjà Dup</application>" + +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" +"You can start <application>Déjà Dup</application> in the following ways:" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "<guimenu>Applications</guimenu> menu" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "Command line" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "<command>deja-dup</command>" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "Backing Up" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "Restoring" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +#, fuzzy +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. You first " +"must pick where to put the restored files. You can either restore them to " +"their original locations or put them under a folder of your choice." + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +#, fuzzy +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore. A " +"progress bar will appear. If an error occurs, the dialog will display an " +"error message." + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "Preferences" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "<guilabel>Backup location</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +#, fuzzy +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring. " +"Select one of the following options:" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "<guilabel>Amazon S3</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "This service costs money. Read their rates carefully before using it." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Local Folder" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "Default: <guilabel>Amazon S3</guilabel>." + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "<guilabel>S3 Access Key ID</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "<guilabel>Folder</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in which " +"to put your files." + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +#, fuzzy +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "<guilabel>Include</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +#, fuzzy +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "<guilabel>Local Folder</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "~/.cache" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "~/.thumbnails" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "~/.gvfs" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "~/.xsession-errors" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "~/.recently-used.xbel" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "~/.recent-applications.xbel" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +#, fuzzy +msgid "~/.Private" +msgstr "~/Private" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "/proc" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "/tmp" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "/sys" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "<guilabel>Encrypt backup files</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "Default: <userinput>On</userinput>." + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "<guilabel>Automatically backup on a regular schedule</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "Default: <userinput>Off</userinput>." + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "<guilabel>How often to backup</guilabel>" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "Choose a schedule for automatic backups." + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "Default: <guilabel>Weekly</guilabel>." + +#~ msgid "<guilabel>Exclude</guilabel>" +#~ msgstr "<guilabel>Exclude</guilabel>" + +#~ msgid "Support for the following backup locations:" +#~ msgstr "Support for the following backup locations:" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "SSH server" + +#~ msgid "Local folder" +#~ msgstr "Local folder" + +#~ msgid "When You Start <application>Déjà Dup</application>" +#~ msgstr "When You Start <application>Déjà Dup</application>" + +#~ msgid "" +#~ "If this is the first time you have run <application>Déjà Dup</" +#~ "application>, you should configure your backup before continuing. You'll " +#~ "need to decide where to put the backup files and which folders to include " +#~ "or exclude." +#~ msgstr "" +#~ "If this is the first time you have run <application>Déjà Dup</" +#~ "application>, you should configure your backup before continuing. You'll " +#~ "need to decide where to put the backup files and which folders to include " +#~ "or exclude." + +#~ msgid "" +#~ "Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice> to open the <link linkend=\"deja-dup-prefs" +#~ "\">Preferences window</link>." +#~ msgstr "" +#~ "Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice> to open the <link linkend=\"deja-dup-prefs" +#~ "\">Preferences window</link>." + +#~ msgid "" +#~ "This is the backup location to pick if you have an external hard drive " +#~ "that you want to use for backups." +#~ msgstr "" +#~ "This is the backup location to pick if you have an external hard drive " +#~ "that you want to use for backups." + +#~ msgid "<guilabel>SSH</guilabel>" +#~ msgstr "<guilabel>SSH</guilabel>" + +#~ msgid "" +#~ "If you have access to a server running SSH (a protocol that lets remote " +#~ "users log in), pick this location. Web hosts or data servers often " +#~ "provide SSH access." +#~ msgstr "" +#~ "If you have access to a server running SSH (a protocol that lets remote " +#~ "users log in), pick this location. Web hosts or data servers often " +#~ "provide SSH access." + +#~ msgid "" +#~ "This option only appears if the <guilabel>Local Folder</guilabel> backup " +#~ "location has been selected." +#~ msgstr "" +#~ "This option only appears if the <guilabel>Local Folder</guilabel> backup " +#~ "location has been selected." + +#~ msgid "" +#~ "Choose the folder into which you want to store the backup files. This " +#~ "often will be an external drive that you plug in." +#~ msgstr "" +#~ "Choose the folder into which you want to store the backup files. This " +#~ "often will be an external drive that you plug in." + +#~ msgid "<guilabel>Username</guilabel>" +#~ msgstr "<guilabel>Username</guilabel>" + +#~ msgid "" +#~ "This option only appears if the <guilabel>SSH</guilabel> backup location " +#~ "has been selected." +#~ msgstr "" +#~ "This option only appears if the <guilabel>SSH</guilabel> backup location " +#~ "has been selected." + +#~ msgid "Enter the username used to log in to the server." +#~ msgstr "Enter the username used to log in to the server." + +#~ msgid "<guilabel>Server</guilabel>" +#~ msgstr "<guilabel>Server</guilabel>" + +#~ msgid "" +#~ "Enter the address of the server to use. This can either be an IP address " +#~ "(all numbers) or a domain name." +#~ msgstr "" +#~ "Enter the address of the server to use. This can either be an IP address " +#~ "(all numbers) or a domain name." + +#~ msgid "<guilabel>Port</guilabel>" +#~ msgstr "<guilabel>Port</guilabel>" + +#~ msgid "" +#~ "Enter the SSH port for the server. This is almost always best left blank " +#~ "or as the default <userinput>22</userinput>." +#~ msgstr "" +#~ "Enter the SSH port for the server. This is almost always best left blank " +#~ "or as the default <userinput>22</userinput>." + +#~ msgid "<guilabel>Directory</guilabel>" +#~ msgstr "<guilabel>Folder</guilabel>" + +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "Enter the folder to store backup files on the server." + +#~ msgid "" +#~ "The <guilabel>Backup</guilabel> dialog will then be displayed. Click " +#~ "<guibutton>Apply</guibutton> to start the backup. A progress bar will " +#~ "appear. If an error occurs, the dialog will display an error message." +#~ msgstr "" +#~ "The <guilabel>Backup</guilabel> dialog will then be displayed. Click " +#~ "<guibutton>Apply</guibutton> to start the backup. A progress bar will " +#~ "appear. If an error occurs, the dialog will display an error message." + +#~ msgid "<author> <firstname>Michael</firstname> <surname>Terry</surname>" +#~ msgstr "<author> <firstname>Michael</firstname> <surname>Terry</surname>" + +#~ msgid "<indexterm zone=\"index\">" +#~ msgstr "<indexterm zone=\"index\">" + +#~ msgid "</indexterm> <indexterm zone=\"index\">" +#~ msgstr "</indexterm> <indexterm zone=\"index\">" + +#~ msgid "Backup your files" +#~ msgstr "Backup your files" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Déjà Dup Backup Utility" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Déjà Dup Monitor" + +#~ msgid "Schedule backups at regular intervals" +#~ msgstr "Schedule backups at regular intervals" + +#~ msgid "Amazon S3 Access Key ID" +#~ msgstr "Amazon S3 Access Key ID" + +#~ msgid "" +#~ "An optional folder name to store files in. This folder will be created in " +#~ "the chosen bucket." +#~ msgstr "" +#~ "An optional folder name to store files in. This folder will be created in " +#~ "the chosen bucket." + +#~ msgid "Directories not to backup" +#~ msgstr "Folders not to backup" + +#~ msgid "Directories to backup" +#~ msgstr "Folders to backup" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Folder on your system in which to hold the backup files." + +#~ msgid "How often to periodically backup" +#~ msgstr "How often to periodically backup" + +#~ msgid "Local backup location" +#~ msgstr "Local backup location" + +#~ msgid "SSH directory" +#~ msgstr "SSH directory" + +#~ msgid "SSH port" +#~ msgstr "SSH port" + +#~ msgid "SSH username" +#~ msgstr "SSH username" + +#~ msgid "The Amazon S3 bucket name to use" +#~ msgstr "The Amazon S3 bucket name to use" + +#~ msgid "The Amazon S3 folder" +#~ msgstr "The Amazon S3 folder" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "The folder used for SSH connections." + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "The last time Déjà Dup was run" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "The last time Déjà Dup was run, in ISO 8601 format." + +#~ msgid "The number of days between backups." +#~ msgstr "The number of days between backups." + +#~ msgid "The port used for SSH connections." +#~ msgstr "The port used for SSH connections." + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." + +#~ msgid "The server used for SSH connections." +#~ msgstr "The server used for SSH connections." + +#~ msgid "The user used for SSH connections." +#~ msgstr "The user used for SSH connections." + +#~ msgid "" +#~ "This list of directories will be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory." +#~ msgstr "" +#~ "This list of folders will be backed up. Reserved values $HOME, $DESKTOP, " +#~ "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, " +#~ "$TRASH, and $VIDEO are recognised as the user's special folders. Relative " +#~ "entries are relative to the user's home folder." + +#~ msgid "" +#~ "This list of directories will not be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory. " +#~ "This list takes precedence over the include list." +#~ msgstr "" +#~ "This list of folders will not be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognised as the user's special " +#~ "folders. Relative entries are relative to the user's home folder. This " +#~ "list takes precedence over the include list." + +#~ msgid "Type of location to store backup" +#~ msgstr "Type of location to store backup" + +#~ msgid "Whether to automatically backup on a regular schedule." +#~ msgstr "Whether to automatically backup on a regular schedule." + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Whether to encrypt your backup" + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." + +#~ msgid "Whether to periodically backup" +#~ msgstr "Whether to periodically backup" + +#~ msgid "" +#~ "Which Amazon S3 bucket to store files in. This does not need to exist " +#~ "already. Only legal hostname strings are valid." +#~ msgstr "" +#~ "Which Amazon S3 bucket to store files in. This does not need to exist " +#~ "already. Only legal hostname strings are valid." + +#~ msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +#~ msgstr "" +#~ "Your Amazon S3 Access Key Identifier. This acts as your S3 username." + +#~ msgid "Show version" +#~ msgstr "Show version" + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Déjà Dup Applet" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% complete" + +#~ msgid "Backup about to start" +#~ msgstr "Backup about to start" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "A scheduled backup will shortly begin. Instead, you can choose to backup " +#~ "later or not at all." + +#~ msgid "Skip Backup" +#~ msgstr "Skip Backup" + +#~ msgid "Backup Later" +#~ msgstr "Backup Later" + +#~ msgid "Encryption password needed" +#~ msgstr "Encryption password needed" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "Please enter the encryption password for your backup files." + +#~ msgid "Enter" +#~ msgstr "Enter" + +#~ msgid "Server password needed" +#~ msgstr "Server password needed" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Please enter the server password for your backup." + +#~ msgid "Backup error occurred" +#~ msgstr "Backup error occurred" + +#~ msgid "Rerun" +#~ msgstr "Rerun" + +#~ msgid "Backup _Later" +#~ msgstr "Backup _Later" + +#~ msgid "_Skip Backup" +#~ msgstr "_Skip Backup" + +#~ msgid "Could not open preferences" +#~ msgstr "Could not open preferences" + +#~ msgid "Backup" +#~ msgstr "Backup" + +#~ msgid "Backup location:" +#~ msgstr "Backup location:" + +#~ msgid "Backing up" +#~ msgstr "Backing up" + +#~ msgid "Unknown" +#~ msgstr "Unknown" + +#~ msgid "Backup Failed" +#~ msgstr "Backup Failed" + +#~ msgid "Backup Finished" +#~ msgstr "Backup Finished" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "Your files were successfully backed up." + +#~ msgid "Backing up..." +#~ msgstr "Backing up..." + +#~ msgid "Summary" +#~ msgstr "Summary" + +#~ msgid "Restore" +#~ msgstr "Restore" + +#~ msgid "_Date:" +#~ msgstr "_Date:" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Restore files to _original locations" + +#~ msgid "Restore to _specific folder" +#~ msgstr "Restore to _specific folder" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Choose destination for restored files" + +#~ msgid "Restore _folder:" +#~ msgstr "Restore _folder:" + +#~ msgid "Restore date:" +#~ msgstr "Restore date:" + +#~ msgid "Restore folder:" +#~ msgstr "Restore folder:" + +#~ msgid "Checking for Backups" +#~ msgstr "Checking for Backups" + +#~ msgid "Restore from When?" +#~ msgstr "Restore from When?" + +#~ msgid "Restore to Where?" +#~ msgstr "Restore to Where?" + +#~ msgid "No backups to restore" +#~ msgstr "No backups to restore" + +#~ msgid "Original location" +#~ msgstr "Original location" + +#~ msgid "File to restore:" +#~ msgid_plural "Files to restore:" +#~ msgstr[0] "File to restore:" +#~ msgstr[1] "Files to restore:" + +#~ msgid "Restore Failed" +#~ msgstr "Restore Failed" + +#~ msgid "Restore Finished" +#~ msgstr "Restore Finished" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Your files were successfully restored." + +#~ msgid "Restoring..." +#~ msgstr "Restoring..." + +#~ msgid "Restore given files" +#~ msgstr "Restore given files" + +#~ msgid "No filenames provided" +#~ msgstr "No filenames provided" + +#~ msgid "_Restore" +#~ msgstr "_Restore" + +#~ msgid "_Backup" +#~ msgstr "_Backup" + +#~ msgid "_File" +#~ msgstr "_File" + +#~ msgid "_Edit" +#~ msgstr "_Edit" + +#~ msgid "_Help" +#~ msgstr "_Help" + +#~ msgid "Contents" +#~ msgstr "Contents" + +#~ msgid "Get Help _Online..." +#~ msgstr "Get Help _Online..." + +#~ msgid "_Translate This Application..." +#~ msgstr "_Translate This Application..." + +#~ msgid "_Report a Problem..." +#~ msgstr "_Report a Problem..." + +#~ msgid "Choose backup destination" +#~ msgstr "Choose backup destination" + +#~ msgid "Folder %s on Amazon S3" +#~ msgstr "Folder %s on Amazon S3" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Amazon S3 Password" + +#~ msgid "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." +#~ msgstr "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." + +#~ msgid "No username specified" +#~ msgstr "No username specified" + +#~ msgid "No server specified" +#~ msgstr "No server specified" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s on ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH Password" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Enter your SSH username and password for server %s." + +#~ msgid "Could not run duplicity" +#~ msgstr "Could not run duplicity" + +#~ msgid "" +#~ "Could not understand duplicity version.\n" +#~ "\n" +#~ msgstr "" +#~ "Could not understand duplicity version.\n" +#~ "\n" + +#~ msgid "" +#~ "Could not understand duplicity version '%s'.\n" +#~ "\n" +#~ msgstr "" +#~ "Could not understand duplicity version '%s'.\n" +#~ "\n" + +#~ msgid "Without duplicity, Déjà Dup cannot function. It will close now." +#~ msgstr "Without duplicity, Déjà Dup cannot function. It will close now." + +#~ msgid "Duplicity's version is too old" +#~ msgstr "Duplicity's version is too old" + +#~ msgid "" +#~ "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only " +#~ "found version %d.%d.%.2d" +#~ msgstr "" +#~ "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only " +#~ "found version %d.%d.%.2d" + +#~ msgid "Preparing..." +#~ msgstr "Preparing..." + +#~ msgid "Cleaning up..." +#~ msgstr "Cleaning up..." + +#~ msgid "Failed with an unknown error." +#~ msgstr "Failed with an unknown error." + +#~ msgid "Could not restore '%s': File not found in backup" +#~ msgstr "Could not restore '%s': File not found in backup" + +#~ msgid "Invalid ID." +#~ msgstr "Invalid ID." + +#~ msgid "Invalid secret key." +#~ msgstr "Invalid secret key." + +#~ msgid "" +#~ "Your Amazon Web Services account is not signed up for the S3 service." +#~ msgstr "" +#~ "Your Amazon Web Services account is not signed up for the S3 service." + +#~ msgid "S3 bucket name is not available." +#~ msgstr "S3 bucket name is not available." + +#~ msgid "Bad encryption password." +#~ msgstr "Bad encryption password." + +#~ msgid "No backup files found" +#~ msgstr "No backup files found" + +#~ msgid "Could not display %s" +#~ msgstr "Could not display %s" + +#~ msgid "About Déjà Dup" +#~ msgstr "About Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Huygens https://launchpad.net/~huygens-25\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Huygens https://launchpad.net/~huygens-25\n" +#~ " Mathieu Divaret https://launchpad.net/~joots" + +#~ msgid "" +#~ "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 3 of the License, or (at your " +#~ "option) any later version." +#~ msgstr "" +#~ "This program is free software; you can redistribute it and/or modify it " +#~ "under the terms of the GNU General Public Licence as published by the " +#~ "Free Software Foundation; either version 3 of the Licence, or (at your " +#~ "option) any later version." + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "You should have received a copy of the GNU General Public Licence along " +#~ "with this program; if not, write to the Free Software Foundation, Inc., " +#~ "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." + +#~ msgid "Restoring files..." +#~ msgstr "Restoring files..." + +#~ msgid "" +#~ "Not all files could be restored. Any files that could not be restored may " +#~ "still be found in %s." +#~ msgstr "" +#~ "Not all files could be restored. Any files that could not be restored may " +#~ "still be found in %s." + +#~ msgid "Could not restore %s: %s" +#~ msgstr "Could not restore %s: %s" + +#~ msgid "Checking for backups..." +#~ msgstr "Checking for backups..." + +#~ msgid "Encryption Password" +#~ msgstr "Encryption Password" + +#~ msgid "Enter the password used to encrypt your backup files." +#~ msgstr "Enter the password used to encrypt your backup files." + +#~ msgid "Déjà Dup backup passphrase" +#~ msgstr "Déjà Dup backup passphrase" + +#~ msgid "Another Déjà Dup is already running" +#~ msgstr "Another Déjà Dup is already running" + +#~ msgid "Revert to Previous Version..." +#~ msgid_plural "Revert to Previous Versions..." +#~ msgstr[0] "Revert to Previous Version..." +#~ msgstr[1] "Revert to Previous Versions..." + +#~ msgid "Restore file from backup" +#~ msgid_plural "Restore files from backup" +#~ msgstr[0] "Restore file from backup" +#~ msgstr[1] "Restore files from backup" + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "Select Folder" +#~ msgstr "Select Folder" + +#~ msgid "Home Folder" +#~ msgstr "Home Folder" + +#~ msgid "Trash" +#~ msgstr "Wastebasket" + +#~ msgid "Choose folder" +#~ msgstr "Choose folder" + +#~ msgid "Could not add the folder" +#~ msgstr "Could not add the folder" + +#~ msgid "%s is already in the list." +#~ msgstr "%s is already in the list." + +#~ msgid "Daily" +#~ msgstr "Daily" + +#~ msgid "Weekly" +#~ msgstr "Weekly" + +#~ msgid "Biweekly" +#~ msgstr "Biweekly" + +#~ msgid "Monthly" +#~ msgstr "Monthly" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "Every %d day" +#~ msgstr[1] "Every %d days" + +#~ msgid "Déjà Dup Preferences" +#~ msgstr "Déjà Dup Preferences" + +#~ msgid "_Backup location:" +#~ msgstr "_Backup location:" + +#~ msgid "S3 Access Key I_D:" +#~ msgstr "S3 Access Key I_D:" + +#~ msgid "_Folder:" +#~ msgstr "_Folder:" + +#~ msgid "_Username:" +#~ msgstr "_Username:" + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "I_nclude:" +#~ msgstr "I_nclude:" + +#~ msgid "E_xclude:" +#~ msgstr "E_xclude:" + +#~ msgid "_Encrypt backup files" +#~ msgstr "_Encrypt backup files" + +#~ msgid "_Automatically backup on a regular schedule" +#~ msgstr "_Automatically backup on a regular schedule" + +#~ msgid "How _often to backup:" +#~ msgstr "How _often to backup:" + +#~ msgid "Error reading file '%s'." +#~ msgstr "Error reading file '%s'." + +#~ msgid "Error writing file '%s'." +#~ msgstr "Error writing file '%s'." + +#~ msgid "No space left in %s" +#~ msgstr "No space left in %s" + +#~ msgid "" +#~ "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE " +#~ "TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER " +#~ "UNDERSTANDING THAT:" +#~ msgstr "" +#~ "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE " +#~ "TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER " +#~ "UNDERSTANDING THAT:" + +#~ msgid "" +#~ "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +#~ "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES " +#~ "THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +#~ "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +#~ "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +#~ "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +#~ "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +#~ "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES " +#~ "AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED " +#~ "VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS " +#~ "DISCLAIMER; AND UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER " +#~ "IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, " +#~ "INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, " +#~ "BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR " +#~ "CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, " +#~ "DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR " +#~ "MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR " +#~ "RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, " +#~ "EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH " +#~ "DAMAGES." +#~ msgstr "" +#~ "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +#~ "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES " +#~ "THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +#~ "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +#~ "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +#~ "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +#~ "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +#~ "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES " +#~ "AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED " +#~ "VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS " +#~ "DISCLAIMER; AND UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER " +#~ "IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, " +#~ "INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, " +#~ "BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR " +#~ "CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, " +#~ "DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR " +#~ "MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR " +#~ "RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, " +#~ "EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH " +#~ "DAMAGES." diff -Nru deja-dup-7.4/help/es/deja-dup.1 deja-dup-10.0/help/es/deja-dup.1 --- deja-dup-7.4/help/es/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/es/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/es/deja-dup-applet.1 deja-dup-10.0/help/es/deja-dup-applet.1 --- deja-dup-7.4/help/es/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/es/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/es/deja-dup-monitor.1 deja-dup-10.0/help/es/deja-dup-monitor.1 --- deja-dup-7.4/help/es/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/es/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/es/deja-dup-preferences.1 deja-dup-10.0/help/es/deja-dup-preferences.1 --- deja-dup-7.4/help/es/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/es/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/es/deja-dup.xml deja-dup-10.0/help/es/deja-dup.xml --- deja-dup-7.4/help/es/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/es/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="es"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/es/es.po deja-dup-10.0/help/es/es.po --- deja-dup-7.4/help/es/es.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/es/es.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1126 @@ +# Spanish translation for deja-dup +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-02-05 17:48+0000\n" +"Last-Translator: Paco Molinero \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-02-12 01:56+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, fuzzy, no-wrap +msgid "--version" +msgstr "Mostrar versión" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, fuzzy, no-wrap +msgid "--restore" +msgstr "Restaurar" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, fuzzy, no-wrap +msgid "deja-dup-preferences" +msgstr "Preferencias de Déjà Dup" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "Programe copias de respaldo en intervalos regulares" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +#, fuzzy +msgid "Backing Up" +msgstr "Creando copia de seguridad" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +#, fuzzy +msgid "Preferences" +msgstr "Preferencias de Déjà Dup" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Carpeta local" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +#, fuzzy +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" +"Si realizar copias de respaldo automáticamente o en un programa regular" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#, fuzzy +#~ msgid "Support for the following backup locations:" +#~ msgstr "No se pudo conectar a lugar de respaldo" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "Servidor SSH" + +#, fuzzy +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "Ingrese la contraseña usada para cifrar sus archivos de respaldo." + +#~ msgid "Backup your files" +#~ msgstr "Respaldar sus archivos" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Herramienta de Respaldo Déjà Dup" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Monitor Déjà Dup" + +#~ msgid "Directories not to backup" +#~ msgstr "Directorios a no ser respaldados" + +#~ msgid "Directories to backup" +#~ msgstr "Directorios a ser respaldados" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Carpeta en su sistema en donde mantener los archivos de respaldo." + +#~ msgid "How often to periodically backup" +#~ msgstr "Que tan seguido respaldar periódicamente" + +#~ msgid "Local backup location" +#~ msgstr "Lugar de respaldo local" + +#~ msgid "SSH directory" +#~ msgstr "Directorio SSH" + +#~ msgid "SSH port" +#~ msgstr "Puerto SSH" + +#~ msgid "SSH username" +#~ msgstr "Nombre de usuario SSH" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "El directorio usado para conexiones SSH" + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "La última vez que Déjà Dup fue ejecutado" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "La última vez que Déjà Dup fue ejecutado, en formato ISO 8601." + +#~ msgid "The number of days between backups." +#~ msgstr "El número de días entre copias de respaldo." + +#~ msgid "The port used for SSH connections." +#~ msgstr "Puerto usado para conexiones SSH" + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Protocolo usado por el servicio de copias de seguridad. Los valores " +#~ "correctos son 's3', 'archivo' o 'ssh'" + +#~ msgid "The server used for SSH connections." +#~ msgstr "El servidor utilizado para conexiones SSH" + +#~ msgid "The user used for SSH connections." +#~ msgstr "El usuario empleado para conexiones SSH" + +#~ msgid "Type of location to store backup" +#~ msgstr "Tipo de lugar donde almacenar su copia de respaldo" + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Si cifrar su copia de respaldo" + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "Si cifrar sus archivos respaldados en el lugar de almacenamiento. Es " +#~ "altamente recomendado dejar esto como 'verdadero'." + +#~ msgid "Whether to periodically backup" +#~ msgstr "Si realizar copias de respaldo periódicamente" + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Aplicación Déjà Dup" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% completo" + +#~ msgid "Backup about to start" +#~ msgstr "Copia de seguridad a punto de comenzar" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "Una copia de seguridad programada comenzará en breve. Puede elegir " +#~ "posponerla o cancelarla." + +#~ msgid "Skip Backup" +#~ msgstr "Omitir copia de seguridad" + +#~ msgid "Backup Later" +#~ msgstr "Respaldar Después" + +#~ msgid "Encryption password needed" +#~ msgstr "Contraseña de cifrado necesitada" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "" +#~ "Por favor ingrese la contraseña de cifrado para los archivos de respaldo." + +#~ msgid "Enter" +#~ msgstr "Ingrese" + +#~ msgid "Server password needed" +#~ msgstr "Se necesita contraseña del servidor" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Por favor ingrese la contraseña del servidor para su respaldo." + +#~ msgid "Backup error occurred" +#~ msgstr "Ocurrió error de respaldo" + +#~ msgid "Rerun" +#~ msgstr "Volver a ejecutar" + +#~ msgid "_Skip Backup" +#~ msgstr "Omitir copia de _seguridad" + +#~ msgid "Could not open preferences" +#~ msgstr "No se pudieron abrir las preferencias" + +#~ msgid "Backup" +#~ msgstr "Copia de seguridad" + +#~ msgid "Backup location:" +#~ msgstr "Ubicación para la copia de seguridad:" + +#~ msgid "Unknown" +#~ msgstr "Desconocido" + +#~ msgid "Backup Failed" +#~ msgstr "Fallo en la copia de seguridad" + +#~ msgid "Backup Finished" +#~ msgstr "Copia de seguridad finalizada" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "Sus archivos fueron respaldados satisfactoriamente." + +#~ msgid "Summary" +#~ msgstr "Resumen" + +#~ msgid "_Date:" +#~ msgstr "_Fecha:" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Recuperar archivos a la _ubicación original" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Elegir destino para archivos restaurados" + +#~ msgid "Restore _folder:" +#~ msgstr "Restaurar _carpeta:" + +#~ msgid "Restore date:" +#~ msgstr "Restaurar fecha:" + +#~ msgid "Checking for Backups" +#~ msgstr "Comprobando copias de seguridad" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Sus archivos fueron restaurados satisfactoriamente." + +#~ msgid "Choose backup destination" +#~ msgstr "Eliga el destino de respaldo" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Contraseña de Amazon S3" + +#~ msgid "Cleaning up..." +#~ msgstr "Limpiando..." + +#~ msgid "Failed with an unknown error." +#~ msgstr "Falló con un error desconocido." + +#~ msgid "Could not display %s" +#~ msgstr "No se pudo mostrar %s" + +#~ msgid "About Déjà Dup" +#~ msgstr "Sobre Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Andres E. Rodriguez Lazo https://launchpad.net/~andreserl\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Alexsp92 https://launchpad.net/~alexsp92\n" +#~ " Andres E. Rodriguez Lazo https://launchpad.net/~andreserl\n" +#~ " Guillermo Espertino (Gez) https://launchpad.net/~gespertino-gmail\n" +#~ " Jose Edgardo Lopez Vasquez https://launchpad.net/~magjogui\n" +#~ " JoseRojas https://launchpad.net/~joserojas\n" +#~ " Luis J. Claros https://launchpad.net/~luisj-claros\n" +#~ " Paco Molinero https://launchpad.net/~franciscomol\n" +#~ " davidru85 https://launchpad.net/~davidru85\n" +#~ " maty1206 https://launchpad.net/~maty1206\n" +#~ " paketecuento https://launchpad.net/~pagilm" + +#~ msgid "Restoring files..." +#~ msgstr "Restaurando archivos..." + +#~ msgid "Encryption Password" +#~ msgstr "Contraseña de Cifrado" + +#~ msgid "Select Folder" +#~ msgstr "Seleccionar carpeta" + +#~ msgid "Home Folder" +#~ msgstr "Carpeta Personal" + +#~ msgid "Trash" +#~ msgstr "Papelera" + +#~ msgid "Choose folder" +#~ msgstr "Elegir carpeta" + +#~ msgid "Could not add the folder" +#~ msgstr "No se pudo agregar la carpeta" + +#~ msgid "Daily" +#~ msgstr "Diariamente" + +#~ msgid "Weekly" +#~ msgstr "Semanalmente" + +#~ msgid "Biweekly" +#~ msgstr "Bisemanal" + +#~ msgid "Monthly" +#~ msgstr "Mensualmente" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "Cada %d día" +#~ msgstr[1] "Cada %d dias" + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3' or " +#~ "'file'." +#~ msgstr "" +#~ "El protocolo utilizado para el lugar de respaldo. Valores validos son " +#~ "'s3' o 'archivo'." + +#~ msgid "Backing up files..." +#~ msgstr "Respaldando archivos..." + +#~ msgid "Error occurred" +#~ msgstr "Ocurrió un error" + +#~ msgid "Backup finished" +#~ msgstr "Respaldo terminado" + +#~ msgid "Restore finished" +#~ msgstr "Restauración terminada" diff -Nru deja-dup-7.4/help/fi/deja-dup.1 deja-dup-10.0/help/fi/deja-dup.1 --- deja-dup-7.4/help/fi/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fi/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/fi/deja-dup-applet.1 deja-dup-10.0/help/fi/deja-dup-applet.1 --- deja-dup-7.4/help/fi/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fi/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/fi/deja-dup-monitor.1 deja-dup-10.0/help/fi/deja-dup-monitor.1 --- deja-dup-7.4/help/fi/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fi/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/fi/deja-dup-preferences.1 deja-dup-10.0/help/fi/deja-dup-preferences.1 --- deja-dup-7.4/help/fi/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fi/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/fi/deja-dup.xml deja-dup-10.0/help/fi/deja-dup.xml --- deja-dup-7.4/help/fi/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fi/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="fi"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Palauttaa parhaillaan + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/fi/fi.po deja-dup-10.0/help/fi/fi.po --- deja-dup-7.4/help/fi/fi.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fi/fi.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1373 @@ +# Finnish translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-04-21 21:12+0000\n" +"Last-Translator: Jussi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-04-26 19:36+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, fuzzy, no-wrap +msgid "--version" +msgstr "Näytä versio" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, fuzzy, no-wrap +msgid "--restore" +msgstr "Palauta" + +#. type: Plain text +#: C/deja-dup.1:26 +#, fuzzy +msgid "Restores only the specified files" +msgstr "Palauta _tiettyyn kansioon" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, fuzzy, no-wrap +msgid "deja-dup-preferences" +msgstr "Déjà Dup preferenssit" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"Tätä ohjelmaa levitetään siinä toivossa, että siitä on hyötyä, mutta ILMAN " +"MITÄÄN TAKUUTA; ilman edes taetta MYYNTIKELPOISUUDESTA TAI SOVELTUMISESTA " +"TIETTYYN ERITYISEEN TARKOITUKSEEN. Yksityiskohtien osalta katso GNU:n GPL-" +"lisenssiä." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "Aseta luomaan varmuuskopio säännöllisesti" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +#, fuzzy +msgid "Backing Up" +msgstr "Luo varmuuskopiota" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "Palauttaa parhaillaan" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +#, fuzzy +msgid "Preferences" +msgstr "Déjà Dup preferenssit" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Paikallinen kansio" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +#, fuzzy +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "_Kryptaa varmuuskopiotiedostot" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +#, fuzzy +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "_Kryptaa varmuuskopiotiedostot" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +#, fuzzy +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "_Kryptaa varmuuskopiotiedostot" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +#, fuzzy +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "_Varmuuskopioi automaattisesti säännöllisin väliajoin" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +#, fuzzy +msgid "<guilabel>How often to backup</guilabel>" +msgstr "Miten _usein varmuuskopio luodaan:" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "SSH palvelin" + +#, fuzzy +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "Anna varmuuskopiotiedostojen kryptaukseen käytetty salasana" + +#~ msgid "Backup your files" +#~ msgstr "Varmuuskopioi tiedostosi" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Déjà Dup -varmuuskopiotyökalu" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Déjà Dup -valvontatyökalu" + +#~ msgid "Amazon S3 Access Key ID" +#~ msgstr "Amazon S3 avain ID" + +#~ msgid "" +#~ "An optional folder name to store files in. This folder will be created in " +#~ "the chosen bucket." +#~ msgstr "" +#~ "Vapaaehtoinen nimi kansiolle johon tiedostot tallennetaan. Tämä kansio " +#~ "luodaan valittuun sijaintiin." + +#~ msgid "Directories not to backup" +#~ msgstr "Hakemistot joita ei tallenneta" + +#~ msgid "Directories to backup" +#~ msgstr "Tallennettavat hakemistot" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Järjestelmäsi kansio varmuuskopioiduille tiedoistoille" + +#~ msgid "How often to periodically backup" +#~ msgstr "Miten usein varmuuskopio luodaan" + +#~ msgid "Local backup location" +#~ msgstr "Paikallinen sijainti varmuuskopioille" + +#~ msgid "SSH directory" +#~ msgstr "SSH valikko" + +#~ msgid "SSH port" +#~ msgstr "SSH portti" + +#~ msgid "SSH username" +#~ msgstr "SSH käyttäjänimi" + +#~ msgid "The Amazon S3 bucket name to use" +#~ msgstr "Käytettävän Amazon S3 korin nimi" + +#~ msgid "The Amazon S3 folder" +#~ msgstr "Amazon S3 kansio" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "SSH yhteyksiin käytettävä hakemisto" + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "Milloin Déjà Dupia käytettiin edellisen kerran" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "Milloin Déjà Dupia käytettiin edellisen kerran ISO 8601 formaatissa" + +#~ msgid "The number of days between backups." +#~ msgstr "Varmuuskopioiden välillä kulunut aika" + +#~ msgid "The port used for SSH connections." +#~ msgstr "SSH yhteyksiin käytetty portti" + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Varmuuskopion sijaintiin käytetty protokolla. Joko 'S3', 'kansio', tai " +#~ "'SSH'" + +#~ msgid "The server used for SSH connections." +#~ msgstr "SSH yhteyksiin käytetty palvelin" + +#~ msgid "The user used for SSH connections." +#~ msgstr "SSH yhteyksissä käytetty käyttäjänimi" + +#~ msgid "" +#~ "This list of directories will be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory." +#~ msgstr "" +#~ "Seuraavan listan hakemistot varmuuskopioidaan. $HOME, $DESKTOP, " +#~ "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, " +#~ "$TRASH, and $VIDEO tunnistetaan käyttäjän erityisinä hakemistoina. Listan " +#~ "muut jäsenet riippuvat käyttäjän kotihakemistosta." + +#~ msgid "" +#~ "This list of directories will not be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory. " +#~ "This list takes precedence over the include list." +#~ msgstr "" +#~ "Seuraavan listan hakemistoja ei varmuuskopioida. $HOME, $DESKTOP, " +#~ "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, " +#~ "$TRASH, and $VIDEO tunnistetaan käyttäjän erityisinä hakemistoina. Listan " +#~ "muut jäsenet riippuvat käyttäjän kotihakemistosta. Tämä lista ohittaa " +#~ "mukaanluettujen listan." + +#~ msgid "Type of location to store backup" +#~ msgstr "Varmuuskopioiden sijainnin tyyppi" + +#~ msgid "Whether to automatically backup on a regular schedule." +#~ msgstr "Tehdäänkö varmuuskopio säännöllisesti" + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Kryptataanko varmuuskopio" + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "Kryptataanko varmuuskopioidut tiedostot talletuskohteessa. Suositeltavaa." + +#~ msgid "Whether to periodically backup" +#~ msgstr "Varmuuskopioidaanko säännöllisesti" + +#~ msgid "" +#~ "Which Amazon S3 bucket to store files in. This does not need to exist " +#~ "already. Only legal hostname strings are valid." +#~ msgstr "" +#~ "Mihin Amazon S3 koriin tiedostot tallennetaan. Tuon korin ei vielä " +#~ "tarvitse olla olemassa. Vain lailliset nimet ovat päteviä." + +#~ msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +#~ msgstr "Amazon S3 avaimen identifioija. Se toimii S3 käyttäjätunnuksenasi." + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Déjà Dup pienoissovellutus" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% valmiina" + +#~ msgid "Backup about to start" +#~ msgstr "Varmuuskopiointi alkaa pian" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "Ennalta valittu varmuuskopiointi alkaa pian. Voit myös luoda " +#~ "varmuuskopion myöhemmin tai jättää varmuuskopion tekemättä kokonaan." + +#~ msgid "Skip Backup" +#~ msgstr "Ohita varmuuskopiointi" + +#~ msgid "Backup Later" +#~ msgstr "Luo varmuuskopio myöhemmin" + +#~ msgid "Encryption password needed" +#~ msgstr "Tarvitaan kryptauksen salasana" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "Anna varmuuskopiotiedostojen kryptauksen salasana" + +#~ msgid "Enter" +#~ msgstr "Syötä" + +#~ msgid "Server password needed" +#~ msgstr "Vaaditaan palvelimen salasana" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Syötä palvelimen salasana varmuuskopiotasi varten" + +#~ msgid "Backup error occurred" +#~ msgstr "Varmuuskopionnissa tapahtui virhe" + +#~ msgid "Rerun" +#~ msgstr "Yritä uudelleen" + +#~ msgid "Backup _Later" +#~ msgstr "Varmuuskopioi _Myöhemmin" + +#~ msgid "_Skip Backup" +#~ msgstr "_Ohita varmuuskopiointi" + +#~ msgid "Could not open preferences" +#~ msgstr "Ei voinut avata preferenssejä" + +#~ msgid "Backup" +#~ msgstr "Varmuuskopioi" + +#~ msgid "Backup location:" +#~ msgstr "Varmuuskopion sijainti:" + +#~ msgid "Unknown" +#~ msgstr "Tuntematon" + +#~ msgid "Backup Failed" +#~ msgstr "Varmuuskopiointi epäonnistui" + +#~ msgid "Backup Finished" +#~ msgstr "Varmuuskopio on valmis" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "Tiedostojesi varmuuskopiointi onnistui" + +#~ msgid "Backing up..." +#~ msgstr "Luo varmuuskopiota..." + +#~ msgid "Summary" +#~ msgstr "Yhteenveto" + +#~ msgid "_Date:" +#~ msgstr "_Päivämäärä:" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Palauta tiedostot _niiden alkuperäisiin osoitteisiin" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Valitse kohde palautetuille tiedostoille" + +#~ msgid "Restore _folder:" +#~ msgstr "Palauta _kansio" + +#~ msgid "Restore date:" +#~ msgstr "Palauta päivämäärä" + +#~ msgid "Restore folder:" +#~ msgstr "Palauta kansio:" + +#~ msgid "Checking for Backups" +#~ msgstr "Tarkistaa varmuuskopiot" + +#~ msgid "Restore from When?" +#~ msgstr "Miten vanhoista tiedoistoista palautus suoritetaan?" + +#~ msgid "Restore to Where?" +#~ msgstr "Minne palautetaan?" + +#~ msgid "No backups to restore" +#~ msgstr "Ei palautettavia varmuuskopioita" + +#~ msgid "Original location" +#~ msgstr "Alkuperäinen sijainti" + +#~ msgid "File to restore:" +#~ msgid_plural "Files to restore:" +#~ msgstr[0] "Palautettava tiedosto:" +#~ msgstr[1] "Palautettavat tiedostot:" + +#~ msgid "Restore Failed" +#~ msgstr "Palauttaminen epäonnistui" + +#~ msgid "Restore Finished" +#~ msgstr "Palautus on suoritettu" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Tiedostojesi palauttaminen onnistui" + +#~ msgid "Restoring..." +#~ msgstr "Palauttaa parhaillaan..." + +#~ msgid "Restore given files" +#~ msgstr "Palauta valitut tiedostot" + +#~ msgid "No filenames provided" +#~ msgstr "Tiedostojen nimiä ei ole annettu" + +#~ msgid "_Restore" +#~ msgstr "_Palauta" + +#~ msgid "_Backup" +#~ msgstr "_Varmuuskopio" + +#~ msgid "_File" +#~ msgstr "_Tiedosto" + +#~ msgid "_Edit" +#~ msgstr "_Muokkaa" + +#~ msgid "_Help" +#~ msgstr "_Ohje" + +#~ msgid "Contents" +#~ msgstr "Sisältö" + +#~ msgid "Get Help _Online..." +#~ msgstr "Hae ohje _Netistä..." + +#~ msgid "_Translate This Application..." +#~ msgstr "Käännä _tämä sovellus..." + +#~ msgid "_Report a Problem..." +#~ msgstr "_Raportoi ongelma" + +#~ msgid "Choose backup destination" +#~ msgstr "Valitse kohde varmuuskopioille" + +#~ msgid "Folder %s on Amazon S3" +#~ msgstr "Kansio %s Amazon S3:ssa" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Amazon S3 salasana" + +#~ msgid "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." +#~ msgstr "" +#~ "Anna Amazon Web palveluiden käyttäjätunnus ja avain. Näiden ei tarvitse " +#~ "olla sinun amazon.com käyttäjänimesi ja salasanasi." + +#~ msgid "No username specified" +#~ msgstr "Käyttäjätunnusta ei ole määritelty" + +#~ msgid "No server specified" +#~ msgstr "Palvelinta ei ole määritelty" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s ssh//%s@%s:%d:ssa" + +#~ msgid "SSH Password" +#~ msgstr "SSH salasana" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Anna SSH käyttäjätunnuksesi ja salasanasi serverille %s." + +#~ msgid "Could not run duplicity" +#~ msgstr "Duplicity:ä ei voitu suorittaa" + +#~ msgid "" +#~ "Could not understand duplicity version.\n" +#~ "\n" +#~ msgstr "" +#~ "Ei kyennyt ymmärtämään Dublicity:n versiota\n" +#~ "\n" + +#~ msgid "" +#~ "Could not understand duplicity version '%s'.\n" +#~ "\n" +#~ msgstr "" +#~ "Ei kyennyt ymmärtämään Dublicity:n versiota %s\n" +#~ "\n" + +#~ msgid "Without duplicity, Déjà Dup cannot function. It will close now." +#~ msgstr "Déjà Dup ei toimi ilman Dublicity:ä. Se sulkeutuu nyt." + +#~ msgid "Duplicity's version is too old" +#~ msgstr "Dublicity:n versio on liian vanha" + +#~ msgid "" +#~ "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only " +#~ "found version %d.%d.%.2d" +#~ msgstr "" +#~ "Déjà Dup vaatii ainakin version %d.%d.%.2d Duplicity:stä. Vain versio %d.%" +#~ "d.%.2d löydettiin." + +#~ msgid "Preparing..." +#~ msgstr "Valmistellaan..." + +#~ msgid "Cleaning up..." +#~ msgstr "Tehdään jälkitoimenpiteitä..." + +#~ msgid "Failed with an unknown error." +#~ msgstr "Epäonnistui tuntemattomasta syystä" + +#~ msgid "Could not restore '%s': File not found in backup" +#~ msgstr "Ei voinut palauttaa %s:ää. Tiedostoa ei löytynyt varmuuskopiosta." + +#~ msgid "Invalid ID." +#~ msgstr "Virheellinen tunniste." + +#~ msgid "Invalid secret key." +#~ msgstr "Virheellinen salainen avain" + +#~ msgid "" +#~ "Your Amazon Web Services account is not signed up for the S3 service." +#~ msgstr "Amazon Web Service tiliisi ei kuulu S3 palvelua" + +#~ msgid "S3 bucket name is not available." +#~ msgstr "S3 korin nimi ei ole saatavilla" + +#~ msgid "Bad encryption password." +#~ msgstr "Huono kryptaus salasana" + +#~ msgid "No backup files found" +#~ msgstr "Varmuuskopiotiedostoja ei löytynyt" + +#~ msgid "Could not display %s" +#~ msgstr "Ei voinut näyttää %s" + +#~ msgid "About Déjà Dup" +#~ msgstr "Déjà Dupista" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Jussi https://launchpad.net/~jussiphil" + +#~ msgid "" +#~ "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 3 of the License, or (at your " +#~ "option) any later version." +#~ msgstr "" +#~ "Tämä ohjelma on vapaa ohjelmisto. Saat levittää ja/tai muokata sitä GNU " +#~ "GPL-lisenssin ehtojen mukaan (Free Software Foundationin julkaisema, joko " +#~ "lisenssin versio 3 tai valitsemasi myöhempi versio)." + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Sinun olisi pitänyt saada kopio GNU GPL-lisenssi tämän ohjelman mukana. " +#~ "Ellet sitä saanut, kirjoita Free Software Foundation, INC.:lle, 59 Temple " +#~ "Place - Suite 330, Boston, MA 02111-1307, USA." + +#~ msgid "Restoring files..." +#~ msgstr "Palautetaan tiedostoja..." + +#~ msgid "" +#~ "Not all files could be restored. Any files that could not be restored may " +#~ "still be found in %s." +#~ msgstr "" +#~ "Kaikkia tiedostoja ei voitu palauttaa. Nämä tiedostot voivat löytyä %s:" +#~ "stä." + +#~ msgid "Could not restore %s: %s" +#~ msgstr "Ei voinut palauttaa %s:%s" + +#~ msgid "Checking for backups..." +#~ msgstr "Etsii varmuuskopioita" + +#~ msgid "Encryption Password" +#~ msgstr "Salasana kryptaukseen" + +#~ msgid "Déjà Dup backup passphrase" +#~ msgstr "Déjà Dup varmuuskopio salalause" + +#~ msgid "Another Déjà Dup is already running" +#~ msgstr "Toinen Déjà Dup on jo käynnissä" + +#~ msgid "Revert to Previous Version..." +#~ msgid_plural "Revert to Previous Versions..." +#~ msgstr[0] "Palaa aiempaan versioon..." +#~ msgstr[1] "Palaa aiempiin versioihin" + +#~ msgid "Restore file from backup" +#~ msgid_plural "Restore files from backup" +#~ msgstr[0] "Palauta tiedosto varmuuskopiosta" +#~ msgstr[1] "Palauta tiedostot varmuuskopiosta" + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "Select Folder" +#~ msgstr "Valitse kansio" + +#~ msgid "Home Folder" +#~ msgstr "Kotikansio" + +#~ msgid "Trash" +#~ msgstr "Roskakori" + +#~ msgid "Choose folder" +#~ msgstr "Valitse kansio" + +#~ msgid "Could not add the folder" +#~ msgstr "Ei kyennyt lisäämään kansiota" + +#~ msgid "%s is already in the list." +#~ msgstr "%s on jo listalle" + +#~ msgid "Daily" +#~ msgstr "Päivittäin" + +#~ msgid "Weekly" +#~ msgstr "Viikottain" + +#~ msgid "Biweekly" +#~ msgstr "Joka toinen viikko" + +#~ msgid "Monthly" +#~ msgstr "Kuukausittain" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "Joka %d päivä" +#~ msgstr[1] "%d päivän välein" + +#~ msgid "_Backup location:" +#~ msgstr "_Varmuuskopio sijainti" + +#~ msgid "S3 Access Key I_D:" +#~ msgstr "S3 avain I_D" + +#~ msgid "_Folder:" +#~ msgstr "_Kansio:" + +#~ msgid "_Username:" +#~ msgstr "_Käyttäjätunnus:" + +#~ msgid "_Server:" +#~ msgstr "_Palvelin:" + +#~ msgid "_Port:" +#~ msgstr "_Portti:" + +#~ msgid "I_nclude:" +#~ msgstr "S_alli:" + +#~ msgid "E_xclude:" +#~ msgstr "E_stä:" diff -Nru deja-dup-7.4/help/fr/deja-dup.1 deja-dup-10.0/help/fr/deja-dup.1 --- deja-dup-7.4/help/fr/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fr/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/fr/deja-dup-applet.1 deja-dup-10.0/help/fr/deja-dup-applet.1 --- deja-dup-7.4/help/fr/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fr/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/fr/deja-dup-monitor.1 deja-dup-10.0/help/fr/deja-dup-monitor.1 --- deja-dup-7.4/help/fr/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fr/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/fr/deja-dup-preferences.1 deja-dup-10.0/help/fr/deja-dup-preferences.1 --- deja-dup-7.4/help/fr/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fr/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/fr/deja-dup.xml deja-dup-10.0/help/fr/deja-dup.xml --- deja-dup-7.4/help/fr/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fr/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="fr"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides +the complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà +Dup Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be +asked to choose a backup location and which files to include or exclude. On +the Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be +asked to choose a backup location. Then choose which backup date to restore +from and where to put the restored files. You can either restore them to +their original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/fr/fr.po deja-dup-10.0/help/fr/fr.po --- deja-dup-7.4/help/fr/fr.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/fr/fr.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,818 @@ +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.xml:5 +msgid "<application>Dj Dup</application> Manual" +msgstr "" + +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Dj Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Dj Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Dj Dup</application> Administrators</ulink>" +msgstr "" + +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Dj Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Dj Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Dj Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Dj Dup" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Dj Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Dj Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Dj Dup</application>" +msgstr "" + +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "You can start <application>Dj Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Dj Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Dj Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Dj Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Dj Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Dj Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Dj Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +msgid "Local Folders" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Dj Dup</application> excludes by " +"default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Dj Dup</application> automatically " +"backup for you. This is recommended so that you don't forget to backup. " +"Backups are more useful the more recently you have made them, so it is " +"important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" diff -Nru deja-dup-7.4/help/gl/deja-dup.1 deja-dup-10.0/help/gl/deja-dup.1 --- deja-dup-7.4/help/gl/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/gl/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/gl/deja-dup-applet.1 deja-dup-10.0/help/gl/deja-dup-applet.1 --- deja-dup-7.4/help/gl/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/gl/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/gl/deja-dup-monitor.1 deja-dup-10.0/help/gl/deja-dup-monitor.1 --- deja-dup-7.4/help/gl/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/gl/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/gl/deja-dup-preferences.1 deja-dup-10.0/help/gl/deja-dup-preferences.1 --- deja-dup-7.4/help/gl/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/gl/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/gl/deja-dup.xml deja-dup-10.0/help/gl/deja-dup.xml --- deja-dup-7.4/help/gl/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/gl/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="gl"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/gl/gl.po deja-dup-10.0/help/gl/gl.po --- deja-dup-7.4/help/gl/gl.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/gl/gl.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,908 @@ +# Galician translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-01-16 19:31+0000\n" +"Last-Translator: Mundi do Rosal \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-01-19 13:56+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "Programa copias de seguridade en intervalos regulares" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +msgid "Local Folders" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "SSH server" +#~ msgstr "Servidor SSH" + +#~ msgid "Backup your files" +#~ msgstr "Facer copia de seguridade dos teus arquivos" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Ferramenta de copia de seguridade do Déjà Dup" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Monitor do Déjà Dup" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Cartafol no teu sistema para gardar os arquivos do respaldo" + +#~ msgid "How often to periodically backup" +#~ msgstr "Periodicidade da copia de seguridade" + +#~ msgid "SSH directory" +#~ msgstr "Directorio SSH" + +#~ msgid "SSH port" +#~ msgstr "Porto SSH" + +#~ msgid "SSH username" +#~ msgstr "Nome de usuario do SSH" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "Directorio usado para as conexións SSH" + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "Derradeira vez que foi executado Déjà Dup" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "Derradeira vez que foi executado Déjà Dup, no formato ISO 8601" + +#~ msgid "The number of days between backups." +#~ msgstr "Número de días entre copias de seguridade" + +#~ msgid "The port used for SSH connections." +#~ msgstr "Porto usado para conexións SSH" + +#~ msgid "The server used for SSH connections." +#~ msgstr "Servidor usado para as conexións SSH." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Nome de usuario para conexións SSH" + +#~ msgid "Type of location to store backup" +#~ msgstr "Tipo de lugar para a copia de seguridade" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Mundi do Rosal https://launchpad.net/~mundidorosal" diff -Nru deja-dup-7.4/help/he/deja-dup.1 deja-dup-10.0/help/he/deja-dup.1 --- deja-dup-7.4/help/he/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/he/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/he/deja-dup-applet.1 deja-dup-10.0/help/he/deja-dup-applet.1 --- deja-dup-7.4/help/he/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/he/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/he/deja-dup-monitor.1 deja-dup-10.0/help/he/deja-dup-monitor.1 --- deja-dup-7.4/help/he/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/he/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/he/deja-dup-preferences.1 deja-dup-10.0/help/he/deja-dup-preferences.1 --- deja-dup-7.4/help/he/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/he/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/he/deja-dup.xml deja-dup-10.0/help/he/deja-dup.xml --- deja-dup-7.4/help/he/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/he/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="he"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/he/he.po deja-dup-10.0/help/he/he.po --- deja-dup-7.4/help/he/he.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/he/he.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1145 @@ +# Hebrew translation for deja-dup +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-02-08 20:29+0000\n" +"Last-Translator: Yaron \n" +"Language-Team: Hebrew \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-02-12 01:56+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, fuzzy, no-wrap +msgid "--version" +msgstr "הצגת הגירסה" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, fuzzy, no-wrap +msgid "--restore" +msgstr "_שחזר" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, fuzzy, no-wrap +msgid "deja-dup-preferences" +msgstr "העדפות Déjà Dup" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"תוכנה זו מופצת בתקווה שתהיה שימושית, אך ללא כל אחריות; אפילו לא אחריות " +"מרומזת למסחר או התאמה לצרכים מסויימים. אנא פנה לרשיון הציבורי הכללי של GNU " +"לפרטים נוספים." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "תזמן גיבויים במרווחי זמן קבועים" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +#, fuzzy +msgid "Backing Up" +msgstr "מגבה קבצים..." + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +#, fuzzy +msgid "Preferences" +msgstr "העדפות Déjà Dup" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "תיקייה מקומית" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +#, fuzzy +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "ה_צפן קבצי גיבוי" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +#, fuzzy +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "ה_צפן קבצי גיבוי" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +#, fuzzy +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "ה_צפן קבצי גיבוי" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +#, fuzzy +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "האם לגבות באופן בתדירות קבועה באופן אוטומטי." + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#, fuzzy +#~ msgid "Support for the following backup locations:" +#~ msgstr "לא ניתן להתחבר אל מיקום הגיבוי" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "שרת ה־SSH" + +#, fuzzy +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "הזן את הסיסמה המשמשת להצפנת קבצי הגיבוי שלך." + +#~ msgid "Backup your files" +#~ msgstr "גיבוי הקבצים שלך" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "כלי הגיבוי Déjà Dup" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "צג המעקב של Déjà Dup" + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "מזהה מפתח Amazon S3" + +#~ msgid "Directories not to backup" +#~ msgstr "תיקיות שאין לגבות" + +#~ msgid "Directories to backup" +#~ msgstr "תיקיות לגיבוי" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "תיקייה במערכת שלך בה ישמרו קבצי הגיבוי." + +#~ msgid "How often to periodically backup" +#~ msgstr "באיזו תדירות תקופתית יש לערוך גיבוי" + +#~ msgid "Local backup location" +#~ msgstr "מיקום הגיבוי המקומי" + +#~ msgid "SSH directory" +#~ msgstr "תיקיית ה־SSH" + +#~ msgid "SSH port" +#~ msgstr "פתחת ה־SSH" + +#~ msgid "SSH username" +#~ msgstr "שם המשתמש ב־SSH" + +#~ msgid "The Amazon S3 bucket name to use" +#~ msgstr "שם דלי ה־Amazon S3 לשימוש" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "התיקייה המשמשת לחיבורי SSH." + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "הפעם האחרונה בה הופעל Déjà Dup" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "הפעם האחרונה בה הופעל Déjà Dup, במבנה ISO 8601." + +#~ msgid "The number of days between backups." +#~ msgstr "מספר הימים בין הגיבויים." + +#~ msgid "The port used for SSH connections." +#~ msgstr "הפתחה המשמשת להתחברויות SSH." + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "הפרוטוקול המשמש למיקום הגיבוי. הערכים התקפים הם 's3', 'file', או 'ssh'." + +#~ msgid "The server used for SSH connections." +#~ msgstr "השרת המשמש להתחברויות SSH." + +#~ msgid "The user used for SSH connections." +#~ msgstr "שם המשתמש המשמש להתחברויות SSH." + +#~ msgid "" +#~ "This list of directories will be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory." +#~ msgstr "" +#~ "רשימת תיקיות זו לא תגובה. הערכים השמורים $HOME, $DESKTOP, $DOCUMENTS, " +#~ "$DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, ו־$VIDEO " +#~ "הינם מזוהים כתיקיות משתמש מיוחדות. רשומות יחסיות הינן ביחס לתיקיית הבית " +#~ "של המשתמש." + +#~ msgid "" +#~ "This list of directories will not be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory. " +#~ "This list takes precedence over the include list." +#~ msgstr "" +#~ "התיקיות ברשימה זו לא יגובו. הערכים השמורים הינם $HOME, $DESKTOP, " +#~ "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, " +#~ "$TRASH, ו־$VIDEO הינם מזוהים כתיקיות המשתמש המיוחדות. רשומות יחסיות הינן " +#~ "יחסיות לתיקיית הבית של המשתמש. רשימה זו מועדפת על פני רשימת ההכללה." + +#~ msgid "Type of location to store backup" +#~ msgstr "סוג המיקום לשמירת גיבוי" + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "האם להצפין את הגיבוי" + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "האם יש להצפין את קבצי הגיבוי שלך במיקום האיחסון. מומלץ בחום להשאיר ערך זה " +#~ "כ־'אמת'." + +#~ msgid "Whether to periodically backup" +#~ msgstr "האם לגבות בתדירות קבועה" + +#~ msgid "" +#~ "Which Amazon S3 bucket to store files in. This does not need to exist " +#~ "already. Only legal hostname strings are valid." +#~ msgstr "" +#~ "באיזה דלי של Amazon S3 יש לאחסן את הקבצים. הדלי לא חייב להיות מבעוד מועד. " +#~ "רק מחרוזות שם מארח חוקיות הן תקניות." + +#~ msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#~ msgstr "מזהה מפתח ה־Amazon S3. המזהה מהווה שם המשתמש שלך ב־S3" + +#~ msgid "Déjà Dup Applet" +#~ msgstr "יישומון Déjà Dup" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% הושלמו" + +#~ msgid "Backup about to start" +#~ msgstr "הגיבוי עומד להתחיל" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "גיבוי מתוזמן יתחיל בעוד זמן קצר. תוכל במקום זאת לבחור לגבות מאוחר יותר או " +#~ "לא לגבות כלל." + +#~ msgid "Skip Backup" +#~ msgstr "דילוג על הגיבוי" + +#~ msgid "Backup Later" +#~ msgstr "גיבוי מאוחר יותר" + +#~ msgid "Encryption password needed" +#~ msgstr "נדרשת סיסמת הצפנה" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "אנא הזן את סיסמת ההצפנה לקבצי הגיבוי שלך." + +#~ msgid "Enter" +#~ msgstr "הזנה" + +#~ msgid "Server password needed" +#~ msgstr "סיסמת השרת נדרשת" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "נא הזן את סיסמת השרת עבור הגיבוי שלך." + +#~ msgid "Backup error occurred" +#~ msgstr "ארעה שגיאת גיבוי" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "הקבצים שלך גובו בהצלחה." + +#~ msgid "Choose destination for restored files" +#~ msgstr "בחר את יעד הקבצים המשוחזרים" + +#~ msgid "Your files were successfully restored." +#~ msgstr "הקבצים שלך שוחזרו בהצלחה." + +#~ msgid "_Backup" +#~ msgstr "_גיבוי" + +#~ msgid "_File" +#~ msgstr "_קובץ" + +#~ msgid "_Edit" +#~ msgstr "_ערוך" + +#~ msgid "_Help" +#~ msgstr "ע_זרה" + +#~ msgid "Choose backup destination" +#~ msgstr "בחר את יעד הגיבוי" + +#~ msgid "Amazon S3 Password" +#~ msgstr "סיסמת Amazon S3" + +#~ msgid "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." +#~ msgstr "" +#~ "הזן את מזהה המשתמש שלך והמפתח הסודי בשירותים המקוונים של Amazon. אלו אינם " +#~ "הפרטים בהם אתה משתמש להתחברות לאתר amazon.com." + +#~ msgid "Could not display %s" +#~ msgstr "לא ניתן להציג את %s" + +#~ msgid "About Déjà Dup" +#~ msgstr "אודות Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Yaron https://launchpad.net/~sh-yaron\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Yaron https://launchpad.net/~sh-yaron" + +#~ msgid "" +#~ "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 3 of the License, or (at your " +#~ "option) any later version." +#~ msgstr "" +#~ "תוכנה זו הינה תוכנה חופשית; תוכל להפיץ אותה מחדש ו/או לשנותה תחת תנאי " +#~ "הרשיון הציבורי הכללי של GNU כפי שפורסם על ידי קרן התוכנה החופשית; ניתן " +#~ "לפעול לפי גירסה 3, או (לבחירתך) בכל גירסה מאוחרת יותר." + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "יחד עם תוכנית זו היית אמור לקבל עותק של הרישיון הציבורי הכללי של GNU; " +#~ "במידה ולא, כתוב אל Free Software Foundation, Inc., 59 Temple Place, Suite " +#~ "330, Boston, , MA 02111-1307, USA." + +#~ msgid "Restoring files..." +#~ msgstr "משחזר קבצים..." + +#~ msgid "Encryption Password" +#~ msgstr "סיסמת הצפנה" + +#~ msgid "Déjà Dup backup passphrase" +#~ msgstr "מילת הצופן של גיבוי ה־Déjà Dup" + +#~ msgid "Select Folder" +#~ msgstr "בחר תיקייה" + +#~ msgid "Home Folder" +#~ msgstr "תיקיית הבית" + +#~ msgid "Trash" +#~ msgstr "אשפה" + +#~ msgid "Choose folder" +#~ msgstr "בחר תיקייה" + +#~ msgid "Could not add the folder" +#~ msgstr "לא ניתן להוסיף את התיקייה" + +#~ msgid "_Backup location:" +#~ msgstr "_מיקום הגיבוי:" + +#~ msgid "I_nclude:" +#~ msgstr "ה_כללה:" + +#~ msgid "E_xclude:" +#~ msgstr "הוצאה מה_כלל:" + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3' or " +#~ "'file'." +#~ msgstr "" +#~ "הפרוטוקול המשמש למיקום הגיבוי. ערכים מורשים לדוגמה הינם 's3' או 'file'." + +#~ msgid "Error occurred" +#~ msgstr "ארעה שגיאה" + +#~ msgid "Backup finished" +#~ msgstr "הגיבוי הסתיים" + +#~ msgid "Restore finished" +#~ msgstr "השיחזור הושלם" + +#~ msgid "S3 b_ucket:" +#~ msgstr "_דלי S3:" + +#~ msgid "Folder:" +#~ msgstr "תיקייה:" diff -Nru deja-dup-7.4/help/id/deja-dup.1 deja-dup-10.0/help/id/deja-dup.1 --- deja-dup-7.4/help/id/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/id/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/id/deja-dup-applet.1 deja-dup-10.0/help/id/deja-dup-applet.1 --- deja-dup-7.4/help/id/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/id/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/id/deja-dup-monitor.1 deja-dup-10.0/help/id/deja-dup-monitor.1 --- deja-dup-7.4/help/id/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/id/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/id/deja-dup-preferences.1 deja-dup-10.0/help/id/deja-dup-preferences.1 --- deja-dup-7.4/help/id/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/id/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/id/deja-dup.xml deja-dup-10.0/help/id/deja-dup.xml --- deja-dup-7.4/help/id/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/id/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="id"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/id/id.po deja-dup-10.0/help/id/id.po --- deja-dup-7.4/help/id/id.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/id/id.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,747 @@ +# Indonesian translations for Déjà Dup package +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the Déjà Dup package. +# Automatically generated, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: Déjà Dup 10.0\n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-06-02 17:36-0300\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +msgid "Local Folders" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" diff -Nru deja-dup-7.4/help/lt/deja-dup.1 deja-dup-10.0/help/lt/deja-dup.1 --- deja-dup-7.4/help/lt/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/lt/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/lt/deja-dup-applet.1 deja-dup-10.0/help/lt/deja-dup-applet.1 --- deja-dup-7.4/help/lt/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/lt/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/lt/deja-dup-monitor.1 deja-dup-10.0/help/lt/deja-dup-monitor.1 --- deja-dup-7.4/help/lt/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/lt/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/lt/deja-dup-preferences.1 deja-dup-10.0/help/lt/deja-dup-preferences.1 --- deja-dup-7.4/help/lt/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/lt/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/lt/deja-dup.xml deja-dup-10.0/help/lt/deja-dup.xml --- deja-dup-7.4/help/lt/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/lt/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="lt"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/lt/lt.po deja-dup-10.0/help/lt/lt.po --- deja-dup-7.4/help/lt/lt.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/lt/lt.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,902 @@ +# Lithuanian translation for deja-dup +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2008-10-23 20:49+0000\n" +"Last-Translator: Mantas Kriaučiūnas \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2008-11-22 15:48+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, fuzzy, no-wrap +msgid "--restore" +msgstr "_Atstatyti" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, fuzzy, no-wrap +msgid "deja-dup-preferences" +msgstr "Déjà Dup Nustatymai" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"Ši programa platinama tikintis, kad ji bus naudinga, bet BE JOKIOS " +"GARANTIJOS; be jokios numanomos PERKAMUMO ar TINKAMUMO KONKRETIEMS TIKSLAMS " +"garantijos. Žiūrėkite GNU Bendrąją Viešąją licenciją norėdami sužinoti " +"smulkmenas." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +#, fuzzy +msgid "Restoring" +msgstr "_Atstatyti" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +#, fuzzy +msgid "Preferences" +msgstr "Déjà Dup Nustatymai" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Vietinis aplankas" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Atsarginių kopijų įrankis „Déjà Dup“" + +#~ msgid "Select Folder" +#~ msgstr "Pasirinkite aplanką" + +#~ msgid "Home Folder" +#~ msgstr "Asmeninis aplankas" + +#~ msgid "Trash" +#~ msgstr "Šiukšlinė" + +#~ msgid "Choose folder" +#~ msgstr "Pasirink aplanką" + +#~ msgid "Error occurred" +#~ msgstr "Įvyko klaida" + +#~ msgid "Restore finished" +#~ msgstr "Atkūrimas baigtas" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Jūsų failai sėkmingai atkurti." + +#~ msgid "About Déjà Dup" +#~ msgstr "Apie Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Mantas Kriaučiūnas https://launchpad.net/~mantas" + +#~ msgid "_File" +#~ msgstr "_Failas" + +#~ msgid "_Edit" +#~ msgstr "_Keisti" + +#~ msgid "_Help" +#~ msgstr "_Pagalba" + +#~ msgid "Folder:" +#~ msgstr "Aplankas:" + +#~ msgid "Restoring files..." +#~ msgstr "Atkuriami failai..." diff -Nru deja-dup-7.4/help/Makefile.am deja-dup-10.0/help/Makefile.am --- deja-dup-7.4/help/Makefile.am 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/help/Makefile.am 2009-06-02 17:48:48.000000000 -0400 @@ -1,21 +1,107 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- + +# Turn off g-d-u's attempt at translating docs -- po4a does it for us. +# This is very hacky, true. +_xml2po = cp ../$(srcdir)/$@ $(notdir $@).tmp && chmod u+w $(notdir $@).tmp || true + +clean-local: clean-local-@USE_NLS@ +distclean-local: clean-local-@USE_NLS@ +mostlyclean-local: clean-local-@USE_NLS@ +maintainer-clean-local: clean-local-@USE_NLS@ include $(top_srcdir)/gnome-doc-utils.make -dist-hook: doc-dist-hook dist_man1_MANS = \ - deja-dup.1 \ - deja-dup-applet.1 \ - deja-dup-monitor.1 \ - deja-dup-preferences.1 + C/deja-dup.1 \ + C/deja-dup-applet.1 \ + C/deja-dup-monitor.1 \ + C/deja-dup-preferences.1 DOC_MODULE = deja-dup DOC_ENTITIES = -DOC_INCLUDES = legal.xml -DOC_FIGURES = \ - figures/start_window.png \ - figures/backup.png \ - figures/restore.png \ - figures/preferences.png +DOC_INCLUDES = +DOC_FIGURES = + +# Here's a bunch of translation support. It's largely stolen from dpkg + +# Extract the list of languages from the po4a config and po/LINGUAS files. +PO4A_LINGUAS = $(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' $(srcdir)/po4a.cfg) +LINGUAS = $(shell cat $(top_srcdir)/po/LINGUAS) +DOC_LINGUAS = $(LINGUAS) + +all-local: all-local-@USE_NLS@ +all-local-no: +all-local-yes: po4a.stamp + +# Put LINGUAS list into po4a.cfg, but only if needed (else we'll update +# timestamp on the cfg file unnecessarily. Also copy all the po files from the +# real po directory into the sub language directories in help where po4a looks +# for them. po4a modifies those po files, so we don't want it to access the +# real ones. +prepare.stamp: po4a.cfg $(top_srcdir)/po/LINGUAS + for lang in C $(LINGUAS); do \ + $(mkdir_p) $$lang; \ + test "$(srcdir)" = "." || cp -ar $(srcdir)/$$lang/* $$lang; \ + done + test "$(PO4A_LINGUAS)" = "$(LINGUAS)" || sed -i "s/^\(.*\[po4a_langs\] \).*$$/\1$(LINGUAS)/" $(srcdir)/po4a.cfg + touch $@ + +po4a.stamp: po4a.cfg $(dist_man1_MANS) C/deja-dup.xml prepare.stamp $(top_srcdir)/po/*.po + test -e $(srcdir)/no-po4a || $(PO4A) --no-backups --variable srcdir=$(srcdir) --variable top_srcdir=$(top_srcdir) $(srcdir)/po4a.cfg + touch $@ + +clean-local-no: +clean-local-yes: + for lang in $(LINGUAS); do \ + if [ -d $$lang ]; then \ + rm -f $$(echo "$(dist_man1_MANS)" | sed "s|C/|$$lang/|g"); \ + fi \ + done + test "$(srcdir)" = "." || rm -fr C + test -e $(srcdir)/no-po4a || $(PO4A) --rm-backups --rm-translations --variable top_srcdir=$(top_srcdir) --variable srcdir=$(srcdir) $(srcdir)/po4a.cfg + rm -f po4a.stamp prepare.stamp + +update-po: prepare.stamp + test -e $(srcdir)/no-po4a || $(PO4A) --no-backups --force --no-translations --variable srcdir=$(srcdir) $(srcdir)/po4a.cfg + test -e $(srcdir)/no-po4a || msgcat --use-first $(top_srcdir)/po/deja-dup.pot deja-dup-help.pot -o ../po/deja-dup.pot + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: +install-data-local-yes: + for lang in $(LINGUAS); do \ + if [ -d $$lang ]; then \ + files=$$(echo "$(dist_man1_MANS)" | sed "s|C/|$$lang/|g"); \ + $(MAKE) install-man \ + mandir="$(mandir)/$$lang" \ + man_MANS="" \ + dist_man1_MANS="$$files"; \ + fi \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + for lang in $(LINGUAS); do \ + if [ -d $$lang ]; then \ + files=$$(echo "$(dist_man1_MANS)" | sed "s|C/|$$lang/|g"); \ + $(MAKE) uninstall-man \ + mandir="$(mandir)/$$lang" \ + man_MANS="" \ + dist_man1_MANS="$$files"; \ + fi \ + done + +dist-hook: po4a.stamp doc-dist-hook + cp po4a.stamp $(distdir)/ + for lang in $(LINGUAS); do \ + $(mkdir_p) $(distdir)/$$lang; \ + cp -r $(srcdir)/$$lang/*.xml $(srcdir)/$$lang/*.1 $(distdir)/$$lang; \ + done + for lang in C $(LINGUAS); do \ + ! test -e $(distdir)/$$lang/deja-dup.xml || sed -i "s/%VERSION%/$(VERSION)/g;s/%DATE%/`date --utc +%F`/g;s/lang=\"C\"/lang=\"$$lang\"/g" $(distdir)/$$lang/*.xml $(distdir)/$$lang/*.1; \ + done + touch $(distdir)/no-po4a + +EXTRA_DIST = po4a.cfg -DOC_LINGUAS = +.PHONY: update-po diff -Nru deja-dup-7.4/help/Makefile.in deja-dup-10.0/help/Makefile.in --- deja-dup-7.4/help/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/help/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- # gnome-doc-utils.make - make magic for building documentation # Copyright (C) 2004-2005 Shaun McCance <shaunm@gnome.org> @@ -130,29 +130,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -180,6 +161,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -192,6 +174,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -255,8 +238,13 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ + +# Turn off g-d-u's attempt at translating docs -- po4a does it for us. +# This is very hacky, true. +_xml2po = cp ../$(srcdir)/$@ $(notdir $@).tmp && chmod u+w $(notdir $@).tmp || true _clean_doc_header = $(if $(DOC_H_FILE),clean-doc-header) _DOC_REAL_FORMATS = $(if $(DOC_USER_FORMATS),$(DOC_USER_FORMATS),$(DOC_FORMATS)) _DOC_REAL_LINGUAS = $(if $(filter environment,$(origin LINGUAS)), \ @@ -359,21 +347,23 @@ _clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc) _clean_dir = $(if $(DOC_MODULE),clean-doc-dir) dist_man1_MANS = \ - deja-dup.1 \ - deja-dup-applet.1 \ - deja-dup-monitor.1 \ - deja-dup-preferences.1 + C/deja-dup.1 \ + C/deja-dup-applet.1 \ + C/deja-dup-monitor.1 \ + C/deja-dup-preferences.1 DOC_MODULE = deja-dup DOC_ENTITIES = -DOC_INCLUDES = legal.xml -DOC_FIGURES = \ - figures/start_window.png \ - figures/backup.png \ - figures/restore.png \ - figures/preferences.png +DOC_INCLUDES = +DOC_FIGURES = + +# Here's a bunch of translation support. It's largely stolen from dpkg -DOC_LINGUAS = +# Extract the list of languages from the po4a config and po/LINGUAS files. +PO4A_LINGUAS = $(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' $(srcdir)/po4a.cfg) +LINGUAS = $(shell cat $(top_srcdir)/po/LINGUAS) +DOC_LINGUAS = $(LINGUAS) +EXTRA_DIST = po4a.cfg all: all-am .SUFFIXES: @@ -381,8 +371,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -423,8 +413,8 @@ esac; \ done; \ for i in $$list; do \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ + if test -f $$i; then file=$$i; \ + else file=$(srcdir)/$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ @@ -495,7 +485,7 @@ dist-hook check-am: all-am check: check-am -all-am: Makefile $(MANS) +all-am: Makefile $(MANS) all-local installdirs: for dir in "$(DESTDIR)$(man1dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ @@ -584,22 +574,27 @@ .MAKE: install-am install-strip -.PHONY: all all-am check check-am clean clean-generic clean-libtool \ - clean-local dist-hook distclean distclean-generic \ - distclean-libtool distclean-local distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-data-local install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-man1 \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic \ +.PHONY: all all-am all-local check check-am clean clean-generic \ + clean-libtool clean-local dist-hook distclean \ + distclean-generic distclean-libtool distclean-local distdir \ + dvi dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-man1 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-local uninstall-man \ uninstall-man1 +clean-local: clean-local-@USE_NLS@ +distclean-local: clean-local-@USE_NLS@ +mostlyclean-local: clean-local-@USE_NLS@ +maintainer-clean-local: clean-local-@USE_NLS@ + DOC_H_FILE ?= DOC_H_DOCS ?= @@ -898,14 +893,13 @@ install-doc-figs: @list='$(patsubst C/%,%,$(_DOC_C_FIGURES))'; for fig in $$list; do \ for lc in C $(_DOC_REAL_LINGUAS); do \ + figsymlink=false; \ if test -f "$$lc/$$fig"; then \ figfile="$$lc/$$fig"; \ elif test -f "$(srcdir)/$$lc/$$fig"; then \ figfile="$(srcdir)/$$lc/$$fig"; \ - elif test -f "C/$$fig"; then \ - figfile="C/$$fig"; \ else \ - figfile="$(srcdir)/C/$$fig"; \ + figsymlink=true; \ fi; \ figdir="$$lc/"`echo $$fig | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`; \ figdir="$(DESTDIR)$(HELP_DIR)/$(DOC_MODULE)/$$figdir"; \ @@ -914,8 +908,13 @@ $(mkinstalldirs) "$$figdir"; \ fi; \ figbase=`echo $$fig | sed -e 's/^.*\///'`; \ - echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ - $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + if $$figsymlink; then \ + echo "cd $$figdir && $(LN_S) -f ../../C/$$fig $$figbase"; \ + ( cd "$$figdir" && $(LN_S) -f "../../C/$$fig" "$$figbase" ); \ + else \ + echo "$(INSTALL_DATA) $$figfile $$figdir$$figbase"; \ + $(INSTALL_DATA) "$$figfile" "$$figdir$$figbase"; \ + fi; \ done; \ done @@ -966,7 +965,80 @@ rm -f "$(DESTDIR)$(OMF_DIR)/$(DOC_MODULE)/$$omf"; \ done -dist-hook: doc-dist-hook +all-local: all-local-@USE_NLS@ +all-local-no: +all-local-yes: po4a.stamp + +# Put LINGUAS list into po4a.cfg, but only if needed (else we'll update +# timestamp on the cfg file unnecessarily. Also copy all the po files from the +# real po directory into the sub language directories in help where po4a looks +# for them. po4a modifies those po files, so we don't want it to access the +# real ones. +prepare.stamp: po4a.cfg $(top_srcdir)/po/LINGUAS + for lang in C $(LINGUAS); do \ + $(mkdir_p) $$lang; \ + test "$(srcdir)" = "." || cp -ar $(srcdir)/$$lang/* $$lang; \ + done + test "$(PO4A_LINGUAS)" = "$(LINGUAS)" || sed -i "s/^\(.*\[po4a_langs\] \).*$$/\1$(LINGUAS)/" $(srcdir)/po4a.cfg + touch $@ + +po4a.stamp: po4a.cfg $(dist_man1_MANS) C/deja-dup.xml prepare.stamp $(top_srcdir)/po/*.po + test -e $(srcdir)/no-po4a || $(PO4A) --no-backups --variable srcdir=$(srcdir) --variable top_srcdir=$(top_srcdir) $(srcdir)/po4a.cfg + touch $@ + +clean-local-no: +clean-local-yes: + for lang in $(LINGUAS); do \ + if [ -d $$lang ]; then \ + rm -f $$(echo "$(dist_man1_MANS)" | sed "s|C/|$$lang/|g"); \ + fi \ + done + test "$(srcdir)" = "." || rm -fr C + test -e $(srcdir)/no-po4a || $(PO4A) --rm-backups --rm-translations --variable top_srcdir=$(top_srcdir) --variable srcdir=$(srcdir) $(srcdir)/po4a.cfg + rm -f po4a.stamp prepare.stamp + +update-po: prepare.stamp + test -e $(srcdir)/no-po4a || $(PO4A) --no-backups --force --no-translations --variable srcdir=$(srcdir) $(srcdir)/po4a.cfg + test -e $(srcdir)/no-po4a || msgcat --use-first $(top_srcdir)/po/deja-dup.pot deja-dup-help.pot -o ../po/deja-dup.pot + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: +install-data-local-yes: + for lang in $(LINGUAS); do \ + if [ -d $$lang ]; then \ + files=$$(echo "$(dist_man1_MANS)" | sed "s|C/|$$lang/|g"); \ + $(MAKE) install-man \ + mandir="$(mandir)/$$lang" \ + man_MANS="" \ + dist_man1_MANS="$$files"; \ + fi \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + for lang in $(LINGUAS); do \ + if [ -d $$lang ]; then \ + files=$$(echo "$(dist_man1_MANS)" | sed "s|C/|$$lang/|g"); \ + $(MAKE) uninstall-man \ + mandir="$(mandir)/$$lang" \ + man_MANS="" \ + dist_man1_MANS="$$files"; \ + fi \ + done + +dist-hook: po4a.stamp doc-dist-hook + cp po4a.stamp $(distdir)/ + for lang in $(LINGUAS); do \ + $(mkdir_p) $(distdir)/$$lang; \ + cp -r $(srcdir)/$$lang/*.xml $(srcdir)/$$lang/*.1 $(distdir)/$$lang; \ + done + for lang in C $(LINGUAS); do \ + ! test -e $(distdir)/$$lang/deja-dup.xml || sed -i "s/%VERSION%/$(VERSION)/g;s/%DATE%/`date --utc +%F`/g;s/lang=\"C\"/lang=\"$$lang\"/g" $(distdir)/$$lang/*.xml $(distdir)/$$lang/*.1; \ + done + touch $(distdir)/no-po4a + +.PHONY: update-po # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nru deja-dup-7.4/help/nb/deja-dup.1 deja-dup-10.0/help/nb/deja-dup.1 --- deja-dup-7.4/help/nb/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nb/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/nb/deja-dup-applet.1 deja-dup-10.0/help/nb/deja-dup-applet.1 --- deja-dup-7.4/help/nb/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nb/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/nb/deja-dup-monitor.1 deja-dup-10.0/help/nb/deja-dup-monitor.1 --- deja-dup-7.4/help/nb/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nb/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/nb/deja-dup-preferences.1 deja-dup-10.0/help/nb/deja-dup-preferences.1 --- deja-dup-7.4/help/nb/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nb/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/nb/deja-dup.xml deja-dup-10.0/help/nb/deja-dup.xml --- deja-dup-7.4/help/nb/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nb/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="nb"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Gjenoppretter + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/nb/nb.po deja-dup-10.0/help/nb/nb.po --- deja-dup-7.4/help/nb/nb.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nb/nb.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1366 @@ +# Norwegian Bokmal translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-02-01 21:18+0000\n" +"Last-Translator: Håvard Gulldahl \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-02-03 01:32+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, fuzzy, no-wrap +msgid "--version" +msgstr "Vis versjon" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, fuzzy, no-wrap +msgid "--restore" +msgstr "Gjenopprett" + +#. type: Plain text +#: C/deja-dup.1:26 +#, fuzzy +msgid "Restores only the specified files" +msgstr "Gjenopprett til en _spesiell mappe" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, fuzzy, no-wrap +msgid "deja-dup-preferences" +msgstr "Déjà Dup innstillinger" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"Dette programmet distribueres i håp om at programmet er nyttig, men uten " +"NOEN GARANTI, ikke engang implisitt garanti om at det er SALGBART eller " +"PASSER ET BESTEMT FORMÅL. Se GNU General Public License for detaljer." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "Ta sikkerhetskopi ved faste intervaller" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +#, fuzzy +msgid "Backing Up" +msgstr "Sikkerhetskopierer" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "Gjenoppretter" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +#, fuzzy +msgid "Preferences" +msgstr "Déjà Dup innstillinger" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Lokal mappe" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +#, fuzzy +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "_Krypter sikkerhetskopier" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +#, fuzzy +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "_Krypter sikkerhetskopier" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +#, fuzzy +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "_Krypter sikkerhetskopier" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +#, fuzzy +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "_Automatisk ta sikkerhetskopi ved faste intervaller" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +#, fuzzy +msgid "<guilabel>How often to backup</guilabel>" +msgstr "Hvor _ofte sikkerhetskopi skal tas:" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "SSH-server" + +#, fuzzy +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "Før inn passordet som skal brukes til å kryptere sikkerhetskopiene." + +#~ msgid "Backup your files" +#~ msgstr "Sikkerhetskopier systemet ditt" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Déjà Dup Sikkerhetskopi" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Déjà Dup Overvåker" + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "Amazon S3 Key ID" + +#~ msgid "Directories not to backup" +#~ msgstr "Ikke sikkerhetskopier følgende kataloger" + +#~ msgid "Directories to backup" +#~ msgstr "Sikkerhetskopier følgende kataloger" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Mappe på ditt system for å lagre sikkerhetskopier i." + +#~ msgid "How often to periodically backup" +#~ msgstr "Intervall for periodisk sikkerhetskopi" + +#~ msgid "Local backup location" +#~ msgstr "Plassering for lokal sikkerhetskopi" + +#~ msgid "SSH directory" +#~ msgstr "SSH-katalog" + +#~ msgid "SSH port" +#~ msgstr "SSH-port" + +#~ msgid "SSH username" +#~ msgstr "SSH-brukernavn" + +#~ msgid "The Amazon S3 bucket name to use" +#~ msgstr "Navn på Amazon S3 bucket" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "Katalog for SSH-tilkoblinger" + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "Sist gang Déjà Dup ble brukt" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "Sist gang Déjà Dup ble brukt (i ISO 8601-format)." + +#~ msgid "The number of days between backups." +#~ msgstr "Dager mellom sikkerhetskopiering." + +#~ msgid "The port used for SSH connections." +#~ msgstr "Hvilken port som brukes ved SSH-tilkoblinger." + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Hvilken protokoll som skal brukes til plasseringen av sikkerhetskopien. " +#~ "Velg mellom 's3', 'file' og 'ssh'." + +#~ msgid "The server used for SSH connections." +#~ msgstr "Hvilken server som brukes ved SSH-tilkoblingen." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Hvilket brukernavn som brukes ved SSH-tilkoblingen." + +#~ msgid "" +#~ "This list of directories will be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory." +#~ msgstr "" +#~ "Dette er listen over kataloger som skal sikkerhetskopieres. De " +#~ "forhåndsdefinerte navnene $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, " +#~ "$PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH og $VIDEO peker til " +#~ "brukerens spesielle kataloger. Relative katalognavn er relative til " +#~ "brukerens hjemmekatalog." + +#~ msgid "" +#~ "This list of directories will not be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory. " +#~ "This list takes precedence over the include list." +#~ msgstr "" +#~ "Dette er listen over kataloger som ikke skal sikkerhetskopieres. De " +#~ "forhåndsdefinerte navnene $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, " +#~ "$PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH og $VIDEO peker til " +#~ "brukerens spesielle kataloger. Relative katalognavn er relative til " +#~ "brukerens hjemmekatalog. Denne listen overstyrer listen over kataloger " +#~ "som skal sikkerhetskopieres." + +#~ msgid "Type of location to store backup" +#~ msgstr "Type plassering for å lagre sikkerhetskopiene" + +#~ msgid "Whether to automatically backup on a regular schedule." +#~ msgstr "" +#~ "Hvorvidt sikkerhetskopieringen skal gå automatisk, med et fast intervall." + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Hvorvidt sikkerhetskopiene skal krypteres." + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "Hvorvidt sikkerhetskopiene skal krypteres i lagerplasseringen. Du " +#~ "anbefales på det sterkeste å la denne være 'true'." + +#~ msgid "Whether to periodically backup" +#~ msgstr "Hvorvidt sikkerhetskopieringen skal gå med faste intervaller" + +#~ msgid "" +#~ "Which Amazon S3 bucket to store files in. This does not need to exist " +#~ "already. Only legal hostname strings are valid." +#~ msgstr "" +#~ "Hvilken Amazon S3 bucket sikkerhetskopiene skal oppbevares i. Denne " +#~ "behøver ikke å eksistere fra før av. Amazon tillater bare navn som i " +#~ "vertsnavn." + +#~ msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#~ msgstr "" +#~ "Din Amazon S3 «Key Identifier». Dette brukes som brukernavnet ditt av S3." + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Déjà Dup Applet" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% ferdig" + +#~ msgid "Backup about to start" +#~ msgstr "Sikkerhetskopiering er i ferd med å starte" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "En oppsatt sikkerhetskopiering starter straks. Du kan velge å utsette " +#~ "dette, eller å avbryte helt." + +#~ msgid "Skip Backup" +#~ msgstr "Hopp over sikkerhetskopiering" + +#~ msgid "Backup Later" +#~ msgstr "Ta sikkerhetskopi senere" + +#~ msgid "Encryption password needed" +#~ msgstr "Passord for kryptering behøves" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "Vennligst oppgi passord for sikkerhetskopiene." + +#~ msgid "Enter" +#~ msgstr "«Enter»" + +#~ msgid "Server password needed" +#~ msgstr "Behøver server-passord" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Vennligst oppgi passord for serveren til sikkerhetskopien." + +#~ msgid "Backup error occurred" +#~ msgstr "En feil skjedde under sikkerhetskopiering" + +#~ msgid "Rerun" +#~ msgstr "Kjør på nytt" + +#~ msgid "Backup _Later" +#~ msgstr "Ta sikkerhetskopi _senere" + +#~ msgid "_Skip Backup" +#~ msgstr "_Hopp over sikkerhetskopi" + +#~ msgid "Could not open preferences" +#~ msgstr "Kunne ikke åpne innstillinger" + +#~ msgid "Backup" +#~ msgstr "Sikkerhetskopier" + +#~ msgid "Backup location:" +#~ msgstr "Plassering for sikkerhetskopi:" + +#~ msgid "Unknown" +#~ msgstr "Ukjent" + +#~ msgid "Backup Failed" +#~ msgstr "Feil ved sikkerhetskopiering" + +#~ msgid "Backup Finished" +#~ msgstr "Sikkerhetskopiering ferdig" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "Filene dine er sikkerhetskopiert." + +#~ msgid "Backing up..." +#~ msgstr "Sikkerhetskopierer..." + +#~ msgid "Summary" +#~ msgstr "Sammendrag" + +#~ msgid "_Date:" +#~ msgstr "_Dato:" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Gjenopprett filer til _opprinnelig plassering" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Velg plassering for gjenopprettede filer" + +#~ msgid "Restore _folder:" +#~ msgstr "Gjenopprett _mappe:" + +#~ msgid "Restore date:" +#~ msgstr "Gjenopprett dato:" + +#~ msgid "Restore folder:" +#~ msgstr "Gjenopprett mappe:" + +#~ msgid "Checking for Backups" +#~ msgstr "Leter etter sikkerhetskopier" + +#~ msgid "Restore from When?" +#~ msgstr "Gjenopprett fra når?" + +#~ msgid "Restore to Where?" +#~ msgstr "Gjenopprett til hvor?" + +#~ msgid "No backups to restore" +#~ msgstr "Ingen sikkerhetskopier å gjenopprette" + +#~ msgid "Original location" +#~ msgstr "Opprinnelig plassering" + +#~ msgid "File to restore:" +#~ msgid_plural "Files to restore:" +#~ msgstr[0] "Fil å gjenopprette:" +#~ msgstr[1] "Filer å gjenopprette:" + +#~ msgid "Restore Failed" +#~ msgstr "Gjenoppretting feilet" + +#~ msgid "Restore Finished" +#~ msgstr "Gjenoppretting er ferdig" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Filene dine er gjenopprettet." + +#~ msgid "Restoring..." +#~ msgstr "Gjenoppretter..." + +#~ msgid "Restore given files" +#~ msgstr "Gjenopprett valgte filer" + +#~ msgid "No filenames provided" +#~ msgstr "Ingen filnavn er oppgitt" + +#~ msgid "_Restore" +#~ msgstr "_Gjenopprett" + +#~ msgid "_Backup" +#~ msgstr "_Sikkerhetskopier" + +#~ msgid "_File" +#~ msgstr "_Fil" + +#~ msgid "_Edit" +#~ msgstr "_Endre" + +#~ msgid "_Help" +#~ msgstr "_Hjelp" + +#~ msgid "Contents" +#~ msgstr "Innhold" + +#~ msgid "Get Help _Online..." +#~ msgstr "Få hjelp på _nettet..." + +#~ msgid "_Translate This Application..." +#~ msgstr "_Oversett dette programmet..." + +#~ msgid "_Report a Problem..." +#~ msgstr "_Si fra om et problem..." + +#~ msgid "Choose backup destination" +#~ msgstr "Velg plassering for sikkerhetskopi" + +#~ msgid "Bucket %s on Amazon S3" +#~ msgstr "Bucket %s hos Amazon S3" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Amazon S3-passord" + +#~ msgid "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." +#~ msgstr "" +#~ "Oppgi din bruker-ID og hemmelig nøkkel hos Amazon Web Services. Dette er " +#~ "ikke det samme som det generelle brukernavnet og passordet hos amazon.com." + +#~ msgid "No username specified" +#~ msgstr "Ingen brukernavn oppgitt" + +#~ msgid "No server specified" +#~ msgstr "Ingen server er angitt" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s på ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH-passord" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Oppgi SSH-brukernavn og -passord for server %s." + +#~ msgid "Could not run duplicity" +#~ msgstr "Kunne ikke starte duplicity" + +#~ msgid "" +#~ "Could not understand duplicity version.\n" +#~ "\n" +#~ msgstr "" +#~ "Kan ikke tolke versjonen av duplicity.\n" +#~ "\n" + +#~ msgid "" +#~ "Could not understand duplicity version '%s'.\n" +#~ "\n" +#~ msgstr "" +#~ "Kan ikke tolke versjon '%s' av duplicity.\n" +#~ "\n" + +#~ msgid "Without duplicity, Déjà Dup cannot function. It will close now." +#~ msgstr "Déjà Dup fungerer ikke uten duplicity. Programmet lukkes nå." + +#~ msgid "Duplicity's version is too old" +#~ msgstr "Versjonen av duplicity er for gammel." + +#~ msgid "" +#~ "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only " +#~ "found version %d.%d.%.2d" +#~ msgstr "" +#~ "Déjà Dup behøver minimum versjon %d.%d.%.2d av duplicity, men kunne bare " +#~ "finne versjon %d.%d.%.2d" + +#~ msgid "Preparing..." +#~ msgstr "Klargjør..." + +#~ msgid "Cleaning up..." +#~ msgstr "Rydder opp..." + +#~ msgid "Failed with an unknown error." +#~ msgstr "Feilet av ukjent årsak." + +#~ msgid "Could not restore '%s': File not found in backup" +#~ msgstr "Kunne ikke gjenopprette '%s': Filen finnes ikke i sikkerhetskopi" + +#~ msgid "Invalid ID" +#~ msgstr "Ugyldig ID" + +#~ msgid "Invalid secret key" +#~ msgstr "Ugyldig hemmelig nøkkel" + +#~ msgid "No backup files found" +#~ msgstr "Ingen sikkerhetskopier ble funnet" + +#~ msgid "Could not display %s" +#~ msgstr "Kunne ikke vise %s" + +#~ msgid "About Déjà Dup" +#~ msgstr "Om Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Håvard Gulldahl https://launchpad.net/~havard" + +#~ msgid "" +#~ "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 3 of the License, or (at your " +#~ "option) any later version." +#~ msgstr "" +#~ "Dette programmet er fri programvare. Du kan redistribuere det og/eller " +#~ "modifisere det under vilkårene oppgitt i GNU General Public License " +#~ "(GPL), som publiseres av Free Software Foundation -- enten i versjon 3 av " +#~ "GPL, eller en senere versjon." + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Sammen med dette programmet skulle det ha fulgt med en kopi av GNU " +#~ "General Public License (GPL). Hvis det ikke gjorde det, skriv til Free " +#~ "Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-" +#~ "1307, USA." + +#~ msgid "Restoring files..." +#~ msgstr "Gjenoppretter filer..." + +#~ msgid "" +#~ "Not all files could be restored. Any files that could not be restored may " +#~ "still be found in %s." +#~ msgstr "" +#~ "Ikke alle filene kunne gjenopprettes. De filene som ikke er gjenopprettet " +#~ "kan fortsatt finnes i %s." + +#~ msgid "Could not restore %s: %s" +#~ msgstr "Kunne ikke gjenopprette %s: %s" + +#~ msgid "Checking for backups..." +#~ msgstr "Ser etter sikkerhetskopier..." + +#~ msgid "Encryption Password" +#~ msgstr "Krypterings-passord" + +#~ msgid "Déjà Dup backup passphrase" +#~ msgstr "Déjà Dup sikkerhetsfrase" + +#~ msgid "Another Déjà Dup is already running" +#~ msgstr "Déjà Dup kjører allerede" + +#~ msgid "Revert to Previous Version..." +#~ msgid_plural "Revert to Previous Versions..." +#~ msgstr[0] "Gå tilbake til tidligere versjon..." +#~ msgstr[1] "Gå tilbake til tidligere versjoner..." + +#~ msgid "Restore file from backup" +#~ msgid_plural "Restore files from backup" +#~ msgstr[0] "Gjenopprett fil fra sikkerhetskopi" +#~ msgstr[1] "Gjenopprett filer fra sikkerhetskopi" + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "Select Folder" +#~ msgstr "Velg mappe" + +#~ msgid "Home Folder" +#~ msgstr "Hjemmemappe" + +#~ msgid "Trash" +#~ msgstr "Søpla" + +#~ msgid "Choose folder" +#~ msgstr "Velg mappe" + +#~ msgid "Could not add the folder" +#~ msgstr "Kunne ikke legge til mappe" + +#~ msgid "%s is already in the list." +#~ msgstr "%s er allerede i lista." + +#~ msgid "Daily" +#~ msgstr "Daglig" + +#~ msgid "Weekly" +#~ msgstr "Ukentlig" + +#~ msgid "Biweekly" +#~ msgstr "Annenhver uke" + +#~ msgid "Monthly" +#~ msgstr "Månedlig" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "Hver %d. dag" +#~ msgstr[1] "Hver %d. dag" + +#~ msgid "_Backup location:" +#~ msgstr "_Plassering av sikkerhetskopi:" + +#~ msgid "S3 buc_ket:" +#~ msgstr "S3 buc_ket:" + +#~ msgid "S3 I_D:" +#~ msgstr "S3 I_D:" + +#~ msgid "_Folder:" +#~ msgstr "_Mappe:" + +#~ msgid "_Username:" +#~ msgstr "Br_ukernavn:" + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "_Directory:" +#~ msgstr "_Katalog:" + +#~ msgid "I_nclude:" +#~ msgstr "I_nkluder:" + +#~ msgid "E_xclude:" +#~ msgstr "_Unnta:" diff -Nru deja-dup-7.4/help/nl/deja-dup.1 deja-dup-10.0/help/nl/deja-dup.1 --- deja-dup-7.4/help/nl/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nl/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/nl/deja-dup-applet.1 deja-dup-10.0/help/nl/deja-dup-applet.1 --- deja-dup-7.4/help/nl/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nl/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/nl/deja-dup-monitor.1 deja-dup-10.0/help/nl/deja-dup-monitor.1 --- deja-dup-7.4/help/nl/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nl/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/nl/deja-dup-preferences.1 deja-dup-10.0/help/nl/deja-dup-preferences.1 --- deja-dup-7.4/help/nl/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nl/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/nl/deja-dup.xml deja-dup-10.0/help/nl/deja-dup.xml --- deja-dup-7.4/help/nl/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nl/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="nl"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Herstellen + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/nl/nl.po deja-dup-10.0/help/nl/nl.po --- deja-dup-7.4/help/nl/nl.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/nl/nl.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1159 @@ +# Dutch translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-03-26 18:45+0000\n" +"Last-Translator: ubby \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-03-29 14:20+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, fuzzy, no-wrap +msgid "--version" +msgstr "Toon versie" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, fuzzy, no-wrap +msgid "--restore" +msgstr "Herstel" + +#. type: Plain text +#: C/deja-dup.1:26 +#, fuzzy +msgid "Restores only the specified files" +msgstr "Herstel naar een specifieke map" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, fuzzy, no-wrap +msgid "deja-dup-preferences" +msgstr "Déjà Dup voorkeuren" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "Reservekopie met regelmatige intervallen plannen" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +#, fuzzy +msgid "Backing Up" +msgstr "Backup" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "Herstellen" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +#, fuzzy +msgid "Preferences" +msgstr "Déjà Dup voorkeuren" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Lokale map" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "SSH server" + +#~ msgid "Backup your files" +#~ msgstr "Reservekopie van Uw bestanden maken" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Déjà Dup Reservekopie Hulpmiddel" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Déjà Dup Monitor" + +#~ msgid "Amazon S3 Access Key ID" +#~ msgstr "Amazon S3 toegangs code ID" + +#~ msgid "Directories not to backup" +#~ msgstr "Mappen om geen reservekopie van te maken" + +#~ msgid "Directories to backup" +#~ msgstr "Mappen om reservekopiën van te maken" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Map op Uw systeem om de reservekopiën te bewaren" + +#~ msgid "How often to periodically backup" +#~ msgstr "Hoe vaak periodiek reservekopiën maken" + +#~ msgid "Local backup location" +#~ msgstr "Plaatselijke reservekopielocatie" + +#~ msgid "SSH directory" +#~ msgstr "SSH map" + +#~ msgid "SSH port" +#~ msgstr "SSH poort" + +#~ msgid "SSH username" +#~ msgstr "SSH gebruikersnaam" + +#~ msgid "The Amazon S3 bucket name to use" +#~ msgstr "De Amazon S3 emmer naam om te gebruiken" + +#~ msgid "The Amazon S3 folder" +#~ msgstr "De Amazon S3 map" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "De folder die voor SSH verbindingen wordt gebruikt." + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "De laatste keer dat Déjà Dup is gebruikt" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "De laatste keer dat Déjà Dup in gebruikt in ISO 8601 formaat." + +#~ msgid "The number of days between backups." +#~ msgstr "Het aantal dagen tussen backups." + +#~ msgid "The port used for SSH connections." +#~ msgstr "De poort die voor SSH verbindingen wordt gebruikt." + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Het protocol dat voor de backup locatie wordt gebruikt. De geldige " +#~ "waarden zijn ' s3' , ' file' , of ' ssh'." + +#~ msgid "The server used for SSH connections." +#~ msgstr "De server die voor SSH verbindingen wordt gebruikt." + +#~ msgid "The user used for SSH connections." +#~ msgstr "De gebruiker die voor SSH verbindingen wordt gebruikt." + +#~ msgid "Type of location to store backup" +#~ msgstr "Type locatie om backup op te slaan" + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Of om uw backup te coderen" + +#~ msgid "Whether to periodically backup" +#~ msgstr "Of een periodiek backup" + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Déjà Dup Applet" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% compleet" + +#~ msgid "Backup Later" +#~ msgstr "Backup later" + +#~ msgid "Server password needed" +#~ msgstr "Server paswoord nodig" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Gelieve uw serverwachtwoord voor uw backup in te voeren." + +#~ msgid "Backup error occurred" +#~ msgstr "Backup fout kwam voor" + +#~ msgid "Rerun" +#~ msgstr "Herhaal" + +#~ msgid "Backup _Later" +#~ msgstr "Backup _Later" + +#~ msgid "Could not open preferences" +#~ msgstr "Kan voorkeuren niet openen" + +#~ msgid "Backup location:" +#~ msgstr "Backup locatie:" + +#~ msgid "Unknown" +#~ msgstr "Onbekend" + +#~ msgid "Backup Failed" +#~ msgstr "Backup is niet gelukt" + +#~ msgid "Backup Finished" +#~ msgstr "Backup is klaar" + +#~ msgid "Summary" +#~ msgstr "Samenvatting" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Herstel bestanden naar de originele locatie" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Kies locatie voor herstelde bestanden" + +#~ msgid "Restore _folder:" +#~ msgstr "Herstel _map:" + +#~ msgid "Restore date:" +#~ msgstr "Herstel datum:" + +#~ msgid "Restore folder:" +#~ msgstr "Herstel map:" + +#~ msgid "Checking for Backups" +#~ msgstr "Controleren op backups" + +#~ msgid "Restore from When?" +#~ msgstr "Herstel van wanneer?" + +#~ msgid "Restore to Where?" +#~ msgstr "Waar naartoe herstellen?" + +#~ msgid "No backups to restore" +#~ msgstr "Geen backups om te herstellen" + +#~ msgid "Original location" +#~ msgstr "Originele locatie" + +#~ msgid "File to restore:" +#~ msgid_plural "Files to restore:" +#~ msgstr[0] "Bestand om te herstellen:" +#~ msgstr[1] "Bestanden om te herstellen:" + +#~ msgid "Restore Failed" +#~ msgstr "Herstellen mislukt" + +#~ msgid "Restore Finished" +#~ msgstr "Herstel is klaar" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Uw bestanden zijn succesvol hersteld." + +#~ msgid "Restoring..." +#~ msgstr "Herstellen..." + +#~ msgid "No filenames provided" +#~ msgstr "Geen bestandsnamen verstrekt" + +#~ msgid "Contents" +#~ msgstr "Inhoud" + +#~ msgid "Choose backup destination" +#~ msgstr "Kies backup bestemming" + +#~ msgid "Folder %s on Amazon S3" +#~ msgstr "Map %s op Amazon S3" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Amazon S3 paswoord" + +#~ msgid "No username specified" +#~ msgstr "Geen gespecificeerde gebruikersnaam" + +#~ msgid "No server specified" +#~ msgstr "Geen gespecificeerde server" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s op ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH paswoord?" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Vul uw SSH gebruikersnaam en paswoord in voor server %s." + +#~ msgid "Could not run duplicity" +#~ msgstr "Kon geen dupliciteit in werking stellen" + +#~ msgid "" +#~ "Could not understand duplicity version.\n" +#~ "\n" +#~ msgstr "" +#~ "Kon dupliciteits versie niet begrijpen.\n" +#~ "\n" + +#~ msgid "" +#~ "Could not understand duplicity version '%s'.\n" +#~ "\n" +#~ msgstr "" +#~ "Kon dupliciteits versie niet begrijpen %s.\n" +#~ "\n" + +#~ msgid "Preparing..." +#~ msgstr "Voorbereiden..." + +#~ msgid "Cleaning up..." +#~ msgstr "Opschonen..." + +#~ msgid "Could not restore '%s': File not found in backup" +#~ msgstr "Kan '%s' niet herstellen: Bestand niet gevonden in de backup" + +#~ msgid "Invalid ID." +#~ msgstr "Ongeldig ID." + +#~ msgid "Invalid secret key." +#~ msgstr "Ongeldige geheime code." + +#~ msgid "No backup files found" +#~ msgstr "Geen backup bestanden gevonden" + +#~ msgid "Could not display %s" +#~ msgstr "Kan %s niet weergeven" + +#~ msgid "About Déjà Dup" +#~ msgstr "Over Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " stani https://launchpad.net/~stani\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " stani https://launchpad.net/~stani\n" +#~ " ubby https://launchpad.net/~kostas-sytske" + +#~ msgid "Restoring files..." +#~ msgstr "Bestanden herstellen..." + +#~ msgid "Could not restore %s: %s" +#~ msgstr "Kan %s: %s niet herstellen" + +#~ msgid "Checking for backups..." +#~ msgstr "Controleren op backups..." + +#~ msgid "Restore file from backup" +#~ msgid_plural "Restore files from backup" +#~ msgstr[0] "Herstel bestand van backup" +#~ msgstr[1] "Herstel bestanden van backup" + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "Select Folder" +#~ msgstr "Selecteer map" + +#~ msgid "Home Folder" +#~ msgstr "Home map" + +#~ msgid "Trash" +#~ msgstr "Prullenbak" + +#~ msgid "Choose folder" +#~ msgstr "Kies map" + +#~ msgid "Could not add the folder" +#~ msgstr "Kan de map niet toevoegen" + +#~ msgid "%s is already in the list." +#~ msgstr "%s is al in de lijst." + +#~ msgid "Daily" +#~ msgstr "Dagelijks" + +#~ msgid "Weekly" +#~ msgstr "Wekelijks" + +#~ msgid "Biweekly" +#~ msgstr "Iedere twee weken" + +#~ msgid "Monthly" +#~ msgstr "Maandelijks" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "Iedere %d dag" +#~ msgstr[1] "Iedere %d dagen" + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "Amazon S3 Sleutel ID" diff -Nru deja-dup-7.4/help/po4a.cfg deja-dup-10.0/help/po4a.cfg --- deja-dup-7.4/help/po4a.cfg 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/po4a.cfg 2009-06-05 09:41:05.000000000 -0400 @@ -0,0 +1,15 @@ +[po4a_langs] ar da de en_GB es fi fr gl he id lt nb nl ps ru sv tr +[po4a_paths] deja-dup-help.pot $lang:$lang/$lang.po + +# Make sure the output is generated with the right encoding. +# Also allow any amount of translation to be acceptable (vs 80% default) +[po4a_alias:man] man opt:"-M utf-8 -L utf-8 -A utf-8 -k 0" +[po4a_alias:docbook] docbook opt:"-M utf-8 -L utf-8 -A utf-8 -k 0" + +[type:man] $(srcdir)/C/deja-dup.1 $lang:$lang/deja-dup.1 +[type:man] $(srcdir)/C/deja-dup-applet.1 $lang:$lang/deja-dup-applet.1 +[type:man] $(srcdir)/C/deja-dup-monitor.1 $lang:$lang/deja-dup-monitor.1 +[type:man] $(srcdir)/C/deja-dup-preferences.1 $lang:$lang/deja-dup-preferences.1 + +[type:docbook] $(srcdir)/C/deja-dup.xml $lang:$lang/deja-dup.xml + diff -Nru deja-dup-7.4/help/ps/deja-dup.1 deja-dup-10.0/help/ps/deja-dup.1 --- deja-dup-7.4/help/ps/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ps/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/ps/deja-dup-applet.1 deja-dup-10.0/help/ps/deja-dup-applet.1 --- deja-dup-7.4/help/ps/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ps/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/ps/deja-dup-monitor.1 deja-dup-10.0/help/ps/deja-dup-monitor.1 --- deja-dup-7.4/help/ps/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ps/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/ps/deja-dup-preferences.1 deja-dup-10.0/help/ps/deja-dup-preferences.1 --- deja-dup-7.4/help/ps/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ps/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/ps/deja-dup.xml deja-dup-10.0/help/ps/deja-dup.xml --- deja-dup-7.4/help/ps/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ps/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="ps"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/ps/ps.po deja-dup-10.0/help/ps/ps.po --- deja-dup-7.4/help/ps/ps.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ps/ps.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,860 @@ +# Pashto translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-04-08 08:49+0000\n" +"Last-Translator: Pashto \n" +"Language-Team: Pashto \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n!=1;\n" +"X-Launchpad-Export-Date: 2009-04-26 19:36+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +msgid "Local Folders" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Backup your files" +#~ msgstr "خپل دوتنونه شاتړ کړي" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Pashto https://launchpad.net/~pashto" diff -Nru deja-dup-7.4/help/ru/deja-dup.1 deja-dup-10.0/help/ru/deja-dup.1 --- deja-dup-7.4/help/ru/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ru/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/ru/deja-dup-applet.1 deja-dup-10.0/help/ru/deja-dup-applet.1 --- deja-dup-7.4/help/ru/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ru/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/ru/deja-dup-monitor.1 deja-dup-10.0/help/ru/deja-dup-monitor.1 --- deja-dup-7.4/help/ru/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ru/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/ru/deja-dup-preferences.1 deja-dup-10.0/help/ru/deja-dup-preferences.1 --- deja-dup-7.4/help/ru/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ru/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/ru/deja-dup.xml deja-dup-10.0/help/ru/deja-dup.xml --- deja-dup-7.4/help/ru/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ru/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="ru"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Идёт восстановление + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/ru/ru.po deja-dup-10.0/help/ru/ru.po --- deja-dup-7.4/help/ru/ru.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/ru/ru.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1203 @@ +# Russian translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-05-02 04:42+0000\n" +"Last-Translator: Sergei Sedov \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Launchpad-Export-Date: 2009-05-06 00:00+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"Эта программа распространяется в надежде, что она будет полезна, но БЕЗ " +"КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, даже без подразумеваемой КОММЕРЧЕСКОЙ ЦЕННОСТИ " +"или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для дополнительной информации " +"обратитесь к лицензии GNU General Public License." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "Идёт восстановление" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Локальный каталог" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "Сервер SSH" + +#~ msgid "Backup your files" +#~ msgstr "Резервное копирование ваших файлов" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Утилита резервного копирования Déjà Dup" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Монитор Déjà Dup" + +#~ msgid "Schedule backups at regular intervals" +#~ msgstr "Запланированноые резервное копирование с регулярными интервалами" + +#~ msgid "Amazon S3 Access Key ID" +#~ msgstr "Ключ доступа ID Amazon S3" + +#~ msgid "Directories not to backup" +#~ msgstr "Каталоги, которые не надо сохранять" + +#~ msgid "Directories to backup" +#~ msgstr "Каталоги, которые надо сохранить" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "" +#~ "Каталоги на вашем компьютере, в которых необходимо хранить резервные " +#~ "копии." + +#~ msgid "How often to periodically backup" +#~ msgstr "С какой периодичностью делать архивные копии" + +#~ msgid "SSH directory" +#~ msgstr "Каталог SSH" + +#~ msgid "SSH port" +#~ msgstr "Порт SSH" + +#~ msgid "SSH username" +#~ msgstr "Имя пользователя SSH" + +#~ msgid "The Amazon S3 folder" +#~ msgstr "Каталог на Amazon S3" + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "Время, когда Déjà Dup запускался последний раз" + +#~ msgid "The number of days between backups." +#~ msgstr "Количество дней между резервными копиями" + +#~ msgid "The server used for SSH connections." +#~ msgstr "Сервер, используемый для SSH соединений." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Пользователь, используемый для SSH соединений." + +#~ msgid "Whether to automatically backup on a regular schedule." +#~ msgstr "Следует ли автоматически создавать резервные копии по расписанию." + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Следует ли шифровать резервную копию" + +#~ msgid "Whether to periodically backup" +#~ msgstr "Выполнять ли периодическое резервное копирование" + +#~ msgid "Show version" +#~ msgstr "Показать версию" + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Апплет Déjà Dup" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "Скоро начнётся ранее запланированное резервное копирование. Вы можете " +#~ "отложить его или отменить совсем." + +#~ msgid "Skip Backup" +#~ msgstr "Пропустить резервное копирование" + +#~ msgid "Backup Later" +#~ msgstr "Выполнить резервное копирование позже" + +#~ msgid "Encryption password needed" +#~ msgstr "Требуется пароль для шифрования" + +#~ msgid "Enter" +#~ msgstr "Enter" + +#~ msgid "Server password needed" +#~ msgstr "Необходим пароль сервера" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Пожалуйста, введите пароль сервера" + +#~ msgid "Backup error occurred" +#~ msgstr "Произошла ошибка резервного копирования" + +#~ msgid "Rerun" +#~ msgstr "Запустить повторно" + +#~ msgid "Backup _Later" +#~ msgstr "Выполнить резервное копирование _позже" + +#~ msgid "_Skip Backup" +#~ msgstr "_Пропустить резервное копирование" + +#~ msgid "Could not open preferences" +#~ msgstr "Не могу открыть настройки" + +#~ msgid "Backup" +#~ msgstr "Резервная копия" + +#~ msgid "Backup location:" +#~ msgstr "Местоположение резервных копий" + +#~ msgid "Backup Failed" +#~ msgstr "Резервное копирование не удалось" + +#~ msgid "Backup Finished" +#~ msgstr "Резервное копирование завершено" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "Ваши файлы были успешно сохранены" + +#~ msgid "Backing up..." +#~ msgstr "Резервное копирование..." + +#~ msgid "Summary" +#~ msgstr "Сводная информация" + +#~ msgid "Restore" +#~ msgstr "Восстановить" + +#~ msgid "_Date:" +#~ msgstr "_Дата:" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Восстановить файлы на их прежнее местоположение" + +#~ msgid "Restore to _specific folder" +#~ msgstr "Восстановить в _указанный каталог" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Выберите местоположение для восстановленных файлов" + +#~ msgid "Restore _folder:" +#~ msgstr "Восстановить _каталог" + +#~ msgid "Restore date:" +#~ msgstr "Дата восстановления:" + +#~ msgid "Restore folder:" +#~ msgstr "Восстановить каталог:" + +#~ msgid "Restore from When?" +#~ msgstr "Восстановить откуда?" + +#~ msgid "Restore to Where?" +#~ msgstr "Восстановить куда ?" + +#~ msgid "No backups to restore" +#~ msgstr "Нет резервных копий для восстановления" + +#~ msgid "File to restore:" +#~ msgid_plural "Files to restore:" +#~ msgstr[0] "Файл для восстановления:" +#~ msgstr[1] "Файлы для восстановления:" + +#~ msgid "Restore Failed" +#~ msgstr "Восстановление не удалось" + +#~ msgid "Restore Finished" +#~ msgstr "Восстановление завершено" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Ваши файлы были успешно восстановлены" + +#~ msgid "Restoring..." +#~ msgstr "Идёт восстановление..." + +#~ msgid "Restore given files" +#~ msgstr "Восстановить данные файлы" + +#~ msgid "_Restore" +#~ msgstr "_Восстановление" + +#~ msgid "_Backup" +#~ msgstr "_Резервное копирование" + +#~ msgid "_File" +#~ msgstr "_Файл" + +#~ msgid "_Edit" +#~ msgstr "_Настройки" + +#~ msgid "_Help" +#~ msgstr "_Помощь" + +#~ msgid "Get Help _Online..." +#~ msgstr "Помощь в интернете..." + +#~ msgid "_Translate This Application..." +#~ msgstr "_Перевести это приложение..." + +#~ msgid "_Report a Problem..." +#~ msgstr "_ Сообщить об ошибке..." + +#~ msgid "Choose backup destination" +#~ msgstr "Выберите местоположение резервной копии" + +#~ msgid "Folder %s on Amazon S3" +#~ msgstr "Каталог %s на Amazon S3" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Пароль на Amazon S3" + +#~ msgid "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." +#~ msgstr "" +#~ "Введите свои пользовательский ID и секетный ключ на Amazon Web Services. " +#~ "Он не должен соответствовать вашему логину и паролю на amazon.com" + +#~ msgid "No username specified" +#~ msgstr "Имя пользователя не указано" + +#~ msgid "No server specified" +#~ msgstr "Не указан сервер" + +#~ msgid "SSH Password" +#~ msgstr "Пароль SSH" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Введите ваше имя пользователя и пароль для SSH сервера %s." + +#~ msgid "Preparing..." +#~ msgstr "Подготовка..." + +#~ msgid "Cleaning up..." +#~ msgstr "Очистка..." + +#~ msgid "Failed with an unknown error." +#~ msgstr "Не удалось (неизвестная ошибка)" + +#~ msgid "Could not restore '%s': File not found in backup" +#~ msgstr "" +#~ "Не получилось восстановить '%s': файл не найден в архиве резервного " +#~ "копирования" + +#~ msgid "Invalid ID." +#~ msgstr "Неправильный ID." + +#~ msgid "Invalid secret key." +#~ msgstr "Не правильный секретный ключ." + +#~ msgid "Bad encryption password." +#~ msgstr "Не правильный пароль шифрования" + +#~ msgid "No backup files found" +#~ msgstr "Резервных копий не обнаружено" + +#~ msgid "About Déjà Dup" +#~ msgstr "О Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Sergei Sedov https://launchpad.net/~serg-sedov\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Michael Terry https://launchpad.net/~mterry\n" +#~ " Sergei Sedov https://launchpad.net/~serg-sedov" + +#~ msgid "" +#~ "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 3 of the License, or (at your " +#~ "option) any later version." +#~ msgstr "" +#~ "Эта программа является свободным ПО; вы можете передавать ее и/или " +#~ "модифицировать в соответствии с условиями GNU General Public License " +#~ "версии 3 или, на ваш выбор, более поздней как она публикуется фондом " +#~ "свободного программного обеспечения FSF;" + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Вы должны получит копию лицензии GNU GeneralPublic License вместе с " +#~ "программой;Если этого не произошло, напишите а фонд свободного " +#~ "программного обеспеченияFSF по адресу Free·Software·Foundation,·Inc.," +#~ "·59·Temple Place·-·Suite·330,·Boston,·MA··02111-1307,·USA." + +#~ msgid "Restoring files..." +#~ msgstr "Восстановление файлов..." + +#~ msgid "" +#~ "Not all files could be restored. Any files that could not be restored may " +#~ "still be found in %s." +#~ msgstr "" +#~ "Не все файлы могут быть восстановлены. Любые файлы, которые не удалось " +#~ "восстановить могут быть найдены в %s." + +#~ msgid "Could not restore %s: %s" +#~ msgstr "Не смог восстановить %s: %s" + +#~ msgid "Encryption Password" +#~ msgstr "Пароль шифрования" + +#~ msgid "Enter the password used to encrypt your backup files." +#~ msgstr "Введите пароль для шифрования резервных копий файлов." + +#~ msgid "Another Déjà Dup is already running" +#~ msgstr "Уже запущена одна копия Déjà Dup" + +#~ msgid "Revert to Previous Version..." +#~ msgid_plural "Revert to Previous Versions..." +#~ msgstr[0] "Вернуться к предыдущей версии..." +#~ msgstr[1] "Вернуться к предыдущим версиям..." + +#~ msgid "Restore file from backup" +#~ msgid_plural "Restore files from backup" +#~ msgstr[0] "Восстановить файл из резервной копии" +#~ msgstr[1] "Восстановить файлы из резервной копии" + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "Select Folder" +#~ msgstr "Выбрать каталог" + +#~ msgid "Home Folder" +#~ msgstr "Домашний каталог" + +#~ msgid "Trash" +#~ msgstr "Корзина" + +#~ msgid "Choose folder" +#~ msgstr "Выбрать каталог" + +#~ msgid "Could not add the folder" +#~ msgstr "Не смог добавить каталог" + +#~ msgid "%s is already in the list." +#~ msgstr "%s уже в списке." + +#~ msgid "Daily" +#~ msgstr "Ежедневно" + +#~ msgid "Weekly" +#~ msgstr "Еженедельно" + +#~ msgid "Biweekly" +#~ msgstr "Каждые две недели" + +#~ msgid "Monthly" +#~ msgstr "Ежемесячно" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "Каждый %d день" +#~ msgstr[1] "Каждые %d дней" + +#~ msgid "Déjà Dup Preferences" +#~ msgstr "Настройки Déjà Dup" + +#~ msgid "_Backup location:" +#~ msgstr "_Местоположение резервной копии:" + +#~ msgid "_Folder:" +#~ msgstr "_Каталог" + +#~ msgid "_Username:" +#~ msgstr "_Имя пользователя:" + +#~ msgid "_Server:" +#~ msgstr "_Сервер:" + +#~ msgid "_Port:" +#~ msgstr "_Порт:" + +#~ msgid "I_nclude:" +#~ msgstr "В_ключить:" + +#~ msgid "E_xclude:" +#~ msgstr "_Исключить:" + +#~ msgid "_Encrypt backup files" +#~ msgstr "_Зашифровать копируемые файлы" + +#~ msgid "_Automatically backup on a regular schedule" +#~ msgstr "_Автоматическое резервное копирование по расписанию" + +#~ msgid "How _often to backup:" +#~ msgstr "Как _часто выполнять копирование:" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "Каталог используемый для SSH соединений." + +#~ msgid "The port used for SSH connections." +#~ msgstr "Порт используемый для SSH соединений." + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "Следует ли шифровать ваши файлы резервных копий? Настоятельно " +#~ "рекомендуется оставить как 'true'." + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% завершено" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "" +#~ "Пожалуйста, введите пароль шифрования для ваших файлов резервных копий." + +#~ msgid "Checking for Backups" +#~ msgstr "Проверяю резервные архивы" + +#~ msgid "Original location" +#~ msgstr "Первоначальное местоположение" + +#~ msgid "Contents" +#~ msgstr "Содержимое" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s на ssh://%s@%s:%d" + +#~ msgid "" +#~ "Your Amazon Web Services account is not signed up for the S3 service." +#~ msgstr "Ваш аккаунт на службе Amazon не имеет подписки на сервис S3." + +#~ msgid "Checking for backups..." +#~ msgstr "Проверяю резервные копии..." + +#~ msgid "S3 Access Key I_D:" +#~ msgstr "Ключ доступа I_D S3:" diff -Nru deja-dup-7.4/help/sv/deja-dup.1 deja-dup-10.0/help/sv/deja-dup.1 --- deja-dup-7.4/help/sv/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/sv/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/sv/deja-dup-applet.1 deja-dup-10.0/help/sv/deja-dup-applet.1 --- deja-dup-7.4/help/sv/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/sv/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/sv/deja-dup-monitor.1 deja-dup-10.0/help/sv/deja-dup-monitor.1 --- deja-dup-7.4/help/sv/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/sv/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/sv/deja-dup-preferences.1 deja-dup-10.0/help/sv/deja-dup-preferences.1 --- deja-dup-7.4/help/sv/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/sv/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/sv/deja-dup.xml deja-dup-10.0/help/sv/deja-dup.xml --- deja-dup-7.4/help/sv/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/sv/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="sv"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Återställer + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/sv/sv.po deja-dup-10.0/help/sv/sv.po --- deja-dup-7.4/help/sv/sv.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/sv/sv.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,1448 @@ +# Swedish translation for deja-dup +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-02-13 14:46+0000\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-03-29 14:20+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +# type: Content of:
+#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, fuzzy, no-wrap +msgid "--version" +msgstr "Visa version" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, fuzzy, no-wrap +msgid "--restore" +msgstr "Återskapa" + +#. type: Plain text +#: C/deja-dup.1:26 +#, fuzzy +msgid "Restores only the specified files" +msgstr "Återskapa till _specifik mapp" + +# type: SH +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +# type: TP +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +# type: SH +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +# type: TH +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, fuzzy, no-wrap +msgid "deja-dup-preferences" +msgstr "Inställningar för Déjà Dup" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +# type: Plain text +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +# type: Attribute 'lang' of:
+#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +# type: Content of:
+#. type: Content of: <article><articleinfo><title> +#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +# type: Content of: <article><articleinfo><abstract><para> +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +# type: Content of: <legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +#, fuzzy +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" +"Detta program distribueras i hopp om att det ska vara användbart, men UTAN " +"NÅGON SOM HELST GARANTI, även utan underförstådd garanti om SÄLJBARHET eller " +"LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General Public License för " +"ytterligare information." + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +# type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +# type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +# type: Content of: <article><articleinfo><releaseinfo> +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><title> +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +# type: Content of: <article><articleinfo><legalnotice><para> +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +#, fuzzy +msgid "Schedules regular backups." +msgstr "Schemalägg säkerhetskopieringar vid fasta intervaller" + +# type: Content of: <article><sect1><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +# type: Content of: <article><sect1><title> +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +# type: Content of: <article><sect1><sect2><title> +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +# type: Content of: <article><sect1><sect2><para> +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +# type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +#, fuzzy +msgid "Backing Up" +msgstr "Säkerhetskopierar" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "Återställer" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +#, fuzzy +msgid "Preferences" +msgstr "Inställningar för Déjà Dup" + +# type: Content of: <article><sect1><para> +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +#, fuzzy +msgid "Local Folders" +msgstr "Lokal mapp" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><term> +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +#, fuzzy +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "_Kryptera säkerhetskopior" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +#, fuzzy +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "_Kryptera säkerhetskopior" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +#, fuzzy +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "_Kryptera säkerhetskopior" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +#, fuzzy +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "Säkerhetskopiera _automatiskt vid fasta tidspunkter" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +#, fuzzy +msgid "<guilabel>How often to backup</guilabel>" +msgstr "Hur _ofta säkerhetskopior ska tas:" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +# type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" + +#, fuzzy +#~ msgid "Support for the following backup locations:" +#~ msgstr "Kunde inte ansluta till plats för säkerhetskopia" + +#~ msgid "Amazon S3" +#~ msgstr "Amazon S3" + +#~ msgid "SSH server" +#~ msgstr "SSH-server" + +#, fuzzy +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "" +#~ "Ange lösenordet som du använde för att kryptera dina säkerhetskopierade " +#~ "filer." + +#~ msgid "Backup your files" +#~ msgstr "Säkerhetskopiera dina filer" + +#~ msgid "Déjà Dup Backup Utility" +#~ msgstr "Säkerhetskopieringsverktyget Déjà Dup" + +#~ msgid "Déjà Dup Monitor" +#~ msgstr "Övervaka Déjà Dup" + +#~ msgid "Amazon S3 Access Key ID" +#~ msgstr "Id för Amazon S3 Access Key" + +#~ msgid "" +#~ "An optional folder name to store files in. This folder will be created in " +#~ "the chosen bucket." +#~ msgstr "" +#~ "Ett valfritt mappnamn att lagra filer i. Denna mapp kommer att skapas i " +#~ "vald bucket." + +#~ msgid "Directories not to backup" +#~ msgstr "Kataloger att inte säkerhetskopiera" + +#~ msgid "Directories to backup" +#~ msgstr "Kataloger att säkerhetskopiera" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Mapp på din dator i vilken säkerhetskopiorna ska ligga." + +#~ msgid "How often to periodically backup" +#~ msgstr "Hur ofta periodiska säkerhetskopior ska tas" + +#~ msgid "Local backup location" +#~ msgstr "Lokal plats för säkerhetskopior" + +#~ msgid "SSH directory" +#~ msgstr "SSH-katalog" + +#~ msgid "SSH port" +#~ msgstr "SSH-port" + +#~ msgid "SSH username" +#~ msgstr "Användarnamn för SSH" + +#~ msgid "The Amazon S3 bucket name to use" +#~ msgstr "Namn på Amazon S3-bucket att använda" + +#~ msgid "The Amazon S3 folder" +#~ msgstr "Amazon S3-mappen" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "Katalog som använd för SSH-anslutningar." + +#~ msgid "The last time Déjà Dup was run" +#~ msgstr "Senaste gången som Déjà Dup kördes" + +#~ msgid "The last time Déjà Dup was run, in ISO 8601 format." +#~ msgstr "Senaste gången som Déjà Dup kördes, i ISO 8601-format." + +#~ msgid "The number of days between backups." +#~ msgstr "Antalet dagar mellan säkerhetskopieringar." + +#~ msgid "The port used for SSH connections." +#~ msgstr "Portnumret som används för SSH-anslutningar." + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Protokollet som används för säkerhetskopians plats. Giltiga värden är \"s3" +#~ "\", \"file\" eller \"ssh\"." + +#~ msgid "The server used for SSH connections." +#~ msgstr "Servern som används för SSH-anslutningar." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Användarnamnet som används för SSH-anslutningar." + +#~ msgid "" +#~ "This list of directories will be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory." +#~ msgstr "" +#~ "Denna lista över kataloger som kommer att säkerhetskopieras. Reserverade " +#~ "värdena $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, " +#~ "$PUBLIC_SHARE, $TEMPLATES, $TRASH och $VIDEO känns igen som användarens " +#~ "specialkataloger. Relativa poster är relativa till användarens hemkatalog." + +#~ msgid "" +#~ "This list of directories will not be backed up. Reserved values $HOME, " +#~ "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +#~ "$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +#~ "directories. Relative entries are relative to the user's home directory. " +#~ "This list takes precedence over the include list." +#~ msgstr "" +#~ "Denna lista över kataloger som inte kommer att säkerhetskopieras. " +#~ "Reserverade värdena $HOME, $DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, " +#~ "$PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH och $VIDEO känns igen som " +#~ "användarens specialkataloger. Relativa poster är relativa till " +#~ "användarens hemkatalog. Denna lista åsidosätter inkluderingslistan." + +#~ msgid "Type of location to store backup" +#~ msgstr "Typ av plats för att lagra säkerhetskopior" + +#~ msgid "Whether to automatically backup on a regular schedule." +#~ msgstr "Huruvida automatiska säkerhetskopior ska tas vid fasta tidpunkter." + +#~ msgid "Whether to encrypt your backup" +#~ msgstr "Huruvida din säkerhetskopia ska krypteras" + +#~ msgid "" +#~ "Whether to encrypt your backup files in the storage location. It's " +#~ "strongly recommended to leave this as 'true'." +#~ msgstr "" +#~ "Huruvida dina säkerhetskopior i lagringsplatsen ska krypteras. Det " +#~ "rekommenderas starkt att lämna kvar värdet som \"sant\"." + +#~ msgid "Whether to periodically backup" +#~ msgstr "Huruvida periodiska säkerhetskopior ska tas" + +#~ msgid "" +#~ "Which Amazon S3 bucket to store files in. This does not need to exist " +#~ "already. Only legal hostname strings are valid." +#~ msgstr "" +#~ "Vilken Amazon S3-bucket att lagra filer i. Denna måste inte redan finnas. " +#~ "Endast giltiga värdnamnssträngar är giltiga." + +#~ msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +#~ msgstr "" +#~ "Din Amazon S3 Access Key-identifierare. Detta fungerar som ditt S3-" +#~ "användarnamn." + +#~ msgid "Déjà Dup Applet" +#~ msgstr "Panelprogrammet Déjà Dup" + +#~ msgid "%.1f%% complete" +#~ msgstr "%.1f%% färdigt" + +#~ msgid "Backup about to start" +#~ msgstr "Säkerhetskopiering på väg att starta" + +#~ msgid "" +#~ "A scheduled backup will shortly begin. You can instead choose to backup " +#~ "later or not at all." +#~ msgstr "" +#~ "En schemalagd säkerhetskopiering kommer att starta inom kort. Du kan " +#~ "välja att säkerhetskopiera senare eller inte alls." + +#~ msgid "Skip Backup" +#~ msgstr "Hoppa över säkerhetskopiering" + +#~ msgid "Backup Later" +#~ msgstr "Säkerhetskopiera senare" + +#~ msgid "Encryption password needed" +#~ msgstr "Lösenord för kryptering krävs" + +#~ msgid "Please enter the encryption password for your backup files." +#~ msgstr "Ange krypteringslösenordet för dina säkerhetskopierade filer." + +#~ msgid "Enter" +#~ msgstr "Ange" + +#~ msgid "Server password needed" +#~ msgstr "Serverlösenord krävs" + +#~ msgid "Please enter the server password for your backup." +#~ msgstr "Ange serverlösenordet för din säkerhetskopia." + +#~ msgid "Backup error occurred" +#~ msgstr "Fel vid säkerhetskopiering inträffade" + +#~ msgid "Rerun" +#~ msgstr "Kör igen" + +#~ msgid "Backup _Later" +#~ msgstr "Säkerhetskopiera _senare" + +#~ msgid "_Skip Backup" +#~ msgstr "_Hoppa över säkerhetskopiering" + +#~ msgid "Could not open preferences" +#~ msgstr "Kunde inte öppna inställningarna" + +#~ msgid "Backup" +#~ msgstr "Säkerhetskopiera" + +#~ msgid "Backup location:" +#~ msgstr "Plats för säkerhetskopior:" + +#~ msgid "Unknown" +#~ msgstr "Okänt" + +#~ msgid "Backup Failed" +#~ msgstr "Säkerhetskopiering misslyckades" + +#~ msgid "Backup Finished" +#~ msgstr "Säkerhetskopieringen är färdig" + +#~ msgid "Your files were successfully backed up." +#~ msgstr "Dina filer har nu säkerhetskopierats." + +#~ msgid "Backing up..." +#~ msgstr "Säkerhetskopierar..." + +#~ msgid "Summary" +#~ msgstr "Sammandrag" + +#~ msgid "_Date:" +#~ msgstr "_Datum:" + +#~ msgid "Restore files to _original locations" +#~ msgstr "Återskapa filer till dess _ursprungliga platser" + +#~ msgid "Choose destination for restored files" +#~ msgstr "Välj mål för återskapade filer" + +#~ msgid "Restore _folder:" +#~ msgstr "Återskapnings_mapp:" + +#~ msgid "Restore date:" +#~ msgstr "Datum för återskapande:" + +#~ msgid "Restore folder:" +#~ msgstr "Återskapningsmapp:" + +#~ msgid "Checking for Backups" +#~ msgstr "Letar efter säkerhetskopior" + +#~ msgid "Restore from When?" +#~ msgstr "Återskapa från vilket datum?" + +#~ msgid "Restore to Where?" +#~ msgstr "Återskapa till vilken plats?" + +#~ msgid "No backups to restore" +#~ msgstr "Inga säkerhetskopior att återskapa" + +#~ msgid "Original location" +#~ msgstr "Ursprunglig plats" + +#~ msgid "File to restore:" +#~ msgid_plural "Files to restore:" +#~ msgstr[0] "Fil att återskapa:" +#~ msgstr[1] "Filer att återskapa:" + +#~ msgid "Restore Failed" +#~ msgstr "Återställning misslyckades" + +#~ msgid "Restore Finished" +#~ msgstr "Återställning färdig" + +#~ msgid "Your files were successfully restored." +#~ msgstr "Dina filer har nu återskapats." + +#~ msgid "Restoring..." +#~ msgstr "Återställer..." + +#~ msgid "Restore given files" +#~ msgstr "Återskapa angivna filer" + +#~ msgid "No filenames provided" +#~ msgstr "Inga filnamn angivna" + +#~ msgid "_Restore" +#~ msgstr "Åte_rskapa" + +#~ msgid "_Backup" +#~ msgstr "_Säkerhetskopiera" + +#~ msgid "_File" +#~ msgstr "_Arkiv" + +#~ msgid "_Edit" +#~ msgstr "R_edigera" + +#~ msgid "_Help" +#~ msgstr "_Hjälp" + +#~ msgid "Contents" +#~ msgstr "Innehåll" + +#~ msgid "Get Help _Online..." +#~ msgstr "Få hjälp på _nätet..." + +#~ msgid "_Translate This Application..." +#~ msgstr "_Översätt det här programmet..." + +#~ msgid "_Report a Problem..." +#~ msgstr "_Rapportera ett fel..." + +#~ msgid "Choose backup destination" +#~ msgstr "Välj mål för säkerhetskopia" + +#~ msgid "Folder %s on Amazon S3" +#~ msgstr "Mappen %s på Amazon S3" + +#~ msgid "Amazon S3 Password" +#~ msgstr "Lösenord för Amazon S3" + +#~ msgid "" +#~ "Enter your Amazon Web Services user ID and secret key. This is not the " +#~ "same as your amazon.com username and password." +#~ msgstr "" +#~ "Ange ditt användarid och hemliga nyckel för Amazons webbtjänster. Detta " +#~ "är inte samma som ditt användarnamn och lösenord för amazon.com." + +#~ msgid "No username specified" +#~ msgstr "Inget användarnamn angivet" + +#~ msgid "No server specified" +#~ msgstr "Ingen server angiven" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s på ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH-lösenord" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Ange ditt SSH-användarnamn och lösenord för servern %s." + +#~ msgid "Could not run duplicity" +#~ msgstr "Kunde inte köra duplicity" + +#~ msgid "" +#~ "Could not understand duplicity version.\n" +#~ "\n" +#~ msgstr "" +#~ "Kunde inte förstå duplicitys versionsnummer.\n" +#~ "\n" + +#~ msgid "" +#~ "Could not understand duplicity version '%s'.\n" +#~ "\n" +#~ msgstr "" +#~ "Kunde inte förstå duplicitys versionsnummer \"%s\".\n" +#~ "\n" + +#~ msgid "Without duplicity, Déjà Dup cannot function. It will close now." +#~ msgstr "" +#~ "Utan duplicity kan inte Déjà Dup fungera. Det kommer nu att stängas." + +#~ msgid "Duplicity's version is too old" +#~ msgstr "Duplicitys version är för gammal" + +#~ msgid "" +#~ "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only " +#~ "found version %d.%d.%.2d" +#~ msgstr "" +#~ "Déjà Dup kräver minst version %d.%d.%.2d av duplicity, men hittade endast " +#~ "version %d.%d.%.2d" + +#~ msgid "Preparing..." +#~ msgstr "Förbereder..." + +#~ msgid "Cleaning up..." +#~ msgstr "Rensar upp..." + +#~ msgid "Failed with an unknown error." +#~ msgstr "Misslyckades med ett okänt fel." + +#~ msgid "Could not restore '%s': File not found in backup" +#~ msgstr "Kunde inte återskapa \"%s\": Filen hittades inte i säkerhetskopia" + +#~ msgid "Invalid ID." +#~ msgstr "Ogiltigt id." + +#~ msgid "Invalid secret key." +#~ msgstr "Ogiltig hemlig nyckel." + +#~ msgid "" +#~ "Your Amazon Web Services account is not signed up for the S3 service." +#~ msgstr "" +#~ "Ditt konto för Amazon Web Services är inte registrerat för S3-tjänsten." + +#~ msgid "S3 bucket name is not available." +#~ msgstr "S3 bucket-namnet är inte tillgängligt." + +#~ msgid "Bad encryption password." +#~ msgstr "Krypterat lösenord är felaktigt." + +#~ msgid "No backup files found" +#~ msgstr "Inga säkerhetskopior hittades" + +#~ msgid "Could not display %s" +#~ msgstr "Kunde inte visa %s" + +#~ msgid "About Déjà Dup" +#~ msgstr "Om Déjà Dup" + +#~ msgid "translator-credits" +#~ msgstr "" +#~ "Launchpad Contributions:\n" +#~ " Christian Widell https://launchpad.net/~christian.w\n" +#~ " Daniel Nylander https://launchpad.net/~yeager\n" +#~ " Paul Sundvall https://launchpad.net/~slask-paulsundvall\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Christian Widell https://launchpad.net/~christian.w\n" +#~ " Daniel Nylander https://launchpad.net/~yeager\n" +#~ " Paul Sundvall https://launchpad.net/~slask-paulsundvall\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Christian Widell https://launchpad.net/~christian.w\n" +#~ " Daniel Nylander https://launchpad.net/~yeager\n" +#~ " Paul Sundvall https://launchpad.net/~slask-paulsundvall\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Christian Widell https://launchpad.net/~christian.w\n" +#~ " Daniel Nylander https://launchpad.net/~yeager\n" +#~ " Paul Sundvall https://launchpad.net/~slask-paulsundvall\n" +#~ "\n" +#~ "Launchpad Contributions:\n" +#~ " Christian Widell https://launchpad.net/~christian.w\n" +#~ " Daniel Nylander https://launchpad.net/~yeager\n" +#~ " Paul Sundvall https://launchpad.net/~slask-paulsundvall" + +#~ msgid "" +#~ "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 3 of the License, or (at your " +#~ "option) any later version." +#~ msgstr "" +#~ "Detta program är fri programvara; du kan distribuera det och/eller ändra " +#~ "det under villkoren för GNU General Public License som publicerats av " +#~ "Free Software Foundation; antingen version 3 av licensen, eller (enligt " +#~ "dig själv) någon senare version." + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Du bör ha fått en kopia av GNU General Public License tillsammans med " +#~ "detta program; om inte, skriv till Free Software Foundation, Inc., 59 " +#~ "Temple Place - Suite 330, Boston, MA 02111-1307, USA." + +#~ msgid "Restoring files..." +#~ msgstr "Återskapar filer..." + +#~ msgid "" +#~ "Not all files could be restored. Any files that could not be restored may " +#~ "still be found in %s." +#~ msgstr "" +#~ "Alla filer kunde inte återskapas. Filer som inte kunde återskapas kan " +#~ "hittas i %s." + +#~ msgid "Could not restore %s: %s" +#~ msgstr "Kunde inte återskapa %s: %s" + +#~ msgid "Checking for backups..." +#~ msgstr "Letar efter säkerhetskopior..." + +#~ msgid "Encryption Password" +#~ msgstr "Krypteringslösenord" + +#~ msgid "Déjà Dup backup passphrase" +#~ msgstr "Lösenfras för Déjà Dup-säkerhetskopia" + +#~ msgid "Another Déjà Dup is already running" +#~ msgstr "En annan Déjà Dup är redan igång" + +#~ msgid "Revert to Previous Version..." +#~ msgid_plural "Revert to Previous Versions..." +#~ msgstr[0] "Återgå till tidigare version..." +#~ msgstr[1] "Återgå till tidigare versioner..." + +#~ msgid "Restore file from backup" +#~ msgid_plural "Restore files from backup" +#~ msgstr[0] "Återskapa fil från säkerhetskopia" +#~ msgstr[1] "Återskapa filer från säkerhetskopia" + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "Select Folder" +#~ msgstr "Välj mapp" + +#~ msgid "Home Folder" +#~ msgstr "Hemmapp" + +#~ msgid "Trash" +#~ msgstr "Papperskorg" + +#~ msgid "Choose folder" +#~ msgstr "Välj mapp" + +#~ msgid "Could not add the folder" +#~ msgstr "Kunde inte lägga till mappen" + +#~ msgid "%s is already in the list." +#~ msgstr "%s finns redan i listan." + +#~ msgid "Daily" +#~ msgstr "Dagligen" + +#~ msgid "Weekly" +#~ msgstr "Varje vecka" + +#~ msgid "Biweekly" +#~ msgstr "Varannan vecka" + +#~ msgid "Monthly" +#~ msgstr "Varje månad" + +#~ msgid "Every %d day" +#~ msgid_plural "Every %d days" +#~ msgstr[0] "%d dags intervall" +#~ msgstr[1] "%d dagars intervall" + +#~ msgid "_Backup location:" +#~ msgstr "_Plats för säkerhetskopia:" + +#~ msgid "S3 Access Key I_D:" +#~ msgstr "I_d för S3 Access Key:" + +#~ msgid "_Folder:" +#~ msgstr "_Mapp:" + +#~ msgid "_Username:" +#~ msgstr "_Användarnamn:" + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "I_nclude:" +#~ msgstr "I_nkludera:" + +#~ msgid "E_xclude:" +#~ msgstr "E_xkludera:" + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "Nyckel-id för Amazon S3" + +#~ msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#~ msgstr "" +#~ "Din Amazon S3-nyckelidentifierare. Detta fungerar som ditt S3-" +#~ "användarnamn." + +#~ msgid "Backing up files..." +#~ msgstr "Säkerhetskopierar filer..." + +#~ msgid "Error occurred" +#~ msgstr "Fel har uppstått" + +#~ msgid "Backup finished" +#~ msgstr "Säkerhetskopieringen är färdig" + +#~ msgid "S3 buc_ket:" +#~ msgstr "S3 buc_ket:" + +#~ msgid "S3 I_D:" +#~ msgstr "S3 I_D:" + +#~ msgid "_Details" +#~ msgstr "_Detaljer" + +#~ msgid "_Report a Problem" +#~ msgstr "_Rapportera ett fel" + +#~ msgid "Bucket %s on Amazon S3" +#~ msgstr "Bucket %s på Amazon S3" + +#~ msgid "Invalid ID" +#~ msgstr "Ogiltigt id" + +#~ msgid "Invalid secret key" +#~ msgstr "Ogiltig hemlig nyckel" + +#~ msgid "_Directory:" +#~ msgstr "_Katalog:" diff -Nru deja-dup-7.4/help/tr/deja-dup.1 deja-dup-10.0/help/tr/deja-dup.1 --- deja-dup-7.4/help/tr/deja-dup.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/tr/deja-dup.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,32 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\fP [OPTIONS] + +\fBdeja\-dup\fP \-\-restore [FILES] +.SH DESCRIPTION +deja\-dup is a graphical frontend to \fBduplicity\fP(1). It can backup and +restore using a local folder or a remote server, including Amazon S3, as +well as schedule backups at regular intervals. +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.TP +\-\-restore +Restores only the specified files +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBduplicity\fP(1) diff -Nru deja-dup-7.4/help/tr/deja-dup-applet.1 deja-dup-10.0/help/tr/deja-dup-applet.1 --- deja-dup-7.4/help/tr/deja-dup-applet.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/tr/deja-dup-applet.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,26 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-applet 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-applet \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-applet\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-applet is a notification applet that carries out a scheuduled +backup. It is usually started automatically by \fBdeja\-dup\-monitor\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH ENVIRONMENT +.TP +DEJA_DUP_DEBUG +Set to 1 to enable more verbose output. Helpful for debugging. +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-monitor\fP(1) diff -Nru deja-dup-7.4/help/tr/deja-dup-monitor.1 deja-dup-10.0/help/tr/deja-dup-monitor.1 --- deja-dup-7.4/help/tr/deja-dup-monitor.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/tr/deja-dup-monitor.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,23 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-monitor 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-monitor \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-monitor\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-monitor is a session daemon that handles scheduled backups. It is +started by default whenever a user logs in. When a scheduled backup is due, +it starts \fBdeja\-dup\-applet\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1), \fBdeja\-dup\-applet\fP(1) diff -Nru deja-dup-7.4/help/tr/deja-dup-preferences.1 deja-dup-10.0/help/tr/deja-dup-preferences.1 --- deja-dup-7.4/help/tr/deja-dup-preferences.1 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/tr/deja-dup-preferences.1 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,21 @@ +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* +.TH deja\-dup\-preferences 1 2009-06-05 deja\-dup "USER COMMANDS" +.SH NAME +deja\-dup\-preferences \- backup your data +.SH SYNOPSIS +\fBdeja\-dup\-preferences\fP [OPTIONS] +.SH DESCRIPTION +deja\-dup\-preferences is the preferences dialog for \fBdeja\-dup\fP(1). +.SH OPTIONS +.TP +\-?, \-\-help +Display usage information +.TP +\-\-version +Prints program name and version +.SH "SEE ALSO" +\fBdeja\-dup\fP(1) diff -Nru deja-dup-7.4/help/tr/deja-dup.xml deja-dup-10.0/help/tr/deja-dup.xml --- deja-dup-7.4/help/tr/deja-dup.xml 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/tr/deja-dup.xml 2009-06-05 14:52:23.000000000 -0400 @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<article id="index" lang="tr"> + <articleinfo> + <title><application>Déjà Dup</application> Manual + + Déjà Dup is a simple backup utility. + + + Déjà +Dup Administrators + + + Permission is granted to copy, distribute and/or modify this document under +the terms of the GNU General Public License (GPL), Version 3 or any later +version published by the Free Software Foundation. You can find a copy of +the GPL at this link or in the +file COPYING distributed with this manual. + This manual 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 General Public License for +more details. + + + + + Michael + Terry + +
mike@mterry.name
+
+
+
+ + + + 10.0 + 2009-06-05 + + Michael Terry mike@mterry.name + Déjà Dup Administrators + + + + + This manual describes version 10.0 of Déjà Dup. + + Feedback + To report a bug or make a suggestion regarding the Déjà +Dup application or this manual, visit the Déjà +Dup project page. + +
+ + + Déjà Dup + + + deja-dup + + + + Introduction + Déjà Dup is a simple backup program. It hides the +complexity of doing backups the 'right way' (encrypted, off-site, and +regular) and uses duplicity as the backend. + Déjà Dup provides the following features: + + Support for local or remote backup locations, including Amazon S3 + Securely encrypts and compresses your data. + Incrementally backs up, letting you restore from any particular backup. + Schedules regular backups. + Integrates well into your GNOME desktop. + + + + + Getting Started + + + Starting <application>Déjà Dup</application> + You can start Déjà Dup in the following ways: + + + Applications menu + + Choose AccessoriesDéjà Dup +Backup Utility. + + + + Command line + + To start Déjà Dup from a command line, type the +following command, then press Return: + deja-dup + + + + + + + + Backing Up + To backup, choose +FileBackup. +Or press the Backup button on the main window. + The Backup dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location and which files to include or exclude. On the +Summary page, click Apply to start the backup. + + + + Restoring + To restore, choose +FileRestore. +Or press the Restore button on the main window. + The Restore dialog will then be displayed. If this is +your first time using Déjà Dup, you will be asked +to choose a backup location. Then choose which backup date to restore from +and where to put the restored files. You can either restore them to their +original locations or put them under a folder of your choice. + After clicking Forward, you can review your restore +options, then click Apply to start the restore. + + + + Preferences + To configure Déjà Dup, choose +EditPreferences. + + + Backup location + + Use this drop-down list box to specify the backup location that +Déjà Dup uses when backing up or restoring: + + + Amazon S3 + This backup location uses the S3 storage service from Amazon. For a small +fee per gigabyte, they hold your data for you. This is the recommended +default because it is an easy way to keep your data offsite (meaning out of +your home: in case of disaster or theft, your data will still be safe). You +can sign up online. + This service costs money. Read their rates carefully before using it. + + + Removable Media + You may see removable media like external hard drives or thumb drives +listed. + + + Connected Servers + If you have connected to any servers, they will appear. To connect to a +server not listed, select Other... and click +Connect to Server.... This will let you enter the +server information. + + + Local Folders + You may also want to choose a local folder as a backup location. Note that +backups can be quite large, so make sure you have enough free disk space. + + + Default: Amazon S3. + + + + S3 Access Key ID + + This option only appears if the Amazon S3 backup +location has been selected. + This is your Access Key ID that Amazon gave you when you signed up for +S3. It is like a username for logging into S3. If left empty, you will be +prompted for it as you backup or restore. + + + + Folder + + This option only appears if the Amazon S3 backup +location has been selected. + If you have multiple backups, you may want to keep them separated in +multiple folders. Use this option to enter a path on the S3 service in +which to put your files. + + + + Include files in folders + + Select a list of directories to backup. Press the Add +or Remove buttons to modify the list. If you are only +interested in backing up your own data, the default of Home +Folder is sufficient. + + + + Except files in folders + + Select a list of directories to not backup. Press the Add + or Remove buttons to modify the +list. This list takes precedence over the list of included directories. + Some of your data may be large and not very important to you. In that case, +you can save yourself some time and space by not backing them up. + There are some locations that Déjà Dup excludes +by default: + + ~/.cache + ~/.thumbnails + ~/.gvfs + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/.Private + /proc + /tmp + /sys + + + + + + Encrypt backup files + + Encrypting your backup files is recommended to keep your data safe. If you +don't have exclusive physical control of your backup location, or if it is +stolen, an encrypted backup prevents others from looking at your personal +data. + If on, you will be prompted for a password. Keep this password safe, you +will need it to restore your data. + Default: On. + + + + Automatically backup on a regular schedule + + Turn this option on to have Déjà Dup +automatically backup for you. This is recommended so that you don't forget +to backup. Backups are more useful the more recently you have made them, so +it is important to regularly do so. + Default: Off. + + + + How often to backup + + Choose a schedule for automatic backups. + Default: Weekly. + + + + +
diff -Nru deja-dup-7.4/help/tr/tr.po deja-dup-10.0/help/tr/tr.po --- deja-dup-7.4/help/tr/tr.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/help/tr/tr.po 2009-06-05 14:52:22.000000000 -0400 @@ -0,0 +1,748 @@ +# Turkish translations for Déjà Dup package +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the Déjà Dup package. +# Automatically generated, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: Déjà Dup 10.0\n" +"POT-Creation-Date: 2009-06-02 17:36-0300\n" +"PO-Revision-Date: 2009-06-02 17:36-0300\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:51 +#, no-wrap +msgid "deja-dup" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 C/deja-dup.xml:32 +#, no-wrap +msgid "%DATE%" +msgstr "" + +#. type: TH +#: C/deja-dup.1:1 C/deja-dup-applet.1:1 C/deja-dup-monitor.1:1 +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "USER COMMANDS" +msgstr "" + +#. type: SH +#: C/deja-dup.1:2 C/deja-dup-applet.1:2 C/deja-dup-monitor.1:2 +#: C/deja-dup-preferences.1:2 +#, no-wrap +msgid "NAME" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:4 +msgid "deja-dup - backup your data" +msgstr "" + +#. type: SH +#: C/deja-dup.1:4 C/deja-dup-applet.1:4 C/deja-dup-monitor.1:4 +#: C/deja-dup-preferences.1:4 +#, no-wrap +msgid "SYNOPSIS" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:11 +msgid "B --restore [FILES]" +msgstr "" + +#. type: SH +#: C/deja-dup.1:11 C/deja-dup-applet.1:7 C/deja-dup-monitor.1:7 +#: C/deja-dup-preferences.1:7 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:16 +msgid "" +"deja-dup is a graphical frontend to B(1). It can backup and " +"restore using a local folder or a remote server, including Amazon S3, as " +"well as schedule backups at regular intervals." +msgstr "" + +#. type: SH +#: C/deja-dup.1:16 C/deja-dup-applet.1:11 C/deja-dup-monitor.1:12 +#: C/deja-dup-preferences.1:10 +#, no-wrap +msgid "OPTIONS" +msgstr "" + +#. type: TP +#: C/deja-dup.1:17 C/deja-dup-applet.1:12 C/deja-dup-monitor.1:13 +#: C/deja-dup-preferences.1:11 +#, no-wrap +msgid "-?, --help" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +msgid "Display usage information" +msgstr "" + +#. type: TP +#: C/deja-dup.1:20 C/deja-dup-applet.1:15 C/deja-dup-monitor.1:16 +#: C/deja-dup-preferences.1:14 +#, no-wrap +msgid "--version" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:23 C/deja-dup-applet.1:18 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +msgid "Prints program name and version" +msgstr "" + +#. type: TP +#: C/deja-dup.1:23 +#, no-wrap +msgid "--restore" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:26 +msgid "Restores only the specified files" +msgstr "" + +#. type: SH +#: C/deja-dup.1:26 C/deja-dup-applet.1:18 +#, no-wrap +msgid "ENVIRONMENT" +msgstr "" + +#. type: TP +#: C/deja-dup.1:27 C/deja-dup-applet.1:19 +#, no-wrap +msgid "DEJA_DUP_DEBUG" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 +msgid "Set to 1 to enable more verbose output. Helpful for debugging." +msgstr "" + +#. type: SH +#: C/deja-dup.1:30 C/deja-dup-applet.1:22 C/deja-dup-monitor.1:19 +#: C/deja-dup-preferences.1:17 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +#. type: Plain text +#: C/deja-dup.1:31 +msgid "B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-applet.1:1 +#, no-wrap +msgid "deja-dup-applet" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:4 +msgid "deja-dup-applet - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:11 +msgid "" +"deja-dup-applet is a notification applet that carries out a scheuduled " +"backup. It is usually started automatically by B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-applet.1:24 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-monitor.1:1 +#, no-wrap +msgid "deja-dup-monitor" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:4 +msgid "deja-dup-monitor - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:12 +msgid "" +"deja-dup-monitor is a session daemon that handles scheduled backups. It is " +"started by default whenever a user logs in. When a scheduled backup is due, " +"it starts B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-monitor.1:21 +msgid "B(1), B(1)" +msgstr "" + +#. type: TH +#: C/deja-dup-preferences.1:1 +#, no-wrap +msgid "deja-dup-preferences" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:4 +msgid "deja-dup-preferences - backup your data" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:7 +msgid "B [OPTIONS]" +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:10 +msgid "deja-dup-preferences is the preferences dialog for B(1)." +msgstr "" + +#. type: Plain text +#: C/deja-dup-preferences.1:18 +msgid "B(1)" +msgstr "" + +#. type: Attribute 'lang' of:
+#: C/deja-dup.xml:3 +msgid "C" +msgstr "" + +#. type: Content of:
+#: C/deja-dup.xml:5 +msgid "<application>Déjà Dup</application> Manual" +msgstr "" + +#. type: Content of: <article><articleinfo><abstract><para> +#: C/deja-dup.xml:7 +msgid "<application>Déjà Dup</application> is a simple backup utility." +msgstr "" + +#. type: Content of: <article><articleinfo> +#: C/deja-dup.xml:10 +msgid "" +"<publisher role=\"maintainer\"> <publishername><ulink url=\"http://launchpad." +"net/~deja-dup-team\" type=\"http\"><application>Déjà Dup</application> " +"Administrators</ulink></publishername> </publisher>" +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:15 +msgid "" +"Permission is granted to copy, distribute and/or modify this document under " +"the terms of the GNU General Public License (GPL), Version 3 or any later " +"version published by the Free Software Foundation. You can find a copy of " +"the GPL at this <ulink type=\"help\" url=\"ghelp:gpl\">link</ulink> or in " +"the file COPYING distributed with this manual." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:16 +msgid "" +"This manual 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 General Public License for " +"more details." +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><firstname> +#: C/deja-dup.xml:21 +msgid "Michael" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><surname> +#: C/deja-dup.xml:22 +msgid "Terry" +msgstr "" + +#. type: Content of: <article><articleinfo><authorgroup><author><affiliation><address> +#: C/deja-dup.xml:24 +#, no-wrap +msgid " <email>mike@mterry.name</email> " +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revnumber> +#: C/deja-dup.xml:31 +msgid "%VERSION%" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:34 +msgid "Michael Terry <email>mike@mterry.name</email>" +msgstr "" + +#. type: Content of: <article><articleinfo><revhistory><revision><revdescription><para> +#: C/deja-dup.xml:35 +msgid "" +"<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +"\"><application>Déjà Dup</application> Administrators</ulink>" +msgstr "" + +#. type: Content of: <article><articleinfo><releaseinfo> +#: C/deja-dup.xml:40 +msgid "This manual describes version %VERSION% of Déjà Dup." +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><title> +#: C/deja-dup.xml:42 +msgid "Feedback" +msgstr "" + +#. type: Content of: <article><articleinfo><legalnotice><para> +#: C/deja-dup.xml:43 +msgid "" +"To report a bug or make a suggestion regarding the <application>Déjà Dup</" +"application> application or this manual, visit the <ulink url=\"http://bugs." +"launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</application> " +"project page</ulink>." +msgstr "" + +#. type: Content of: <article><indexterm><primary> +#: C/deja-dup.xml:48 +msgid "Déjà Dup" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:55 +msgid "Introduction" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:56 +msgid "" +"<application>Déjà Dup</application> is a simple backup program. It hides the " +"complexity of doing backups the 'right way' (encrypted, off-site, and " +"regular) and uses duplicity as the backend." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:57 +msgid "<application>Déjà Dup</application> provides the following features:" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:59 +msgid "Support for local or remote backup locations, including Amazon S3" +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:60 +msgid "Securely encrypts and compresses your data." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:61 +msgid "Incrementally backs up, letting you restore from any particular backup." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:62 +msgid "Schedules regular backups." +msgstr "" + +#. type: Content of: <article><sect1><itemizedlist><listitem><para> +#: C/deja-dup.xml:63 +msgid "Integrates well into your GNOME desktop." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:68 +msgid "Getting Started" +msgstr "" + +#. type: Content of: <article><sect1><sect2><title> +#: C/deja-dup.xml:71 +msgid "Starting <application>Déjà Dup</application>" +msgstr "" + +#. type: Content of: <article><sect1><sect2><para> +#: C/deja-dup.xml:72 +msgid "" +"You can start <application>Déjà Dup</application> in the following ways:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:75 +msgid "<guimenu>Applications</guimenu> menu" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:77 +msgid "" +"Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà Dup " +"Backup Utility</guimenuitem></menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><term> +#: C/deja-dup.xml:81 +msgid "Command line" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:83 +msgid "" +"To start <application>Déjà Dup</application> from a command line, type the " +"following command, then press <keycap>Return</keycap>:" +msgstr "" + +#. type: Content of: <article><sect1><sect2><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:84 +msgid "<command>deja-dup</command>" +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:92 +msgid "Backing Up" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:93 +msgid "" +"To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +"guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> button " +"on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:94 +msgid "" +"The <guilabel>Backup</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location and which files to include or exclude. On the " +"Summary page, click <guibutton>Apply</guibutton> to start the backup." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:98 +msgid "Restoring" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:99 +msgid "" +"To restore, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Restore</" +"guimenuitem></menuchoice>. Or press the <guibutton>Restore</guibutton> " +"button on the main window." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:100 +msgid "" +"The <guilabel>Restore</guilabel> dialog will then be displayed. If this is " +"your first time using <application>Déjà Dup</application>, you will be asked " +"to choose a backup location. Then choose which backup date to restore from " +"and where to put the restored files. You can either restore them to their " +"original locations or put them under a folder of your choice." +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:101 +msgid "" +"After clicking <guibutton>Forward</guibutton>, you can review your restore " +"options, then click <guibutton>Apply</guibutton> to start the restore." +msgstr "" + +#. type: Content of: <article><sect1><title> +#: C/deja-dup.xml:105 +msgid "Preferences" +msgstr "" + +#. type: Content of: <article><sect1><para> +#: C/deja-dup.xml:106 +msgid "" +"To configure <application>Déjà Dup</application>, choose " +"<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</guimenuitem></" +"menuchoice>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:109 +msgid "<guilabel>Backup location</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:111 +msgid "" +"Use this drop-down list box to specify the backup location that " +"<application>Déjà Dup</application> uses when backing up or restoring:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:114 +msgid "<guilabel>Amazon S3</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:115 +msgid "" +"This backup location uses the S3 storage service from Amazon. For a small " +"fee per gigabyte, they hold your data for you. This is the recommended " +"default because it is an easy way to keep your data offsite (meaning out of " +"your home: in case of disaster or theft, your data will still be safe). You " +"can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=\"http\">online</" +"ulink>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><caution><para> +#: C/deja-dup.xml:116 +msgid "This service costs money. Read their rates carefully before using it." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:119 +msgid "Removable Media" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:120 +msgid "" +"You may see removable media like external hard drives or thumb drives listed." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:123 +msgid "Connected Servers" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:124 +msgid "" +"If you have connected to any servers, they will appear. To connect to a " +"server not listed, select <guilabel>Other...</guilabel> and click " +"<guibutton>Connect to Server...</guibutton>. This will let you enter the " +"server information." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:127 +msgid "Local Folders" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><itemizedlist><listitem><para> +#: C/deja-dup.xml:128 +msgid "" +"You may also want to choose a local folder as a backup location. Note that " +"backups can be quite large, so make sure you have enough free disk space." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:131 +msgid "Default: <guilabel>Amazon S3</guilabel>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:135 +msgid "<guilabel>S3 Access Key ID</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><note><para> +#: C/deja-dup.xml:137 C/deja-dup.xml:145 +msgid "" +"This option only appears if the <guilabel>Amazon S3</guilabel> backup " +"location has been selected." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:139 +msgid "" +"This is your Access Key ID that Amazon gave you when you signed up for S3. " +"It is like a username for logging into S3. If left empty, you will be " +"prompted for it as you backup or restore." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:143 +msgid "<guilabel>Folder</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:146 +msgid "" +"If you have multiple backups, you may want to keep them separated in " +"multiple folders. Use this option to enter a path on the S3 service in " +"which to put your files." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:150 +msgid "<guilabel>Include files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:152 +msgid "" +"Select a list of directories to backup. Press the <guibutton>Add</guibutton> " +"or <guibutton>Remove</guibutton> buttons to modify the list. If you are only " +"interested in backing up your own data, the default of <guilabel>Home " +"Folder</guilabel> is sufficient." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:156 +msgid "<guilabel>Except files in folders</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:158 +msgid "" +"Select a list of directories to not backup. Press the <guibutton>Add </" +"guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. This " +"list takes precedence over the list of included directories." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:159 +msgid "" +"Some of your data may be large and not very important to you. In that case, " +"you can save yourself some time and space by not backing them up." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:160 +msgid "" +"There are some locations that <application>Déjà Dup</application> excludes " +"by default:" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:162 +msgid "~/.cache" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:163 +msgid "~/.thumbnails" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:164 +msgid "~/.gvfs" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:165 +msgid "~/.xsession-errors" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:166 +msgid "~/.recently-used.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:167 +msgid "~/.recent-applications.xbel" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:168 +msgid "~/.Private" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:169 +msgid "/proc" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:170 +msgid "/tmp" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para><itemizedlist><listitem><para> +#: C/deja-dup.xml:171 +msgid "/sys" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:177 +msgid "<guilabel>Encrypt backup files</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:179 +msgid "" +"Encrypting your backup files is recommended to keep your data safe. If you " +"don't have exclusive physical control of your backup location, or if it is " +"stolen, an encrypted backup prevents others from looking at your personal " +"data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:180 +msgid "" +"If on, you will be prompted for a password. Keep this password safe, you " +"will need it to restore your data." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:181 +msgid "Default: <userinput>On</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:185 +msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:187 +msgid "" +"Turn this option on to have <application>Déjà Dup</application> " +"automatically backup for you. This is recommended so that you don't forget " +"to backup. Backups are more useful the more recently you have made them, so " +"it is important to regularly do so." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:188 +msgid "Default: <userinput>Off</userinput>." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><term> +#: C/deja-dup.xml:192 +msgid "<guilabel>How often to backup</guilabel>" +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:194 +msgid "Choose a schedule for automatic backups." +msgstr "" + +#. type: Content of: <article><sect1><variablelist><varlistentry><listitem><para> +#: C/deja-dup.xml:195 +msgid "Default: <guilabel>Weekly</guilabel>." +msgstr "" diff -Nru deja-dup-7.4/libdeja-dup/Backend.c deja-dup-10.0/libdeja-dup/Backend.c --- deja-dup-7.4/libdeja-dup/Backend.c 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Backend.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,38 +1,113 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <Backend.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gtk/gtk.h> #include <gconf/gconf-client.h> -#include <libdeja-dup.h> -#include <BackendS3.h> -#include <BackendFile.h> -#include <BackendSSH.h> +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; +typedef struct _DejaDupBackendPrivate DejaDupBackendPrivate; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +#define DEJA_DUP_TYPE_BACKEND_S3 (deja_dup_backend_s3_get_type ()) +#define DEJA_DUP_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3)) +#define DEJA_DUP_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) +#define DEJA_DUP_IS_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_IS_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_BACKEND_S3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) + +typedef struct _DejaDupBackendS3 DejaDupBackendS3; +typedef struct _DejaDupBackendS3Class DejaDupBackendS3Class; + +#define DEJA_DUP_TYPE_BACKEND_FILE (deja_dup_backend_file_get_type ()) +#define DEJA_DUP_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFile)) +#define DEJA_DUP_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) +#define DEJA_DUP_IS_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_FILE)) +#define DEJA_DUP_IS_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_FILE)) +#define DEJA_DUP_BACKEND_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) + +typedef struct _DejaDupBackendFile DejaDupBackendFile; +typedef struct _DejaDupBackendFileClass DejaDupBackendFileClass; + +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; + +struct _DejaDupBackend { + GObject parent_instance; + DejaDupBackendPrivate * priv; +}; +struct _DejaDupBackendClass { + GObjectClass parent_class; + char* (*get_location) (DejaDupBackend* self, GError** error); + char* (*get_location_pretty) (DejaDupBackend* self, GError** error); + void (*get_envp) (DejaDupBackend* self, GError** error); + void (*add_argv) (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); + void (*ask_password) (DejaDupBackend* self); + DejaDupBackend* (*clone) (DejaDupBackend* self); +}; struct _DejaDupBackendPrivate { GtkWindow* _toplevel; }; + + +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_mode_get_type (void); #define DEJA_DUP_BACKEND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_BACKEND, DejaDupBackendPrivate)) enum { DEJA_DUP_BACKEND_DUMMY_PROPERTY, DEJA_DUP_BACKEND_TOPLEVEL }; +char* deja_dup_backend_get_location (DejaDupBackend* self, GError** error); static char* deja_dup_backend_real_get_location (DejaDupBackend* self, GError** error); +char* deja_dup_backend_get_location_pretty (DejaDupBackend* self, GError** error); static char* deja_dup_backend_real_get_location_pretty (DejaDupBackend* self, GError** error); static void _g_list_free_g_free (GList* self); +void deja_dup_backend_get_envp (DejaDupBackend* self, GError** error); static void deja_dup_backend_real_get_envp (DejaDupBackend* self, GError** error); -static void deja_dup_backend_real_add_argv (DejaDupBackend* self, GList** argv); +void deja_dup_backend_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); +static void deja_dup_backend_real_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); +void deja_dup_backend_ask_password (DejaDupBackend* self); static void deja_dup_backend_real_ask_password (DejaDupBackend* self); +DejaDupBackend* deja_dup_backend_clone (DejaDupBackend* self); static DejaDupBackend* deja_dup_backend_real_clone (DejaDupBackend* self); +GConfClient* deja_dup_get_gconf_client (void); +#define DEJA_DUP_BACKEND_KEY "/apps/deja-dup/backend" +DejaDupBackendS3* deja_dup_backend_s3_new (GtkWindow* win); +DejaDupBackendS3* deja_dup_backend_s3_construct (GType object_type, GtkWindow* win); +GType deja_dup_backend_s3_get_type (void); +DejaDupBackendFile* deja_dup_backend_file_new (GtkWindow* win); +DejaDupBackendFile* deja_dup_backend_file_construct (GType object_type, GtkWindow* win); +GType deja_dup_backend_file_get_type (void); +DejaDupBackend* deja_dup_backend_get_default (GtkWindow* win, GError** error); +GtkWindow* deja_dup_backend_get_toplevel (DejaDupBackend* self); static void deja_dup_backend_set_toplevel (DejaDupBackend* self, GtkWindow* value); static gpointer deja_dup_backend_parent_class = NULL; static void deja_dup_backend_finalize (GObject* obj); +static void deja_dup_backend_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_backend_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static int _vala_strcmp0 (const char * str1, const char * str2); -static void g_cclosure_user_marshal_VOID__BOOLEAN_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); +static void g_cclosure_user_marshal_VOID__BOOLEAN_POINTER_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static char* deja_dup_backend_real_get_location (DejaDupBackend* self, GError** error) { g_return_val_if_fail (self != NULL, NULL); @@ -66,11 +141,11 @@ /* short description for user*/ static void deja_dup_backend_real_get_envp (DejaDupBackend* self, GError** error) { - GList* _tmp0; + GList* _tmp0_; g_return_if_fail (self != NULL); - _tmp0 = NULL; - g_signal_emit_by_name (self, "envp-ready", TRUE, _tmp0 = NULL); - (_tmp0 == NULL) ? NULL : (_tmp0 = (_g_list_free_g_free (_tmp0), NULL)); + _tmp0_ = NULL; + g_signal_emit_by_name (self, "envp-ready", TRUE, _tmp0_ = NULL, NULL); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (_g_list_free_g_free (_tmp0_), NULL)); } @@ -79,14 +154,15 @@ } -static void deja_dup_backend_real_add_argv (DejaDupBackend* self, GList** argv) { +/* Arguments needed only when the particular mode is active + If mode == INVALID, arguments needed any time the backup is referenced.*/ +static void deja_dup_backend_real_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv) { g_return_if_fail (self != NULL); - g_return_if_fail (argv != NULL); } -void deja_dup_backend_add_argv (DejaDupBackend* self, GList** argv) { - DEJA_DUP_BACKEND_GET_CLASS (self)->add_argv (self, argv); +void deja_dup_backend_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv) { + DEJA_DUP_BACKEND_GET_CLASS (self)->add_argv (self, mode, argv); } @@ -113,40 +189,32 @@ DejaDupBackend* deja_dup_backend_get_default (GtkWindow* win, GError** error) { - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; - const char* _tmp1; + const char* _tmp0_; char* backend_name; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - backend_name = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_BACKEND_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + _tmp0_ = NULL; + backend_name = (_tmp0_ = gconf_client_get_string (client, DEJA_DUP_BACKEND_KEY, &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return NULL; } if (_vala_strcmp0 (backend_name, "s3") == 0) { - DejaDupBackend* _tmp2; - _tmp2 = NULL; - return (_tmp2 = (DejaDupBackend*) deja_dup_backend_s3_new (win), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), backend_name = (g_free (backend_name), NULL), _tmp2); + DejaDupBackend* _tmp1_; + _tmp1_ = NULL; + return (_tmp1_ = (DejaDupBackend*) deja_dup_backend_s3_new (win), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), backend_name = (g_free (backend_name), NULL), _tmp1_); } else { if (_vala_strcmp0 (backend_name, "file") == 0) { - DejaDupBackend* _tmp3; - _tmp3 = NULL; - return (_tmp3 = (DejaDupBackend*) deja_dup_backend_file_new (win), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), backend_name = (g_free (backend_name), NULL), _tmp3); + DejaDupBackend* _tmp2_; + _tmp2_ = NULL; + return (_tmp2_ = (DejaDupBackend*) deja_dup_backend_file_new (win), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), backend_name = (g_free (backend_name), NULL), _tmp2_); } else { - if (_vala_strcmp0 (backend_name, "ssh") == 0) { - DejaDupBackend* _tmp4; - _tmp4 = NULL; - return (_tmp4 = (DejaDupBackend*) deja_dup_backend_ssh_new (win), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), backend_name = (g_free (backend_name), NULL), _tmp4); - } else { - DejaDupBackend* _tmp5; - _tmp5 = NULL; - return (_tmp5 = NULL, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), backend_name = (g_free (backend_name), NULL), _tmp5); - } + DejaDupBackend* _tmp3_; + _tmp3_ = NULL; + return (_tmp3_ = NULL, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), backend_name = (g_free (backend_name), NULL), _tmp3_); } } (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); @@ -161,59 +229,30 @@ static void deja_dup_backend_set_toplevel (DejaDupBackend* self, GtkWindow* value) { - GtkWindow* _tmp2; - GtkWindow* _tmp1; + GtkWindow* _tmp2_; + GtkWindow* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_toplevel = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_toplevel = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)), _tmp2_); g_object_notify ((GObject *) self, "toplevel"); } -static void deja_dup_backend_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - DejaDupBackend * self; - gpointer boxed; - self = DEJA_DUP_BACKEND (object); - switch (property_id) { - case DEJA_DUP_BACKEND_TOPLEVEL: - g_value_set_object (value, deja_dup_backend_get_toplevel (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void deja_dup_backend_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - DejaDupBackend * self; - self = DEJA_DUP_BACKEND (object); - switch (property_id) { - case DEJA_DUP_BACKEND_TOPLEVEL: - deja_dup_backend_set_toplevel (self, g_value_get_object (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - static void deja_dup_backend_class_init (DejaDupBackendClass * klass) { deja_dup_backend_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (DejaDupBackendPrivate)); - G_OBJECT_CLASS (klass)->get_property = deja_dup_backend_get_property; - G_OBJECT_CLASS (klass)->set_property = deja_dup_backend_set_property; - G_OBJECT_CLASS (klass)->finalize = deja_dup_backend_finalize; DEJA_DUP_BACKEND_CLASS (klass)->get_location = deja_dup_backend_real_get_location; DEJA_DUP_BACKEND_CLASS (klass)->get_location_pretty = deja_dup_backend_real_get_location_pretty; DEJA_DUP_BACKEND_CLASS (klass)->get_envp = deja_dup_backend_real_get_envp; DEJA_DUP_BACKEND_CLASS (klass)->add_argv = deja_dup_backend_real_add_argv; DEJA_DUP_BACKEND_CLASS (klass)->ask_password = deja_dup_backend_real_ask_password; DEJA_DUP_BACKEND_CLASS (klass)->clone = deja_dup_backend_real_clone; + G_OBJECT_CLASS (klass)->get_property = deja_dup_backend_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_backend_set_property; + G_OBJECT_CLASS (klass)->finalize = deja_dup_backend_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_BACKEND_TOPLEVEL, g_param_spec_object ("toplevel", "toplevel", "toplevel", GTK_TYPE_WINDOW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); - g_signal_new ("envp_ready", DEJA_DUP_TYPE_BACKEND, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_POINTER, G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_POINTER); + g_signal_new ("envp_ready", DEJA_DUP_TYPE_BACKEND, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_POINTER_STRING, G_TYPE_NONE, 3, G_TYPE_BOOLEAN, G_TYPE_POINTER, G_TYPE_STRING); g_signal_new ("need_password", DEJA_DUP_TYPE_BACKEND, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } @@ -241,6 +280,35 @@ } +static void deja_dup_backend_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupBackend * self; + gpointer boxed; + self = DEJA_DUP_BACKEND (object); + switch (property_id) { + case DEJA_DUP_BACKEND_TOPLEVEL: + g_value_set_object (value, deja_dup_backend_get_toplevel (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_backend_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupBackend * self; + self = DEJA_DUP_BACKEND (object); + switch (property_id) { + case DEJA_DUP_BACKEND_TOPLEVEL: + deja_dup_backend_set_toplevel (self, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + static int _vala_strcmp0 (const char * str1, const char * str2) { if (str1 == NULL) { return -(str1 != str2); @@ -253,13 +321,13 @@ -static void g_cclosure_user_marshal_VOID__BOOLEAN_POINTER (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { - typedef void (*GMarshalFunc_VOID__BOOLEAN_POINTER) (gpointer data1, gboolean arg_1, gpointer arg_2, gpointer data2); - register GMarshalFunc_VOID__BOOLEAN_POINTER callback; +static void g_cclosure_user_marshal_VOID__BOOLEAN_POINTER_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { + typedef void (*GMarshalFunc_VOID__BOOLEAN_POINTER_STRING) (gpointer data1, gboolean arg_1, gpointer arg_2, const char* arg_3, gpointer data2); + register GMarshalFunc_VOID__BOOLEAN_POINTER_STRING callback; register GCClosure * cc; register gpointer data1, data2; cc = (GCClosure *) closure; - g_return_if_fail (n_param_values == 3); + g_return_if_fail (n_param_values == 4); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; @@ -267,8 +335,8 @@ data1 = param_values->data[0].v_pointer; data2 = closure->data; } - callback = (GMarshalFunc_VOID__BOOLEAN_POINTER) (marshal_data ? marshal_data : cc->callback); - callback (data1, g_value_get_boolean (param_values + 1), g_value_get_pointer (param_values + 2), data2); + callback = (GMarshalFunc_VOID__BOOLEAN_POINTER_STRING) (marshal_data ? marshal_data : cc->callback); + callback (data1, g_value_get_boolean (param_values + 1), g_value_get_pointer (param_values + 2), g_value_get_string (param_values + 3), data2); } diff -Nru deja-dup-7.4/libdeja-dup/BackendFile.c deja-dup-10.0/libdeja-dup/BackendFile.c --- deja-dup-7.4/libdeja-dup/BackendFile.c 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendFile.c 2009-06-02 17:51:30.000000000 -0400 @@ -1,19 +1,104 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <BackendFile.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gtk/gtk.h> #include <gconf/gconf-client.h> +#include <gio/gio.h> #include <glib/gi18n-lib.h> +#include <hacks.h> +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; +typedef struct _DejaDupBackendPrivate DejaDupBackendPrivate; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +#define DEJA_DUP_TYPE_BACKEND_FILE (deja_dup_backend_file_get_type ()) +#define DEJA_DUP_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFile)) +#define DEJA_DUP_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) +#define DEJA_DUP_IS_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_FILE)) +#define DEJA_DUP_IS_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_FILE)) +#define DEJA_DUP_BACKEND_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) + +typedef struct _DejaDupBackendFile DejaDupBackendFile; +typedef struct _DejaDupBackendFileClass DejaDupBackendFileClass; +typedef struct _DejaDupBackendFilePrivate DejaDupBackendFilePrivate; + +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; + +struct _DejaDupBackend { + GObject parent_instance; + DejaDupBackendPrivate * priv; +}; +struct _DejaDupBackendClass { + GObjectClass parent_class; + char* (*get_location) (DejaDupBackend* self, GError** error); + char* (*get_location_pretty) (DejaDupBackend* self, GError** error); + void (*get_envp) (DejaDupBackend* self, GError** error); + void (*add_argv) (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); + void (*ask_password) (DejaDupBackend* self); + DejaDupBackend* (*clone) (DejaDupBackend* self); +}; +struct _DejaDupBackendFile { + DejaDupBackend parent_instance; + DejaDupBackendFilePrivate * priv; +}; + +struct _DejaDupBackendFileClass { + DejaDupBackendClass parent_class; +}; + +typedef enum { + DEJA_DUP_BACKUP_ERROR_BAD_CONFIG +} DejaDupBackupError; +#define DEJA_DUP_BACKUP_ERROR deja_dup_backup_error_quark () + + +#define DEJA_DUP_FILE_PATH_KEY "/apps/deja-dup/file/path" +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_mode_get_type (void); +GType deja_dup_backend_file_get_type (void); enum { DEJA_DUP_BACKEND_FILE_DUMMY_PROPERTY }; +static void deja_dup_backend_set_toplevel (DejaDupBackend* self, GtkWindow* value); +DejaDupBackendFile* deja_dup_backend_file_new (GtkWindow* win); +DejaDupBackendFile* deja_dup_backend_file_construct (GType object_type, GtkWindow* win); +DejaDupBackendFile* deja_dup_backend_file_new (GtkWindow* win); +GtkWindow* deja_dup_backend_get_toplevel (DejaDupBackend* self); static DejaDupBackend* deja_dup_backend_file_real_clone (DejaDupBackend* base); +GConfClient* deja_dup_get_gconf_client (void); static char* deja_dup_backend_file_get_location_from_gconf (DejaDupBackendFile* self, GError** error); +GQuark deja_dup_backup_error_quark (void); static char* deja_dup_backend_file_real_get_location (DejaDupBackend* base, GError** error); static char* deja_dup_backend_file_real_get_location_pretty (DejaDupBackend* base, GError** error); +static void deja_dup_backend_file_real_add_argv (DejaDupBackend* base, DejaDupOperationMode mode, GList** argv); +static void deja_dup_backend_file_check_if_password_needed (DejaDupBackendFile* self, GFile* file); +static void _g_list_free_g_free (GList* self); +static void deja_dup_backend_file_real_get_envp (DejaDupBackend* base, GError** error); +static void _lambda7_ (GObject* o, GAsyncResult* r, DejaDupBackendFile* self); +static void __lambda7__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self); +static void _lambda8_ (GObject* o, GAsyncResult* r, DejaDupBackendFile* self); +static void __lambda8__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self); +static void deja_dup_backend_file_real_ask_password (DejaDupBackend* base); static gpointer deja_dup_backend_file_parent_class = NULL; @@ -51,74 +136,364 @@ static char* deja_dup_backend_file_get_location_from_gconf (DejaDupBackendFile* self, GError** error) { - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; - const char* _tmp1; + const char* _tmp0_; char* path; - char* _tmp2; + char* _tmp1_; g_return_val_if_fail (self != NULL, NULL); - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - path = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_FILE_PATH_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + _tmp0_ = NULL; + path = (_tmp0_ = gconf_client_get_string (client, DEJA_DUP_FILE_PATH_KEY, &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return NULL; } - _tmp2 = NULL; - return (_tmp2 = path, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), _tmp2); + _tmp1_ = NULL; + return (_tmp1_ = path, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), _tmp1_); } static char* deja_dup_backend_file_real_get_location (DejaDupBackend* base, GError** error) { DejaDupBackendFile * self; - GError * inner_error; + GError * _inner_error_; char* path; - char* _tmp3; + GFile* _tmp0_; + GFile* file; + char* _tmp1_; + gboolean _tmp2_; + char* _tmp3_; + char* _tmp4_; + char* _tmp5_; self = (DejaDupBackendFile*) base; - inner_error = NULL; - path = deja_dup_backend_file_get_location_from_gconf (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + path = deja_dup_backend_file_get_location_from_gconf (self, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); return NULL; } - if (path == NULL) { - GtkFileChooserDialog* dlg; - char* _tmp2; - const char* _tmp1; - dlg = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_ ("Choose backup destination"), deja_dup_backend_get_toplevel ((DejaDupBackend*) self), GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL)); - if (gtk_dialog_run ((GtkDialog*) dlg) != GTK_RESPONSE_ACCEPT) { - char* _tmp0; - gtk_object_destroy ((GtkObject*) dlg); - _tmp0 = NULL; - return (_tmp0 = NULL, (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)), path = (g_free (path), NULL), _tmp0); - } - _tmp2 = NULL; - _tmp1 = NULL; - path = (_tmp2 = (_tmp1 = gtk_file_chooser_get_filename ((GtkFileChooser*) dlg), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), path = (g_free (path), NULL), _tmp2); - gtk_object_destroy ((GtkObject*) dlg); - (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); + _tmp0_ = NULL; + file = (_tmp0_ = g_file_parse_name (path), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); + _tmp1_ = NULL; + if ((_tmp2_ = (_tmp1_ = g_file_get_path (file)) == NULL, _tmp1_ = (g_free (_tmp1_), NULL), _tmp2_)) { + _inner_error_ = g_error_new_literal (DEJA_DUP_BACKUP_ERROR, DEJA_DUP_BACKUP_ERROR_BAD_CONFIG, _ ("GVFS FUSE is not installed")); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); + path = (g_free (path), NULL); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + return NULL; + } } - _tmp3 = NULL; - return (_tmp3 = g_strdup_printf ("file://%s", path), path = (g_free (path), NULL), _tmp3); + _tmp3_ = NULL; + _tmp4_ = NULL; + _tmp5_ = NULL; + return (_tmp5_ = (_tmp4_ = g_strconcat ("file://", _tmp3_ = g_file_get_path (file), NULL), _tmp3_ = (g_free (_tmp3_), NULL), _tmp4_), path = (g_free (path), NULL), (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp5_); } static char* deja_dup_backend_file_real_get_location_pretty (DejaDupBackend* base, GError** error) { DejaDupBackendFile * self; - GError * inner_error; - char* _tmp0; + GError * _inner_error_; + char* _tmp0_; self = (DejaDupBackendFile*) base; - inner_error = NULL; - _tmp0 = deja_dup_backend_file_get_location_from_gconf (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + _tmp0_ = deja_dup_backend_file_get_location_from_gconf (self, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); return NULL; } - return _tmp0; + return _tmp0_; +} + + +static void deja_dup_backend_file_real_add_argv (DejaDupBackend* base, DejaDupOperationMode mode, GList** argv) { + DejaDupBackendFile * self; + GError * _inner_error_; + self = (DejaDupBackendFile*) base; + _inner_error_ = NULL; + if (mode == DEJA_DUP_OPERATION_MODE_BACKUP) { + { + char* path; + path = deja_dup_backend_file_get_location_from_gconf (self, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch0_g_error; + goto __finally0; + } + if (path != NULL) { + GFile* _tmp0_; + GFile* file; + _tmp0_ = NULL; + file = (_tmp0_ = g_file_parse_name (path), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); + if (g_file_is_native (file)) { + char* _tmp1_; + _tmp1_ = NULL; + (*argv) = g_list_prepend ((*argv), g_strdup_printf ("--exclude=%s", _tmp1_ = g_file_get_path (file))); + _tmp1_ = (g_free (_tmp1_), NULL); + } + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + } + path = (g_free (path), NULL); + } + goto __finally0; + __catch0_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("BackendFile.vala:69: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally0: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + } +} + + +static void _g_list_free_g_free (GList* self) { + g_list_foreach (self, (GFunc) g_free, NULL); + g_list_free (self); +} + + +/* This doesn't *really* worry about envp, it just is a convenient point to + hook into the operation steps to mount the file.*/ +static void deja_dup_backend_file_real_get_envp (DejaDupBackend* base, GError** error) { + DejaDupBackendFile * self; + GError * _inner_error_; + char* path; + GFile* _tmp0_; + GFile* file; + GMount* mount; + GList* _tmp3_; + self = (DejaDupBackendFile*) base; + _inner_error_ = NULL; + path = deja_dup_backend_file_get_location_from_gconf (self, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); + return; + } + _tmp0_ = NULL; + file = (_tmp0_ = g_file_parse_name (path), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); + mount = NULL; + if (!g_file_is_native (file)) { + { + GMount* _tmp1_; + GMount* _tmp2_; + _tmp1_ = g_file_find_enclosing_mount (file, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch1_g_error; + goto __finally1; + } + _tmp2_ = NULL; + mount = (_tmp2_ = _tmp1_, (mount == NULL) ? NULL : (mount = (g_object_unref (mount), NULL)), _tmp2_); + } + goto __finally1; + __catch1_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally1: + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); + path = (g_free (path), NULL); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + (mount == NULL) ? NULL : (mount = (g_object_unref (mount), NULL)); + return; + } + if (mount == NULL) { + deja_dup_backend_file_check_if_password_needed (self, file); + path = (g_free (path), NULL); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + (mount == NULL) ? NULL : (mount = (g_object_unref (mount), NULL)); + return; + } + } + _tmp3_ = NULL; + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", TRUE, _tmp3_ = NULL, NULL); + (_tmp3_ == NULL) ? NULL : (_tmp3_ = (_g_list_free_g_free (_tmp3_), NULL)); + path = (g_free (path), NULL); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + (mount == NULL) ? NULL : (mount = (g_object_unref (mount), NULL)); +} + + +static void _lambda7_ (GObject* o, GAsyncResult* r, DejaDupBackendFile* self) { + GError * _inner_error_; + g_return_if_fail (o != NULL); + g_return_if_fail (r != NULL); + _inner_error_ = NULL; + { + gboolean success; + GList* _tmp0_; + success = g_file_mount_enclosing_volume_finish (G_FILE (o), r, &_inner_error_); + if (_inner_error_ != NULL) { + if (g_error_matches (_inner_error_, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED)) { + goto __catch2_g_io_error_permission_denied; + } + goto __catch2_g_error; + goto __finally2; + } + _tmp0_ = NULL; + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", success, _tmp0_ = NULL, NULL); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (_g_list_free_g_free (_tmp0_), NULL)); + } + goto __finally2; + __catch2_g_io_error_permission_denied: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_signal_emit_by_name ((DejaDupBackend*) self, "need-password"); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + return; + } + } + goto __finally2; + __catch2_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + GList* _tmp1_; + _tmp1_ = NULL; + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", FALSE, _tmp1_ = NULL, e->message); + (_tmp1_ == NULL) ? NULL : (_tmp1_ = (_g_list_free_g_free (_tmp1_), NULL)); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally2: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +static void __lambda7__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) { + _lambda7_ (source_object, res, self); +} + + +static void deja_dup_backend_file_check_if_password_needed (DejaDupBackendFile* self, GFile* file) { + g_return_if_fail (self != NULL); + g_return_if_fail (file != NULL); + g_file_mount_enclosing_volume (file, G_MOUNT_MOUNT_NONE, NULL, NULL, __lambda7__gasync_ready_callback, self); +} + + +static void _lambda8_ (GObject* o, GAsyncResult* r, DejaDupBackendFile* self) { + GError * _inner_error_; + g_return_if_fail (o != NULL); + g_return_if_fail (r != NULL); + _inner_error_ = NULL; + { + gboolean success; + GList* _tmp0_; + success = g_file_mount_enclosing_volume_finish (G_FILE (o), r, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch4_g_error; + goto __finally4; + } + _tmp0_ = NULL; + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", success, _tmp0_ = NULL, NULL); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (_g_list_free_g_free (_tmp0_), NULL)); + } + goto __finally4; + __catch4_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + GList* _tmp1_; + _tmp1_ = NULL; + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", FALSE, _tmp1_ = NULL, e->message); + (_tmp1_ == NULL) ? NULL : (_tmp1_ = (_g_list_free_g_free (_tmp1_), NULL)); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally4: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +static void __lambda8__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) { + _lambda8_ (source_object, res, self); +} + + +static void deja_dup_backend_file_real_ask_password (DejaDupBackend* base) { + DejaDupBackendFile * self; + GError * _inner_error_; + char* path; + GFile* _tmp3_; + GFile* file; + GMountOperation* op; + self = (DejaDupBackendFile*) base; + _inner_error_ = NULL; + /* Make sure it's mounted*/ + path = NULL; + { + char* _tmp0_; + char* _tmp1_; + _tmp0_ = deja_dup_backend_file_get_location_from_gconf (self, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch3_g_error; + goto __finally3; + } + _tmp1_ = NULL; + path = (_tmp1_ = _tmp0_, path = (g_free (path), NULL), _tmp1_); + } + goto __finally3; + __catch3_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + GList* _tmp2_; + _tmp2_ = NULL; + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", FALSE, _tmp2_ = NULL, e->message); + (_tmp2_ == NULL) ? NULL : (_tmp2_ = (_g_list_free_g_free (_tmp2_), NULL)); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + path = (g_free (path), NULL); + return; + } + } + __finally3: + if (_inner_error_ != NULL) { + path = (g_free (path), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + _tmp3_ = NULL; + file = (_tmp3_ = g_file_parse_name (path), (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); + op = hacks_mount_operation_new (deja_dup_backend_get_toplevel ((DejaDupBackend*) self)); + g_file_mount_enclosing_volume (file, G_MOUNT_MOUNT_NONE, op, NULL, __lambda8__gasync_ready_callback, self); + path = (g_free (path), NULL); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + (op == NULL) ? NULL : (op = (g_object_unref (op), NULL)); } @@ -127,6 +502,9 @@ DEJA_DUP_BACKEND_CLASS (klass)->clone = deja_dup_backend_file_real_clone; DEJA_DUP_BACKEND_CLASS (klass)->get_location = deja_dup_backend_file_real_get_location; DEJA_DUP_BACKEND_CLASS (klass)->get_location_pretty = deja_dup_backend_file_real_get_location_pretty; + DEJA_DUP_BACKEND_CLASS (klass)->add_argv = deja_dup_backend_file_real_add_argv; + DEJA_DUP_BACKEND_CLASS (klass)->get_envp = deja_dup_backend_file_real_get_envp; + DEJA_DUP_BACKEND_CLASS (klass)->ask_password = deja_dup_backend_file_real_ask_password; } diff -Nru deja-dup-7.4/libdeja-dup/BackendFile.h deja-dup-10.0/libdeja-dup/BackendFile.h --- deja-dup-7.4/libdeja-dup/BackendFile.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendFile.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,45 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __BACKENDFILE_H__ -#define __BACKENDFILE_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <string.h> -#include <Backend.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_BACKEND_FILE (deja_dup_backend_file_get_type ()) -#define DEJA_DUP_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFile)) -#define DEJA_DUP_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) -#define DEJA_DUP_IS_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_FILE)) -#define DEJA_DUP_IS_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_FILE)) -#define DEJA_DUP_BACKEND_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) - -typedef struct _DejaDupBackendFile DejaDupBackendFile; -typedef struct _DejaDupBackendFileClass DejaDupBackendFileClass; -typedef struct _DejaDupBackendFilePrivate DejaDupBackendFilePrivate; - -struct _DejaDupBackendFile { - DejaDupBackend parent_instance; - DejaDupBackendFilePrivate * priv; -}; - -struct _DejaDupBackendFileClass { - DejaDupBackendClass parent_class; -}; - - -#define DEJA_DUP_FILE_PATH_KEY "/apps/deja-dup/file/path" -DejaDupBackendFile* deja_dup_backend_file_construct (GType object_type, GtkWindow* win); -DejaDupBackendFile* deja_dup_backend_file_new (GtkWindow* win); -GType deja_dup_backend_file_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/BackendFile.vala deja-dup-10.0/libdeja-dup/BackendFile.vala --- deja-dup-7.4/libdeja-dup/BackendFile.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendFile.vala 2009-06-02 17:48:56.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -35,7 +35,7 @@ string? get_location_from_gconf() throws Error { - var client = GConf.Client.get_default(); + var client = get_gconf_client(); var path = client.get_string(FILE_PATH_KEY); return path; } @@ -43,28 +43,99 @@ public override string? get_location() throws Error { var path = get_location_from_gconf(); - if (path == null) { - var dlg = new Gtk.FileChooserDialog(_("Choose backup destination"), - toplevel, - Gtk.FileChooserAction.CREATE_FOLDER, - Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, - Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT); - - if (dlg.run() != Gtk.ResponseType.ACCEPT) { - dlg.destroy(); - return null; - } - - path = dlg.get_filename(); - dlg.destroy(); - } - return "file://%s".printf(path); + var file = File.parse_name(path); + if (file.get_path() == null) + throw new BackupError.BAD_CONFIG(_("GVFS FUSE is not installed")); + return "file://" + file.get_path(); } public override string? get_location_pretty() throws Error { return get_location_from_gconf(); } + + public override void add_argv(Operation.Mode mode, ref List<string> argv) + { + if (mode == Operation.Mode.BACKUP) { + try { + var path = get_location_from_gconf(); + if (path != null) { + var file = File.parse_name(path); + if (file.is_native()) + argv.prepend("--exclude=%s".printf(file.get_path())); + } + } + catch (Error e) { + warning("%s\n", e.message); + } + } + } + + // This doesn't *really* worry about envp, it just is a convenient point to + // hook into the operation steps to mount the file. + public override void get_envp() throws Error + { + var path = get_location_from_gconf(); + var file = File.parse_name(path); + Mount mount = null; + if (!file.is_native()) { + // Check if it's mounted + try { + mount = file.find_enclosing_mount(null); + } + catch (Error e) {} + + if (mount == null) { + check_if_password_needed(file); + return; + } + } + + envp_ready(true, new List<string>()); + } + + void check_if_password_needed(File file) + { + // disallow interaction + file.mount_enclosing_volume(MountMountFlags.NONE, null, null, (o, r) => { + try { + var success = ((File)o).mount_enclosing_volume_finish(r); + envp_ready(success, new List<string>()); + } + catch (IOError.PERMISSION_DENIED e) { + need_password(); + return; + } + catch (Error e) { + envp_ready(false, new List<string>(), e.message); + } + }); + } + + public override void ask_password() + { + // Make sure it's mounted + string path; + try { + path = get_location_from_gconf(); + } + catch (Error e) { + envp_ready(false, new List<string>(), e.message); + return; + } + + var file = File.parse_name(path); + var op = hacks_mount_operation_new(toplevel); + file.mount_enclosing_volume(MountMountFlags.NONE, op, null, (o, r) => { + try { + var success = ((File)o).mount_enclosing_volume_finish(r); + envp_ready(success, new List<string>()); + } + catch (Error e) { + envp_ready(false, new List<string>(), e.message); + } + }); + } } } // end namespace diff -Nru deja-dup-7.4/libdeja-dup/Backend.h deja-dup-10.0/libdeja-dup/Backend.h --- deja-dup-7.4/libdeja-dup/Backend.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Backend.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,55 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __BACKEND_H__ -#define __BACKEND_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include <gtk/gtk.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) -#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) -#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) -#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) -#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) -#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) - -typedef struct _DejaDupBackend DejaDupBackend; -typedef struct _DejaDupBackendClass DejaDupBackendClass; -typedef struct _DejaDupBackendPrivate DejaDupBackendPrivate; - -struct _DejaDupBackend { - GObject parent_instance; - DejaDupBackendPrivate * priv; -}; - -struct _DejaDupBackendClass { - GObjectClass parent_class; - char* (*get_location) (DejaDupBackend* self, GError** error); - char* (*get_location_pretty) (DejaDupBackend* self, GError** error); - void (*get_envp) (DejaDupBackend* self, GError** error); - void (*add_argv) (DejaDupBackend* self, GList** argv); - void (*ask_password) (DejaDupBackend* self); - DejaDupBackend* (*clone) (DejaDupBackend* self); -}; - - -char* deja_dup_backend_get_location (DejaDupBackend* self, GError** error); -char* deja_dup_backend_get_location_pretty (DejaDupBackend* self, GError** error); -void deja_dup_backend_get_envp (DejaDupBackend* self, GError** error); -void deja_dup_backend_add_argv (DejaDupBackend* self, GList** argv); -void deja_dup_backend_ask_password (DejaDupBackend* self); -DejaDupBackend* deja_dup_backend_clone (DejaDupBackend* self); -DejaDupBackend* deja_dup_backend_get_default (GtkWindow* win, GError** error); -GtkWindow* deja_dup_backend_get_toplevel (DejaDupBackend* self); -GType deja_dup_backend_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/BackendS3.c deja-dup-10.0/libdeja-dup/BackendS3.c --- deja-dup-7.4/libdeja-dup/BackendS3.c 2009-02-10 21:08:16.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendS3.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,13 +1,70 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <BackendS3.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gtk/gtk.h> #include <gconf/gconf-client.h> #include <glib/gi18n-lib.h> #include <gnome-keyring.h> #include <libgnomeui/libgnomeui.h> +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; +typedef struct _DejaDupBackendPrivate DejaDupBackendPrivate; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +#define DEJA_DUP_TYPE_BACKEND_S3 (deja_dup_backend_s3_get_type ()) +#define DEJA_DUP_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3)) +#define DEJA_DUP_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) +#define DEJA_DUP_IS_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_IS_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_BACKEND_S3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) + +typedef struct _DejaDupBackendS3 DejaDupBackendS3; +typedef struct _DejaDupBackendS3Class DejaDupBackendS3Class; +typedef struct _DejaDupBackendS3Private DejaDupBackendS3Private; + +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; + +struct _DejaDupBackend { + GObject parent_instance; + DejaDupBackendPrivate * priv; +}; +struct _DejaDupBackendClass { + GObjectClass parent_class; + char* (*get_location) (DejaDupBackend* self, GError** error); + char* (*get_location_pretty) (DejaDupBackend* self, GError** error); + void (*get_envp) (DejaDupBackend* self, GError** error); + void (*add_argv) (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); + void (*ask_password) (DejaDupBackend* self); + DejaDupBackend* (*clone) (DejaDupBackend* self); +}; + +struct _DejaDupBackendS3 { + DejaDupBackend parent_instance; + DejaDupBackendS3Private * priv; +}; + +struct _DejaDupBackendS3Class { + DejaDupBackendClass parent_class; +}; struct _DejaDupBackendS3Private { char* gconf_id; @@ -15,25 +72,42 @@ char* secret_key; }; + + +#define DEJA_DUP_S3_ID_KEY "/apps/deja-dup/s3/id" +#define DEJA_DUP_S3_BUCKET_KEY "/apps/deja-dup/s3/bucket" +#define DEJA_DUP_S3_FOLDER_KEY "/apps/deja-dup/s3/folder" +#define DEJA_DUP_S3_SERVER "s3.amazonaws.com" +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_mode_get_type (void); +GType deja_dup_backend_s3_get_type (void); #define DEJA_DUP_BACKEND_S3_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Private)) enum { DEJA_DUP_BACKEND_S3_DUMMY_PROPERTY }; +static void deja_dup_backend_set_toplevel (DejaDupBackend* self, GtkWindow* value); +DejaDupBackendS3* deja_dup_backend_s3_new (GtkWindow* win); +DejaDupBackendS3* deja_dup_backend_s3_construct (GType object_type, GtkWindow* win); +DejaDupBackendS3* deja_dup_backend_s3_new (GtkWindow* win); +GtkWindow* deja_dup_backend_get_toplevel (DejaDupBackend* self); static DejaDupBackend* deja_dup_backend_s3_real_clone (DejaDupBackend* base); -static void deja_dup_backend_s3_real_add_argv (DejaDupBackend* base, GList** argv); +static void deja_dup_backend_s3_real_add_argv (DejaDupBackend* base, DejaDupOperationMode mode, GList** argv); static char* deja_dup_backend_s3_get_default_bucket (DejaDupBackendS3* self); +GConfClient* deja_dup_get_gconf_client (void); static char* deja_dup_backend_s3_real_get_location (DejaDupBackend* base, GError** error); +gboolean deja_dup_backend_s3_bump_bucket (DejaDupBackendS3* self); static char* deja_dup_backend_s3_real_get_location_pretty (DejaDupBackend* base, GError** error); -static void _deja_dup_backend_s3_found_password_gnome_keyring_operation_get_list_callback (GnomeKeyringResult result, GList* list, gpointer self); +static void deja_dup_backend_s3_got_secret_key (DejaDupBackendS3* self); +static void deja_dup_backend_s3_found_password (DejaDupBackendS3* self, GnomeKeyringResult _result_, GList* list); +static void _deja_dup_backend_s3_found_password_gnome_keyring_operation_get_list_callback (GnomeKeyringResult _result_, GList* list, gpointer self); static void deja_dup_backend_s3_real_get_envp (DejaDupBackend* base, GError** error); -static void deja_dup_backend_s3_found_password (DejaDupBackendS3* self, GnomeKeyringResult result, GList* list); -static void deja_dup_backend_s3_save_password_callback (DejaDupBackendS3* self, GnomeKeyringResult result, guint32 val); +static void deja_dup_backend_s3_save_password_callback (DejaDupBackendS3* self, GnomeKeyringResult _result_, guint32 val); static void _g_list_free_g_free (GList* self); -static void _deja_dup_backend_s3_save_password_callback_gnome_keyring_operation_get_int_callback (GnomeKeyringResult result, guint32 val, gpointer self); +static void _deja_dup_backend_s3_save_password_callback_gnome_keyring_operation_get_int_callback (GnomeKeyringResult _result_, guint32 val, gpointer self); static void deja_dup_backend_s3_real_ask_password (DejaDupBackend* base); -static void deja_dup_backend_s3_got_secret_key (DejaDupBackendS3* self); static gpointer deja_dup_backend_s3_parent_class = NULL; static void deja_dup_backend_s3_finalize (GObject* obj); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); static int _vala_strcmp0 (const char * str1, const char * str2); @@ -72,236 +146,235 @@ } -static void deja_dup_backend_s3_real_add_argv (DejaDupBackend* base, GList** argv) { +static void deja_dup_backend_s3_real_add_argv (DejaDupBackend* base, DejaDupOperationMode mode, GList** argv) { DejaDupBackendS3 * self; self = (DejaDupBackendS3*) base; - g_return_if_fail (argv != NULL); - (*argv) = g_list_append ((*argv), g_strdup ("--s3-use-new-style")); + if (mode == DEJA_DUP_OPERATION_MODE_INVALID) { + (*argv) = g_list_append ((*argv), g_strdup ("--s3-use-new-style")); + } } static char* deja_dup_backend_s3_get_default_bucket (DejaDupBackendS3* self) { - char* _tmp0; - char* _tmp1; + char* _tmp0_; + char* _tmp1_; g_return_val_if_fail (self != NULL, NULL); - _tmp0 = NULL; - _tmp1 = NULL; - return (_tmp1 = g_strdup_printf ("deja-dup-auto-%s", _tmp0 = g_utf8_strdown (self->priv->id, -1)), _tmp0 = (g_free (_tmp0), NULL), _tmp1); + _tmp0_ = NULL; + _tmp1_ = NULL; + return (_tmp1_ = g_strdup_printf ("deja-dup-auto-%s", _tmp0_ = g_utf8_strdown (self->priv->id, -1)), _tmp0_ = (g_free (_tmp0_), NULL), _tmp1_); } static char* deja_dup_backend_s3_real_get_location (DejaDupBackend* base, GError** error) { DejaDupBackendS3 * self; - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; - const char* _tmp1; + const char* _tmp0_; char* bucket; char* default_bucket; - gboolean _tmp2; - gboolean _tmp3; - const char* _tmp7; + gboolean _tmp1_; + gboolean _tmp2_; + const char* _tmp6_; char* folder; - gboolean _tmp8; - char* _tmp11; + gboolean _tmp7_; + char* _tmp10_; self = (DejaDupBackendS3*) base; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - bucket = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_S3_BUCKET_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + _tmp0_ = NULL; + bucket = (_tmp0_ = gconf_client_get_string (client, DEJA_DUP_S3_BUCKET_KEY, &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return NULL; } default_bucket = deja_dup_backend_s3_get_default_bucket (self); - _tmp2 = FALSE; - _tmp3 = FALSE; + _tmp1_ = FALSE; + _tmp2_ = FALSE; if (bucket == NULL) { - _tmp3 = TRUE; + _tmp2_ = TRUE; } else { - _tmp3 = _vala_strcmp0 (bucket, "") == 0; + _tmp2_ = _vala_strcmp0 (bucket, "") == 0; } - if (_tmp3) { - _tmp2 = TRUE; + if (_tmp2_) { + _tmp1_ = TRUE; } else { - gboolean _tmp4; - _tmp4 = FALSE; + gboolean _tmp3_; + _tmp3_ = FALSE; if (g_str_has_prefix (bucket, "deja-dup-auto-")) { - _tmp4 = !g_str_has_prefix (bucket, default_bucket); + _tmp3_ = !g_str_has_prefix (bucket, default_bucket); } else { - _tmp4 = FALSE; + _tmp3_ = FALSE; } - _tmp2 = (_tmp4); + _tmp1_ = _tmp3_; } - if (_tmp2) { - char* _tmp6; - const char* _tmp5; - _tmp6 = NULL; - _tmp5 = NULL; - bucket = (_tmp6 = (_tmp5 = default_bucket, (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), bucket = (g_free (bucket), NULL), _tmp6); - gconf_client_set_string (client, DEJA_DUP_S3_BUCKET_KEY, bucket, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + if (_tmp1_) { + char* _tmp5_; + const char* _tmp4_; + _tmp5_ = NULL; + _tmp4_ = NULL; + bucket = (_tmp5_ = (_tmp4_ = default_bucket, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)), bucket = (g_free (bucket), NULL), _tmp5_); + gconf_client_set_string (client, DEJA_DUP_S3_BUCKET_KEY, bucket, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); bucket = (g_free (bucket), NULL); default_bucket = (g_free (default_bucket), NULL); return NULL; } } - _tmp7 = NULL; - folder = (_tmp7 = gconf_client_get_string (client, DEJA_DUP_S3_FOLDER_KEY, &inner_error), (_tmp7 == NULL) ? NULL : g_strdup (_tmp7)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _tmp6_ = NULL; + folder = (_tmp6_ = gconf_client_get_string (client, DEJA_DUP_S3_FOLDER_KEY, &_inner_error_), (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_)); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); bucket = (g_free (bucket), NULL); default_bucket = (g_free (default_bucket), NULL); return NULL; } - _tmp8 = FALSE; + _tmp7_ = FALSE; if (folder != NULL) { - _tmp8 = _vala_strcmp0 (folder, "") != 0; + _tmp7_ = _vala_strcmp0 (folder, "") != 0; } else { - _tmp8 = FALSE; + _tmp7_ = FALSE; } - if (_tmp8) { + if (_tmp7_) { if (g_utf8_get_char (g_utf8_offset_to_pointer (folder, 0)) != '/') { - char* _tmp9; - _tmp9 = NULL; - bucket = (_tmp9 = g_strdup_printf ("%s/%s", bucket, folder), bucket = (g_free (bucket), NULL), _tmp9); + char* _tmp8_; + _tmp8_ = NULL; + bucket = (_tmp8_ = g_strdup_printf ("%s/%s", bucket, folder), bucket = (g_free (bucket), NULL), _tmp8_); } else { - char* _tmp10; - _tmp10 = NULL; - bucket = (_tmp10 = g_strdup_printf ("%s%s", bucket, folder), bucket = (g_free (bucket), NULL), _tmp10); + char* _tmp9_; + _tmp9_ = NULL; + bucket = (_tmp9_ = g_strdup_printf ("%s%s", bucket, folder), bucket = (g_free (bucket), NULL), _tmp9_); } } - _tmp11 = NULL; - return (_tmp11 = g_strdup_printf ("s3+http://%s", bucket), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), default_bucket = (g_free (default_bucket), NULL), folder = (g_free (folder), NULL), _tmp11); + _tmp10_ = NULL; + return (_tmp10_ = g_strdup_printf ("s3+http://%s", bucket), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), default_bucket = (g_free (default_bucket), NULL), folder = (g_free (folder), NULL), _tmp10_); } gboolean deja_dup_backend_s3_bump_bucket (DejaDupBackendS3* self) { - GError * inner_error; + GError * _inner_error_; g_return_val_if_fail (self != NULL, FALSE); - inner_error = NULL; + _inner_error_ = NULL; { - GConfClient* _tmp0; + GConfClient* _tmp0_; GConfClient* client; - const char* _tmp1; + const char* _tmp1_; char* bucket; - char** _tmp6; + char** _tmp6_; gint bits_size; gint bits_length1; - char** _tmp5; + char** _tmp5_; char** bits; - gboolean _tmp7; - gboolean _tmp8; - gboolean _tmp9; - gboolean _tmp10; - gboolean _tmp15; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - bucket = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_S3_BUCKET_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { + gboolean _tmp7_; + gboolean _tmp8_; + gboolean _tmp9_; + gboolean _tmp10_; + gboolean _tmp15_; + _tmp0_ = NULL; + client = (_tmp0_ = gconf_client_get_default (), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); + _tmp1_ = NULL; + bucket = (_tmp1_ = gconf_client_get_string (client, DEJA_DUP_S3_BUCKET_KEY, &_inner_error_), (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)); + if (_inner_error_ != NULL) { (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - goto __catch0_g_error; - goto __finally0; + goto __catch5_g_error; + goto __finally5; } if (_vala_strcmp0 (bucket, "deja-dup") == 0) { - char* _tmp2; - gboolean _tmp3; + char* _tmp2_; + gboolean _tmp3_; /* Until 7.4, we exposed the bucket name and defaulted to deja-dup. Since buckets are S3-global, everyone was unable to use that bucket, since I (Mike Terry) owned that bucket. If we see this setting, we should default to the generic bucket name rather than assume the user chose this bucket and error out.*/ - _tmp2 = NULL; - bucket = (_tmp2 = deja_dup_backend_s3_get_default_bucket (self), bucket = (g_free (bucket), NULL), _tmp2); - gconf_client_set_string (client, DEJA_DUP_S3_BUCKET_KEY, bucket, &inner_error); - if (inner_error != NULL) { + _tmp2_ = NULL; + bucket = (_tmp2_ = deja_dup_backend_s3_get_default_bucket (self), bucket = (g_free (bucket), NULL), _tmp2_); + gconf_client_set_string (client, DEJA_DUP_S3_BUCKET_KEY, bucket, &_inner_error_); + if (_inner_error_ != NULL) { (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); bucket = (g_free (bucket), NULL); - goto __catch0_g_error; - goto __finally0; + goto __catch5_g_error; + goto __finally5; } - return (_tmp3 = TRUE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), _tmp3); + return (_tmp3_ = TRUE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), _tmp3_); } if (!g_str_has_prefix (bucket, "deja-dup-auto-")) { - gboolean _tmp4; - return (_tmp4 = FALSE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), _tmp4); + gboolean _tmp4_; + return (_tmp4_ = FALSE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), _tmp4_); } - _tmp6 = NULL; - _tmp5 = NULL; - bits = (_tmp6 = _tmp5 = g_strsplit (bucket, "-", 0), bits_length1 = _vala_array_length (_tmp5), bits_size = bits_length1, _tmp6); - _tmp7 = FALSE; - _tmp8 = FALSE; - _tmp9 = FALSE; - _tmp10 = FALSE; + _tmp6_ = NULL; + _tmp5_ = NULL; + bits = (_tmp6_ = _tmp5_ = g_strsplit (bucket, "-", 0), bits_length1 = _vala_array_length (_tmp5_), bits_size = bits_length1, _tmp6_); + _tmp7_ = FALSE; + _tmp8_ = FALSE; + _tmp9_ = FALSE; + _tmp10_ = FALSE; if (bits == NULL) { - _tmp10 = TRUE; + _tmp10_ = TRUE; } else { - _tmp10 = bits[0] == NULL; + _tmp10_ = bits[0] == NULL; } - if (_tmp10) { - _tmp9 = TRUE; + if (_tmp10_) { + _tmp9_ = TRUE; } else { - _tmp9 = bits[1] == NULL; + _tmp9_ = bits[1] == NULL; } - if (_tmp9) { - _tmp8 = TRUE; + if (_tmp9_) { + _tmp8_ = TRUE; } else { - _tmp8 = bits[2] == NULL; + _tmp8_ = bits[2] == NULL; } - if (_tmp8) { - _tmp7 = TRUE; + if (_tmp8_) { + _tmp7_ = TRUE; } else { - _tmp7 = bits[3] == NULL; + _tmp7_ = bits[3] == NULL; } - if (_tmp7) { - gboolean _tmp11; - return (_tmp11 = FALSE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL), _tmp11); + if (_tmp7_) { + gboolean _tmp11_; + return (_tmp11_ = FALSE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL), _tmp11_); } if (bits[4] == NULL) { - char* _tmp12; - _tmp12 = NULL; - bucket = (_tmp12 = g_strconcat (bucket, ("-2"), NULL), bucket = (g_free (bucket), NULL), _tmp12); + char* _tmp12_; + _tmp12_ = NULL; + bucket = (_tmp12_ = g_strconcat (bucket, "-2", NULL), bucket = (g_free (bucket), NULL), _tmp12_); } else { glong num; - char* _tmp13; - char* _tmp14; + char* _tmp13_; + char* _tmp14_; num = atol (bits[4]); - _tmp13 = NULL; - bits[4] = (_tmp13 = g_strdup_printf ("%li", (num + 1)), bits[4] = (g_free (bits[4]), NULL), _tmp13); - _tmp14 = NULL; - bucket = (_tmp14 = g_strjoinv ("-", bits), bucket = (g_free (bucket), NULL), _tmp14); + _tmp13_ = NULL; + bits[4] = (_tmp13_ = g_strdup_printf ("%li", num + 1), bits[4] = (g_free (bits[4]), NULL), _tmp13_); + _tmp14_ = NULL; + bucket = (_tmp14_ = g_strjoinv ("-", bits), bucket = (g_free (bucket), NULL), _tmp14_); } - gconf_client_set_string (client, DEJA_DUP_S3_BUCKET_KEY, bucket, &inner_error); - if (inner_error != NULL) { + gconf_client_set_string (client, DEJA_DUP_S3_BUCKET_KEY, bucket, &_inner_error_); + if (_inner_error_ != NULL) { (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); bucket = (g_free (bucket), NULL); bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL); - goto __catch0_g_error; - goto __finally0; + goto __catch5_g_error; + goto __finally5; } - return (_tmp15 = TRUE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL), _tmp15); + return (_tmp15_ = TRUE, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), bucket = (g_free (bucket), NULL), bits = (_vala_array_free (bits, bits_length1, (GDestroyNotify) g_free), NULL), _tmp15_); } - goto __finally0; - __catch0_g_error: + goto __finally5; + __catch5_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - gboolean _tmp16; - return (_tmp16 = FALSE, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), _tmp16); + gboolean _tmp16_; + return (_tmp16_ = FALSE, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), _tmp16_); } } - __finally0: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally5: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } } @@ -309,96 +382,92 @@ static char* deja_dup_backend_s3_real_get_location_pretty (DejaDupBackend* base, GError** error) { DejaDupBackendS3 * self; - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; - const char* _tmp1; + const char* _tmp0_; char* folder; - gboolean _tmp2; - char* _tmp4; + gboolean _tmp1_; + char* _tmp3_; self = (DejaDupBackendS3*) base; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - folder = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_S3_FOLDER_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + _tmp0_ = NULL; + folder = (_tmp0_ = gconf_client_get_string (client, DEJA_DUP_S3_FOLDER_KEY, &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return NULL; } - _tmp2 = FALSE; + _tmp1_ = FALSE; if (folder == NULL) { - _tmp2 = TRUE; + _tmp1_ = TRUE; } else { - _tmp2 = _vala_strcmp0 (folder, "") == 0; + _tmp1_ = _vala_strcmp0 (folder, "") == 0; } - if (_tmp2) { - char* _tmp3; - _tmp3 = NULL; - folder = (_tmp3 = g_strdup ("/"), folder = (g_free (folder), NULL), _tmp3); + if (_tmp1_) { + char* _tmp2_; + _tmp2_ = NULL; + folder = (_tmp2_ = g_strdup ("/"), folder = (g_free (folder), NULL), _tmp2_); } - _tmp4 = NULL; - return (_tmp4 = g_strdup_printf (_ ("Folder %s on Amazon S3"), folder), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), folder = (g_free (folder), NULL), _tmp4); + _tmp3_ = NULL; + return (_tmp3_ = g_strdup_printf (_ ("Folder %s on Amazon S3"), folder), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), folder = (g_free (folder), NULL), _tmp3_); } -static void _deja_dup_backend_s3_found_password_gnome_keyring_operation_get_list_callback (GnomeKeyringResult result, GList* list, gpointer self) { - deja_dup_backend_s3_found_password (self, result, list); +static void _deja_dup_backend_s3_found_password_gnome_keyring_operation_get_list_callback (GnomeKeyringResult _result_, GList* list, gpointer self) { + deja_dup_backend_s3_found_password (self, _result_, list); } static void deja_dup_backend_s3_real_get_envp (DejaDupBackend* base, GError** error) { DejaDupBackendS3 * self; - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; - const char* _tmp1; - char* _tmp3; - const char* _tmp2; - const char* _tmp4; - char* _tmp6; - const char* _tmp5; - gboolean _tmp7; + const char* _tmp0_; + char* _tmp2_; + const char* _tmp1_; + const char* _tmp3_; + char* _tmp5_; + const char* _tmp4_; + gboolean _tmp6_; self = (DejaDupBackendS3*) base; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = gconf_client_get_string (client, DEJA_DUP_S3_ID_KEY, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + _tmp0_ = gconf_client_get_string (client, DEJA_DUP_S3_ID_KEY, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return; } - _tmp3 = NULL; - _tmp2 = NULL; - self->priv->gconf_id = (_tmp3 = (_tmp2 = _tmp1, (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)), self->priv->gconf_id = (g_free (self->priv->gconf_id), NULL), _tmp3); - _tmp4 = NULL; + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->gconf_id = (_tmp2_ = (_tmp1_ = _tmp0_, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->gconf_id = (g_free (self->priv->gconf_id), NULL), _tmp2_); + _tmp3_ = NULL; if (self->priv->gconf_id == NULL) { - _tmp4 = ""; + _tmp3_ = ""; } else { - _tmp4 = self->priv->gconf_id; + _tmp3_ = self->priv->gconf_id; } - _tmp6 = NULL; - _tmp5 = NULL; - self->priv->id = (_tmp6 = (_tmp5 = _tmp4, (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), self->priv->id = (g_free (self->priv->id), NULL), _tmp6); - _tmp7 = FALSE; + _tmp5_ = NULL; + _tmp4_ = NULL; + self->priv->id = (_tmp5_ = (_tmp4_ = _tmp3_, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)), self->priv->id = (g_free (self->priv->id), NULL), _tmp5_); + _tmp6_ = FALSE; if (_vala_strcmp0 (self->priv->id, "") != 0) { - _tmp7 = self->priv->secret_key != NULL; + _tmp6_ = self->priv->secret_key != NULL; } else { - _tmp7 = FALSE; + _tmp6_ = FALSE; } - if (_tmp7) { + if (_tmp6_) { /* We've already been run before and got the key*/ deja_dup_backend_s3_got_secret_key (self); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return; } if (_vala_strcmp0 (self->priv->id, "") != 0) { - char* _tmp8; + char* _tmp7_; /* First, try user's keyring*/ - _tmp8 = NULL; - self->priv->secret_key = (_tmp8 = NULL, self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp8); + _tmp7_ = NULL; + self->priv->secret_key = (_tmp7_ = NULL, self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp7_); gnome_keyring_find_network_password (self->priv->id, NULL, DEJA_DUP_S3_SERVER, NULL, "https", NULL, (guint32) 0, _deja_dup_backend_s3_found_password_gnome_keyring_operation_get_list_callback, g_object_ref (self), g_object_unref); } else { g_signal_emit_by_name ((DejaDupBackend*) self, "need-password"); @@ -407,21 +476,21 @@ } -static void deja_dup_backend_s3_found_password (DejaDupBackendS3* self, GnomeKeyringResult result, GList* list) { - gboolean _tmp0; +static void deja_dup_backend_s3_found_password (DejaDupBackendS3* self, GnomeKeyringResult _result_, GList* list) { + gboolean _tmp0_; g_return_if_fail (self != NULL); - _tmp0 = FALSE; - if (result == GNOME_KEYRING_RESULT_OK) { - _tmp0 = list != NULL; + _tmp0_ = FALSE; + if (_result_ == GNOME_KEYRING_RESULT_OK) { + _tmp0_ = list != NULL; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - if (_tmp0) { - char* _tmp2; - const char* _tmp1; - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->secret_key = (_tmp2 = (_tmp1 = ((GnomeKeyringNetworkPasswordData*) list->data)->password, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp2); + if (_tmp0_) { + char* _tmp2_; + const char* _tmp1_; + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->secret_key = (_tmp2_ = (_tmp1_ = ((GnomeKeyringNetworkPasswordData*) list->data)->password, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp2_); deja_dup_backend_s3_got_secret_key (self); } else { g_signal_emit_by_name ((DejaDupBackend*) self, "need-password"); @@ -429,7 +498,7 @@ } -static void deja_dup_backend_s3_save_password_callback (DejaDupBackendS3* self, GnomeKeyringResult result, guint32 val) { +static void deja_dup_backend_s3_save_password_callback (DejaDupBackendS3* self, GnomeKeyringResult _result_, guint32 val) { g_return_if_fail (self != NULL); } @@ -440,18 +509,20 @@ } -static void _deja_dup_backend_s3_save_password_callback_gnome_keyring_operation_get_int_callback (GnomeKeyringResult result, guint32 val, gpointer self) { - deja_dup_backend_s3_save_password_callback (self, result, val); +static void _deja_dup_backend_s3_save_password_callback_gnome_keyring_operation_get_int_callback (GnomeKeyringResult _result_, guint32 val, gpointer self) { + deja_dup_backend_s3_save_password_callback (self, _result_, val); } static void deja_dup_backend_s3_real_ask_password (DejaDupBackend* base) { DejaDupBackendS3 * self; GnomePasswordDialog* dlg; - char* _tmp2; - const char* _tmp1; - char* _tmp4; - const char* _tmp3; + char* _tmp2_; + const char* _tmp1_; + char* _tmp4_; + const char* _tmp3_; + char* _tmp6_; + const char* _tmp5_; GnomePasswordDialogRemember remember; self = (DejaDupBackendS3*) base; /* Ask user*/ @@ -459,33 +530,36 @@ ((GtkWindow*) dlg)->transient_parent = deja_dup_backend_get_toplevel ((DejaDupBackend*) self); g_object_set (dlg, "show-remember", TRUE, NULL); if (!gnome_password_dialog_run_and_block (dlg)) { - GList* _tmp0; - _tmp0 = NULL; - g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", FALSE, _tmp0 = NULL); - (_tmp0 == NULL) ? NULL : (_tmp0 = (_g_list_free_g_free (_tmp0), NULL)); + GList* _tmp0_; + _tmp0_ = NULL; + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", FALSE, _tmp0_ = NULL, NULL); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (_g_list_free_g_free (_tmp0_), NULL)); (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); return; } - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->id = (_tmp2 = (_tmp1 = gnome_password_dialog_get_username (dlg), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), self->priv->id = (g_free (self->priv->id), NULL), _tmp2); - _tmp4 = NULL; - _tmp3 = NULL; - self->priv->secret_key = (_tmp4 = (_tmp3 = gnome_password_dialog_get_password (dlg), (_tmp3 == NULL) ? NULL : g_strdup (_tmp3)), self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp4); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->id = (_tmp2_ = (_tmp1_ = gnome_password_dialog_get_username (dlg), (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->id = (g_free (self->priv->id), NULL), _tmp2_); + _tmp4_ = NULL; + _tmp3_ = NULL; + self->priv->secret_key = (_tmp4_ = (_tmp3_ = gnome_password_dialog_get_password (dlg), (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)), self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp4_); + _tmp6_ = NULL; + _tmp5_ = NULL; + self->priv->secret_key = (_tmp6_ = (_tmp5_ = g_strstrip (self->priv->secret_key), (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)), self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp6_); /* Save it*/ remember = gnome_password_dialog_get_remember (dlg); if (remember != GNOME_PASSWORD_DIALOG_REMEMBER_NOTHING) { - const char* _tmp5; - const char* _tmp6; + const char* _tmp7_; + const char* _tmp8_; char* where; - _tmp5 = NULL; + _tmp7_ = NULL; if (remember == GNOME_PASSWORD_DIALOG_REMEMBER_SESSION) { - _tmp5 = "session"; + _tmp7_ = "session"; } else { - _tmp5 = GNOME_KEYRING_DEFAULT; + _tmp7_ = GNOME_KEYRING_DEFAULT; } - _tmp6 = NULL; - where = (_tmp6 = _tmp5, (_tmp6 == NULL) ? NULL : g_strdup (_tmp6)); + _tmp8_ = NULL; + where = (_tmp8_ = _tmp7_, (_tmp8_ == NULL) ? NULL : g_strdup (_tmp8_)); gnome_keyring_set_network_password (where, self->priv->id, NULL, DEJA_DUP_S3_SERVER, NULL, "https", NULL, (guint32) 0, self->priv->secret_key, _deja_dup_backend_s3_save_password_callback_gnome_keyring_operation_get_int_callback, g_object_ref (self), g_object_unref); where = (g_free (where), NULL); } @@ -495,45 +569,43 @@ static void deja_dup_backend_s3_got_secret_key (DejaDupBackendS3* self) { - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; GList* envp; g_return_if_fail (self != NULL); - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); if (_vala_strcmp0 (self->priv->id, self->priv->gconf_id) != 0) { { - gconf_client_set_string (client, DEJA_DUP_S3_ID_KEY, self->priv->id, &inner_error); - if (inner_error != NULL) { - goto __catch1_g_error; - goto __finally1; + gconf_client_set_string (client, DEJA_DUP_S3_ID_KEY, self->priv->id, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch6_g_error; + goto __finally6; } } - goto __finally1; - __catch1_g_error: + goto __finally6; + __catch6_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("BackendS3.vala:198: %s\n", e->message); + g_warning ("BackendS3.vala:200: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally1: - if (inner_error != NULL) { + __finally6: + if (_inner_error_ != NULL) { (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } envp = NULL; envp = g_list_append (envp, g_strdup_printf ("AWS_ACCESS_KEY_ID=%s", self->priv->id)); envp = g_list_append (envp, g_strdup_printf ("AWS_SECRET_ACCESS_KEY=%s", self->priv->secret_key)); - g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", TRUE, envp); + g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", TRUE, envp, NULL); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); (envp == NULL) ? NULL : (envp = (_g_list_free_g_free (envp), NULL)); } @@ -542,13 +614,13 @@ static void deja_dup_backend_s3_class_init (DejaDupBackendS3Class * klass) { deja_dup_backend_s3_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (DejaDupBackendS3Private)); - G_OBJECT_CLASS (klass)->finalize = deja_dup_backend_s3_finalize; DEJA_DUP_BACKEND_CLASS (klass)->clone = deja_dup_backend_s3_real_clone; DEJA_DUP_BACKEND_CLASS (klass)->add_argv = deja_dup_backend_s3_real_add_argv; DEJA_DUP_BACKEND_CLASS (klass)->get_location = deja_dup_backend_s3_real_get_location; DEJA_DUP_BACKEND_CLASS (klass)->get_location_pretty = deja_dup_backend_s3_real_get_location_pretty; DEJA_DUP_BACKEND_CLASS (klass)->get_envp = deja_dup_backend_s3_real_get_envp; DEJA_DUP_BACKEND_CLASS (klass)->ask_password = deja_dup_backend_s3_real_ask_password; + G_OBJECT_CLASS (klass)->finalize = deja_dup_backend_s3_finalize; } @@ -577,7 +649,7 @@ } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -586,6 +658,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/libdeja-dup/BackendS3.h deja-dup-10.0/libdeja-dup/BackendS3.h --- deja-dup-7.4/libdeja-dup/BackendS3.h 2009-02-09 21:27:40.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendS3.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,49 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __BACKENDS3_H__ -#define __BACKENDS3_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <string.h> -#include <Backend.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_BACKEND_S3 (deja_dup_backend_s3_get_type ()) -#define DEJA_DUP_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3)) -#define DEJA_DUP_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) -#define DEJA_DUP_IS_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_S3)) -#define DEJA_DUP_IS_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_S3)) -#define DEJA_DUP_BACKEND_S3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) - -typedef struct _DejaDupBackendS3 DejaDupBackendS3; -typedef struct _DejaDupBackendS3Class DejaDupBackendS3Class; -typedef struct _DejaDupBackendS3Private DejaDupBackendS3Private; - -struct _DejaDupBackendS3 { - DejaDupBackend parent_instance; - DejaDupBackendS3Private * priv; -}; - -struct _DejaDupBackendS3Class { - DejaDupBackendClass parent_class; -}; - - -#define DEJA_DUP_S3_ID_KEY "/apps/deja-dup/s3/id" -#define DEJA_DUP_S3_BUCKET_KEY "/apps/deja-dup/s3/bucket" -#define DEJA_DUP_S3_FOLDER_KEY "/apps/deja-dup/s3/folder" -#define DEJA_DUP_S3_SERVER "s3.amazonaws.com" -DejaDupBackendS3* deja_dup_backend_s3_construct (GType object_type, GtkWindow* win); -DejaDupBackendS3* deja_dup_backend_s3_new (GtkWindow* win); -gboolean deja_dup_backend_s3_bump_bucket (DejaDupBackendS3* self); -GType deja_dup_backend_s3_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/BackendS3.vala deja-dup-10.0/libdeja-dup/BackendS3.vala --- deja-dup-7.4/libdeja-dup/BackendS3.vala 2009-02-10 20:47:27.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendS3.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -37,8 +37,9 @@ return new BackendS3(toplevel); } - public override void add_argv(ref List<string> argv) { - argv.append("--s3-use-new-style"); + public override void add_argv(Operation.Mode mode, ref List<string> argv) { + if (mode == Operation.Mode.INVALID) + argv.append("--s3-use-new-style"); } string get_default_bucket() { @@ -47,7 +48,7 @@ public override string? get_location() throws Error { - var client = GConf.Client.get_default(); + var client = get_gconf_client(); var bucket = client.get_string(S3_BUCKET_KEY); var default_bucket = get_default_bucket(); @@ -113,7 +114,7 @@ public override string? get_location_pretty() throws Error { - var client = GConf.Client.get_default(); + var client = get_gconf_client(); var folder = client.get_string(S3_FOLDER_KEY); if (folder == null || folder == "") folder = "/"; @@ -126,7 +127,7 @@ string secret_key; public override void get_envp() throws Error { - var client = GConf.Client.get_default(); + var client = get_gconf_client(); gconf_id = client.get_string(S3_ID_KEY); id = gconf_id == null ? "" : gconf_id; @@ -175,6 +176,7 @@ id = dlg.get_username(); secret_key = dlg.get_password(); + secret_key = secret_key.strip(); // Save it var remember = dlg.get_remember(); @@ -190,7 +192,7 @@ } void got_secret_key() { - var client = GConf.Client.get_default(); + var client = get_gconf_client(); if (id != gconf_id) { try { client.set_string(S3_ID_KEY, id); diff -Nru deja-dup-7.4/libdeja-dup/BackendSSH.c deja-dup-10.0/libdeja-dup/BackendSSH.c --- deja-dup-7.4/libdeja-dup/BackendSSH.c 2009-02-09 21:27:40.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendSSH.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,599 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#include <BackendSSH.h> -#include <gconf/gconf-client.h> -#include <glib/gi18n-lib.h> -#include <gnome-keyring.h> -#include <libgnomeui/libgnomeui.h> -#include <OperationBackup.h> - - - - -struct _DejaDupBackendSSHPrivate { - char* gconf_id; - char* id; - char* server; - gint port; - char* secret_key; -}; - -#define DEJA_DUP_BACKEND_SSH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_BACKEND_SSH, DejaDupBackendSSHPrivate)) -enum { - DEJA_DUP_BACKEND_SSH_DUMMY_PROPERTY -}; -static DejaDupBackend* deja_dup_backend_ssh_real_clone (DejaDupBackend* base); -static void deja_dup_backend_ssh_real_add_argv (DejaDupBackend* base, GList** argv); -static gint deja_dup_backend_ssh_get_port (DejaDupBackendSSH* self, GError** error); -static char* deja_dup_backend_ssh_get_username (DejaDupBackendSSH* self, GError** error); -static char* deja_dup_backend_ssh_get_server (DejaDupBackendSSH* self, GError** error); -static char* deja_dup_backend_ssh_get_directory (DejaDupBackendSSH* self, GError** error); -static char* deja_dup_backend_ssh_real_get_location (DejaDupBackend* base, GError** error); -static char* deja_dup_backend_ssh_real_get_location_pretty (DejaDupBackend* base, GError** error); -static void _deja_dup_backend_ssh_found_password_gnome_keyring_operation_get_list_callback (GnomeKeyringResult result, GList* list, gpointer self); -static void deja_dup_backend_ssh_real_get_envp (DejaDupBackend* base, GError** error); -static void deja_dup_backend_ssh_found_password (DejaDupBackendSSH* self, GnomeKeyringResult result, GList* list); -static void deja_dup_backend_ssh_save_password_callback (DejaDupBackendSSH* self, GnomeKeyringResult result, guint32 val); -static void _g_list_free_g_free (GList* self); -static void _deja_dup_backend_ssh_save_password_callback_gnome_keyring_operation_get_int_callback (GnomeKeyringResult result, guint32 val, gpointer self); -static void deja_dup_backend_ssh_real_ask_password (DejaDupBackend* base); -static void deja_dup_backend_ssh_got_secret_key (DejaDupBackendSSH* self); -static gpointer deja_dup_backend_ssh_parent_class = NULL; -static void deja_dup_backend_ssh_finalize (GObject* obj); -static int _vala_strcmp0 (const char * str1, const char * str2); - - - -DejaDupBackendSSH* deja_dup_backend_ssh_construct (GType object_type, GtkWindow* win) { - GParameter * __params; - GParameter * __params_it; - DejaDupBackendSSH * self; - __params = g_new0 (GParameter, 1); - __params_it = __params; - __params_it->name = "toplevel"; - g_value_init (&__params_it->value, GTK_TYPE_WINDOW); - g_value_set_object (&__params_it->value, win); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -DejaDupBackendSSH* deja_dup_backend_ssh_new (GtkWindow* win) { - return deja_dup_backend_ssh_construct (DEJA_DUP_TYPE_BACKEND_SSH, win); -} - - -static DejaDupBackend* deja_dup_backend_ssh_real_clone (DejaDupBackend* base) { - DejaDupBackendSSH * self; - self = (DejaDupBackendSSH*) base; - return (DejaDupBackend*) deja_dup_backend_ssh_new (deja_dup_backend_get_toplevel ((DejaDupBackend*) self)); -} - - -static void deja_dup_backend_ssh_real_add_argv (DejaDupBackend* base, GList** argv) { - DejaDupBackendSSH * self; - self = (DejaDupBackendSSH*) base; - g_return_if_fail (argv != NULL); - (*argv) = g_list_append ((*argv), g_strdup ("--ssh-askpass")); - (*argv) = g_list_append ((*argv), g_strdup ("--ssh-options=-oStrictHostKeyChecking=no")); -} - - -static gint deja_dup_backend_ssh_get_port (DejaDupBackendSSH* self, GError** error) { - GError * inner_error; - GConfClient* _tmp0; - GConfClient* client; - gint port; - gint _tmp1; - gint _tmp2; - g_return_val_if_fail (self != NULL, 0); - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - port = gconf_client_get_int (client, DEJA_DUP_SSH_PORT_KEY, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return 0; - } - _tmp1 = 0; - if (port > 0) { - _tmp1 = port; - } else { - _tmp1 = 22; - } - return (_tmp2 = _tmp1, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), _tmp2); -} - - -static char* deja_dup_backend_ssh_get_username (DejaDupBackendSSH* self, GError** error) { - GError * inner_error; - GConfClient* _tmp0; - GConfClient* client; - const char* _tmp1; - char* username; - gboolean _tmp2; - char* _tmp3; - g_return_val_if_fail (self != NULL, NULL); - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - username = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_SSH_USERNAME_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return NULL; - } - _tmp2 = FALSE; - if (username == NULL) { - _tmp2 = TRUE; - } else { - _tmp2 = _vala_strcmp0 (username, "") == 0; - } - if (_tmp2) { - inner_error = g_error_new_literal (DEJA_DUP_BACKUP_ERROR, DEJA_DUP_BACKUP_ERROR_BAD_CONFIG, _ ("No username specified")); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - username = (g_free (username), NULL); - return NULL; - } - } - _tmp3 = NULL; - return (_tmp3 = username, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), _tmp3); -} - - -static char* deja_dup_backend_ssh_get_server (DejaDupBackendSSH* self, GError** error) { - GError * inner_error; - GConfClient* _tmp0; - GConfClient* client; - const char* _tmp1; - char* server; - gboolean _tmp2; - char* _tmp3; - g_return_val_if_fail (self != NULL, NULL); - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - server = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_SSH_SERVER_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return NULL; - } - _tmp2 = FALSE; - if (server == NULL) { - _tmp2 = TRUE; - } else { - _tmp2 = _vala_strcmp0 (server, "") == 0; - } - if (_tmp2) { - inner_error = g_error_new_literal (DEJA_DUP_BACKUP_ERROR, DEJA_DUP_BACKUP_ERROR_BAD_CONFIG, _ ("No server specified")); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - server = (g_free (server), NULL); - return NULL; - } - } - _tmp3 = NULL; - return (_tmp3 = server, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), _tmp3); -} - - -static char* deja_dup_backend_ssh_get_directory (DejaDupBackendSSH* self, GError** error) { - GError * inner_error; - GConfClient* _tmp0; - GConfClient* client; - const char* _tmp1; - char* directory; - gboolean _tmp2; - g_return_val_if_fail (self != NULL, NULL); - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - directory = (_tmp1 = gconf_client_get_string (client, DEJA_DUP_SSH_DIRECTORY_KEY, &inner_error), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return NULL; - } - _tmp2 = FALSE; - if (directory == NULL) { - _tmp2 = TRUE; - } else { - _tmp2 = _vala_strcmp0 (directory, "") == 0; - } - if (_tmp2) { - char* _tmp3; - _tmp3 = NULL; - return (_tmp3 = g_strdup ("/"), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), directory = (g_free (directory), NULL), _tmp3); - } else { - if (g_utf8_get_char (g_utf8_offset_to_pointer (directory, 0)) != '/') { - char* _tmp4; - _tmp4 = NULL; - return (_tmp4 = g_strconcat ("/", directory, NULL), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), directory = (g_free (directory), NULL), _tmp4); - } else { - char* _tmp5; - _tmp5 = NULL; - return (_tmp5 = directory, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), _tmp5); - } - } - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - directory = (g_free (directory), NULL); -} - - -static char* deja_dup_backend_ssh_real_get_location (DejaDupBackend* base, GError** error) { - DejaDupBackendSSH * self; - GError * inner_error; - char* username; - char* directory; - char* _tmp3; - self = (DejaDupBackendSSH*) base; - inner_error = NULL; - username = deja_dup_backend_ssh_get_username (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - return NULL; - } - directory = deja_dup_backend_ssh_get_directory (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - username = (g_free (username), NULL); - return NULL; - } - if (self->priv->server == NULL) { - char* _tmp0; - char* _tmp1; - gint _tmp2; - _tmp0 = deja_dup_backend_ssh_get_server (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - username = (g_free (username), NULL); - directory = (g_free (directory), NULL); - return NULL; - } - /* we haven't yet got server or port from gconf*/ - _tmp1 = NULL; - self->priv->server = (_tmp1 = _tmp0, self->priv->server = (g_free (self->priv->server), NULL), _tmp1); - _tmp2 = deja_dup_backend_ssh_get_port (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - username = (g_free (username), NULL); - directory = (g_free (directory), NULL); - return NULL; - } - self->priv->port = _tmp2; - } - _tmp3 = NULL; - return (_tmp3 = g_strdup_printf ("ssh://%s@%s:%d/%s", username, self->priv->server, self->priv->port, directory), username = (g_free (username), NULL), directory = (g_free (directory), NULL), _tmp3); -} - - -static char* deja_dup_backend_ssh_real_get_location_pretty (DejaDupBackend* base, GError** error) { - DejaDupBackendSSH * self; - GError * inner_error; - char* username; - char* directory; - char* _tmp3; - self = (DejaDupBackendSSH*) base; - inner_error = NULL; - username = deja_dup_backend_ssh_get_username (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - return NULL; - } - directory = deja_dup_backend_ssh_get_directory (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - username = (g_free (username), NULL); - return NULL; - } - if (self->priv->server == NULL) { - char* _tmp0; - char* _tmp1; - gint _tmp2; - _tmp0 = deja_dup_backend_ssh_get_server (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - username = (g_free (username), NULL); - directory = (g_free (directory), NULL); - return NULL; - } - /* we haven't yet got server or port from gconf*/ - _tmp1 = NULL; - self->priv->server = (_tmp1 = _tmp0, self->priv->server = (g_free (self->priv->server), NULL), _tmp1); - _tmp2 = deja_dup_backend_ssh_get_port (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - username = (g_free (username), NULL); - directory = (g_free (directory), NULL); - return NULL; - } - self->priv->port = _tmp2; - } - _tmp3 = NULL; - return (_tmp3 = g_strdup_printf (_ ("%s on ssh://%s@%s:%d"), directory, username, self->priv->server, self->priv->port), username = (g_free (username), NULL), directory = (g_free (directory), NULL), _tmp3); -} - - -static void _deja_dup_backend_ssh_found_password_gnome_keyring_operation_get_list_callback (GnomeKeyringResult result, GList* list, gpointer self) { - deja_dup_backend_ssh_found_password (self, result, list); -} - - -static void deja_dup_backend_ssh_real_get_envp (DejaDupBackend* base, GError** error) { - DejaDupBackendSSH * self; - GError * inner_error; - GConfClient* _tmp0; - GConfClient* client; - const char* _tmp1; - char* _tmp3; - const char* _tmp2; - const char* _tmp4; - char* _tmp6; - const char* _tmp5; - char* _tmp7; - char* _tmp8; - gint _tmp9; - gboolean _tmp10; - self = (DejaDupBackendSSH*) base; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = gconf_client_get_string (client, DEJA_DUP_SSH_USERNAME_KEY, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return; - } - _tmp3 = NULL; - _tmp2 = NULL; - self->priv->gconf_id = (_tmp3 = (_tmp2 = _tmp1, (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)), self->priv->gconf_id = (g_free (self->priv->gconf_id), NULL), _tmp3); - _tmp4 = NULL; - if (self->priv->gconf_id == NULL) { - _tmp4 = ""; - } else { - _tmp4 = self->priv->gconf_id; - } - _tmp6 = NULL; - _tmp5 = NULL; - self->priv->id = (_tmp6 = (_tmp5 = _tmp4, (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), self->priv->id = (g_free (self->priv->id), NULL), _tmp6); - _tmp7 = deja_dup_backend_ssh_get_server (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return; - } - _tmp8 = NULL; - self->priv->server = (_tmp8 = _tmp7, self->priv->server = (g_free (self->priv->server), NULL), _tmp8); - _tmp9 = deja_dup_backend_ssh_get_port (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return; - } - self->priv->port = _tmp9; - _tmp10 = FALSE; - if (_vala_strcmp0 (self->priv->id, "") != 0) { - _tmp10 = self->priv->secret_key != NULL; - } else { - _tmp10 = FALSE; - } - if (_tmp10) { - /* We've already been run before and got the key*/ - deja_dup_backend_ssh_got_secret_key (self); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - return; - } - if (_vala_strcmp0 (self->priv->id, "") != 0) { - char* _tmp11; - /* First, try user's keyring*/ - _tmp11 = NULL; - self->priv->secret_key = (_tmp11 = NULL, self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp11); - gnome_keyring_find_network_password (self->priv->id, NULL, self->priv->server, NULL, "ssh", NULL, (guint32) self->priv->port, _deja_dup_backend_ssh_found_password_gnome_keyring_operation_get_list_callback, g_object_ref (self), g_object_unref); - } else { - g_signal_emit_by_name ((DejaDupBackend*) self, "need-password"); - } - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); -} - - -static void deja_dup_backend_ssh_found_password (DejaDupBackendSSH* self, GnomeKeyringResult result, GList* list) { - gboolean _tmp0; - g_return_if_fail (self != NULL); - _tmp0 = FALSE; - if (result == GNOME_KEYRING_RESULT_OK) { - _tmp0 = list != NULL; - } else { - _tmp0 = FALSE; - } - if (_tmp0) { - char* _tmp2; - const char* _tmp1; - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->secret_key = (_tmp2 = (_tmp1 = ((GnomeKeyringNetworkPasswordData*) list->data)->password, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp2); - deja_dup_backend_ssh_got_secret_key (self); - } else { - g_signal_emit_by_name ((DejaDupBackend*) self, "need-password"); - } -} - - -static void deja_dup_backend_ssh_save_password_callback (DejaDupBackendSSH* self, GnomeKeyringResult result, guint32 val) { - g_return_if_fail (self != NULL); -} - - -static void _g_list_free_g_free (GList* self) { - g_list_foreach (self, (GFunc) g_free, NULL); - g_list_free (self); -} - - -static void _deja_dup_backend_ssh_save_password_callback_gnome_keyring_operation_get_int_callback (GnomeKeyringResult result, guint32 val, gpointer self) { - deja_dup_backend_ssh_save_password_callback (self, result, val); -} - - -static void deja_dup_backend_ssh_real_ask_password (DejaDupBackend* base) { - DejaDupBackendSSH * self; - char* _tmp0; - GnomePasswordDialog* _tmp1; - GnomePasswordDialog* dlg; - char* _tmp4; - const char* _tmp3; - char* _tmp6; - const char* _tmp5; - GnomePasswordDialogRemember remember; - self = (DejaDupBackendSSH*) base; - /* Ask user*/ - _tmp0 = NULL; - _tmp1 = NULL; - dlg = (_tmp1 = g_object_ref_sink ((GnomePasswordDialog*) gnome_password_dialog_new (_ ("SSH Password"), _tmp0 = g_strdup_printf (_ ("Enter your SSH username and password for server %s."), self->priv->server), self->priv->id, "", FALSE)), _tmp0 = (g_free (_tmp0), NULL), _tmp1); - ((GtkWindow*) dlg)->transient_parent = deja_dup_backend_get_toplevel ((DejaDupBackend*) self); - g_object_set (dlg, "show-remember", TRUE, NULL); - if (!gnome_password_dialog_run_and_block (dlg)) { - GList* _tmp2; - _tmp2 = NULL; - g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", FALSE, _tmp2 = NULL); - (_tmp2 == NULL) ? NULL : (_tmp2 = (_g_list_free_g_free (_tmp2), NULL)); - (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); - return; - } - _tmp4 = NULL; - _tmp3 = NULL; - self->priv->id = (_tmp4 = (_tmp3 = gnome_password_dialog_get_username (dlg), (_tmp3 == NULL) ? NULL : g_strdup (_tmp3)), self->priv->id = (g_free (self->priv->id), NULL), _tmp4); - _tmp6 = NULL; - _tmp5 = NULL; - self->priv->secret_key = (_tmp6 = (_tmp5 = gnome_password_dialog_get_password (dlg), (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), self->priv->secret_key = (g_free (self->priv->secret_key), NULL), _tmp6); - /* Save it*/ - remember = gnome_password_dialog_get_remember (dlg); - if (remember != GNOME_PASSWORD_DIALOG_REMEMBER_NOTHING) { - const char* _tmp7; - const char* _tmp8; - char* where; - _tmp7 = NULL; - if (remember == GNOME_PASSWORD_DIALOG_REMEMBER_SESSION) { - _tmp7 = "session"; - } else { - _tmp7 = GNOME_KEYRING_DEFAULT; - } - _tmp8 = NULL; - where = (_tmp8 = _tmp7, (_tmp8 == NULL) ? NULL : g_strdup (_tmp8)); - gnome_keyring_set_network_password (where, self->priv->id, NULL, self->priv->server, NULL, "ssh", NULL, (guint32) self->priv->port, self->priv->secret_key, _deja_dup_backend_ssh_save_password_callback_gnome_keyring_operation_get_int_callback, g_object_ref (self), g_object_unref); - where = (g_free (where), NULL); - } - deja_dup_backend_ssh_got_secret_key (self); - (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); -} - - -static void deja_dup_backend_ssh_got_secret_key (DejaDupBackendSSH* self) { - GError * inner_error; - GConfClient* _tmp0; - GConfClient* client; - GList* envp; - g_return_if_fail (self != NULL); - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - if (_vala_strcmp0 (self->priv->id, self->priv->gconf_id) != 0) { - { - gconf_client_set_string (client, DEJA_DUP_SSH_USERNAME_KEY, self->priv->id, &inner_error); - if (inner_error != NULL) { - goto __catch2_g_error; - goto __finally2; - } - } - goto __finally2; - __catch2_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("BackendSSH.vala:188: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally2: - if (inner_error != NULL) { - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - } - envp = NULL; - envp = g_list_append (envp, g_strdup_printf ("FTP_PASSWORD=%s", self->priv->secret_key)); - g_signal_emit_by_name ((DejaDupBackend*) self, "envp-ready", TRUE, envp); - (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - (envp == NULL) ? NULL : (envp = (_g_list_free_g_free (envp), NULL)); -} - - -static void deja_dup_backend_ssh_class_init (DejaDupBackendSSHClass * klass) { - deja_dup_backend_ssh_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (DejaDupBackendSSHPrivate)); - G_OBJECT_CLASS (klass)->finalize = deja_dup_backend_ssh_finalize; - DEJA_DUP_BACKEND_CLASS (klass)->clone = deja_dup_backend_ssh_real_clone; - DEJA_DUP_BACKEND_CLASS (klass)->add_argv = deja_dup_backend_ssh_real_add_argv; - DEJA_DUP_BACKEND_CLASS (klass)->get_location = deja_dup_backend_ssh_real_get_location; - DEJA_DUP_BACKEND_CLASS (klass)->get_location_pretty = deja_dup_backend_ssh_real_get_location_pretty; - DEJA_DUP_BACKEND_CLASS (klass)->get_envp = deja_dup_backend_ssh_real_get_envp; - DEJA_DUP_BACKEND_CLASS (klass)->ask_password = deja_dup_backend_ssh_real_ask_password; -} - - -static void deja_dup_backend_ssh_instance_init (DejaDupBackendSSH * self) { - self->priv = DEJA_DUP_BACKEND_SSH_GET_PRIVATE (self); -} - - -static void deja_dup_backend_ssh_finalize (GObject* obj) { - DejaDupBackendSSH * self; - self = DEJA_DUP_BACKEND_SSH (obj); - self->priv->gconf_id = (g_free (self->priv->gconf_id), NULL); - self->priv->id = (g_free (self->priv->id), NULL); - self->priv->server = (g_free (self->priv->server), NULL); - self->priv->secret_key = (g_free (self->priv->secret_key), NULL); - G_OBJECT_CLASS (deja_dup_backend_ssh_parent_class)->finalize (obj); -} - - -GType deja_dup_backend_ssh_get_type (void) { - static GType deja_dup_backend_ssh_type_id = 0; - if (deja_dup_backend_ssh_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (DejaDupBackendSSHClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_backend_ssh_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupBackendSSH), 0, (GInstanceInitFunc) deja_dup_backend_ssh_instance_init, NULL }; - deja_dup_backend_ssh_type_id = g_type_register_static (DEJA_DUP_TYPE_BACKEND, "DejaDupBackendSSH", &g_define_type_info, 0); - } - return deja_dup_backend_ssh_type_id; -} - - -static int _vala_strcmp0 (const char * str1, const char * str2) { - if (str1 == NULL) { - return -(str1 != str2); - } - if (str2 == NULL) { - return str1 != str2; - } - return strcmp (str1, str2); -} - - - - diff -Nru deja-dup-7.4/libdeja-dup/BackendSSH.h deja-dup-10.0/libdeja-dup/BackendSSH.h --- deja-dup-7.4/libdeja-dup/BackendSSH.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendSSH.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,48 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __BACKENDSSH_H__ -#define __BACKENDSSH_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <string.h> -#include <Backend.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_BACKEND_SSH (deja_dup_backend_ssh_get_type ()) -#define DEJA_DUP_BACKEND_SSH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_SSH, DejaDupBackendSSH)) -#define DEJA_DUP_BACKEND_SSH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_SSH, DejaDupBackendSSHClass)) -#define DEJA_DUP_IS_BACKEND_SSH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_SSH)) -#define DEJA_DUP_IS_BACKEND_SSH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_SSH)) -#define DEJA_DUP_BACKEND_SSH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_SSH, DejaDupBackendSSHClass)) - -typedef struct _DejaDupBackendSSH DejaDupBackendSSH; -typedef struct _DejaDupBackendSSHClass DejaDupBackendSSHClass; -typedef struct _DejaDupBackendSSHPrivate DejaDupBackendSSHPrivate; - -struct _DejaDupBackendSSH { - DejaDupBackend parent_instance; - DejaDupBackendSSHPrivate * priv; -}; - -struct _DejaDupBackendSSHClass { - DejaDupBackendClass parent_class; -}; - - -#define DEJA_DUP_SSH_USERNAME_KEY "/apps/deja-dup/ssh/username" -#define DEJA_DUP_SSH_SERVER_KEY "/apps/deja-dup/ssh/server" -#define DEJA_DUP_SSH_PORT_KEY "/apps/deja-dup/ssh/port" -#define DEJA_DUP_SSH_DIRECTORY_KEY "/apps/deja-dup/ssh/directory" -DejaDupBackendSSH* deja_dup_backend_ssh_construct (GType object_type, GtkWindow* win); -DejaDupBackendSSH* deja_dup_backend_ssh_new (GtkWindow* win); -GType deja_dup_backend_ssh_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/BackendSSH.vala deja-dup-10.0/libdeja-dup/BackendSSH.vala --- deja-dup-7.4/libdeja-dup/BackendSSH.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/BackendSSH.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,198 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -namespace DejaDup { - -public const string SSH_USERNAME_KEY = "/apps/deja-dup/ssh/username"; -public const string SSH_SERVER_KEY = "/apps/deja-dup/ssh/server"; -public const string SSH_PORT_KEY = "/apps/deja-dup/ssh/port"; -public const string SSH_DIRECTORY_KEY = "/apps/deja-dup/ssh/directory"; - -public class BackendSSH : Backend -{ - public BackendSSH(Gtk.Window? win) { - toplevel = win; - } - - public override Backend clone() { - return new BackendSSH(toplevel); - } - - public override void add_argv(ref List<string> argv) { - argv.append("--ssh-askpass"); - argv.append("--ssh-options=-oStrictHostKeyChecking=no"); - } - - int get_port() throws Error - { - var client = GConf.Client.get_default(); - var port = client.get_int(SSH_PORT_KEY); - return port > 0 ? port : 22; - } - - string get_username() throws Error - { - var client = GConf.Client.get_default(); - var username = client.get_string(SSH_USERNAME_KEY); - if (username == null || username == "") - throw new BackupError.BAD_CONFIG(_("No username specified")); - return username; - } - - string get_server() throws Error - { - var client = GConf.Client.get_default(); - var server = client.get_string(SSH_SERVER_KEY); - if (server == null || server == "") - throw new BackupError.BAD_CONFIG(_("No server specified")); - return server; - } - - string get_directory() throws Error - { - var client = GConf.Client.get_default(); - var directory = client.get_string(SSH_DIRECTORY_KEY); - if (directory == null || directory == "") - return "/"; - else if (directory[0] != '/') - return "/" + directory; - else - return directory; - } - - public override string? get_location() throws Error - { - var username = get_username(); - var directory = get_directory(); - - if (server == null) { - // we haven't yet got server or port from gconf - server = get_server(); - port = get_port(); - } - - return "ssh://%s@%s:%d/%s".printf(username, server, port, directory); - } - - public override string? get_location_pretty() throws Error - { - var username = get_username(); - var directory = get_directory(); - - if (server == null) { - // we haven't yet got server or port from gconf - server = get_server(); - port = get_port(); - } - - return _("%s on ssh://%s@%s:%d").printf(directory, username, server, port); - } - - string gconf_id; - string id; - string server; - int port; - string secret_key; - public override void get_envp() throws Error - { - var client = GConf.Client.get_default(); - gconf_id = client.get_string(SSH_USERNAME_KEY); - id = gconf_id == null ? "" : gconf_id; - - server = get_server(); - port = get_port(); - - if (id != "" && secret_key != null) { - // We've already been run before and got the key - got_secret_key(); - return; - } - - if (id != "") { - // First, try user's keyring - secret_key = null; - GnomeKeyring.find_network_password(id, null, server, null, "ssh", - null, port, found_password); - } - else - need_password(); - } - - void found_password(GnomeKeyring.Result result, GLib.List? list) - { - if (result == GnomeKeyring.Result.OK && list != null) { - secret_key = ((GnomeKeyring.NetworkPasswordData)list.data).password; - got_secret_key(); - } - else { - need_password(); - } - } - - void save_password_callback(GnomeKeyring.Result result, uint32 val) - { - } - - public override void ask_password() { - // Ask user - var dlg = new Gnome.PasswordDialog(_("SSH Password"), - _("Enter your SSH username and password for server %s.").printf(server), - id, "", false); - dlg.transient_parent = toplevel; - dlg.show_remember = true; - if (!dlg.run_and_block()) { - envp_ready(false, new List<string>()); - return; - } - - id = dlg.get_username(); - secret_key = dlg.get_password(); - - // Save it - var remember = dlg.get_remember(); - if (remember != Gnome.PasswordDialogRemember.NOTHING) { - string where = remember == Gnome.PasswordDialogRemember.SESSION ? - "session" : GnomeKeyring.DEFAULT; - GnomeKeyring.set_network_password(where, id, null, server, null, - "ssh", null, port, secret_key, - save_password_callback); - } - - got_secret_key(); - } - - void got_secret_key() { - var client = GConf.Client.get_default(); - if (id != gconf_id) { - try { - client.set_string(SSH_USERNAME_KEY, id); - } - catch (Error e) {warning("%s\n", e.message);} - } - - List<string> envp = new List<string>(); - envp.append("FTP_PASSWORD=%s".printf(secret_key)); - envp_ready(true, envp); - } -} - -} // end namespace - diff -Nru deja-dup-7.4/libdeja-dup/Backend.vala deja-dup-10.0/libdeja-dup/Backend.vala --- deja-dup-7.4/libdeja-dup/Backend.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Backend.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -23,7 +23,7 @@ public abstract class Backend : Object { - public signal void envp_ready(bool success, List<string>? envp); + public signal void envp_ready(bool success, List<string>? envp, string? error = null); public signal void need_password(); public Gtk.Window toplevel {get; construct;} @@ -35,21 +35,22 @@ envp_ready(true, new List<string>()); } - public virtual void add_argv(ref List<string> argv) {} + // Arguments needed only when the particular mode is active + // If mode == INVALID, arguments needed any time the backup is referenced. + public virtual void add_argv(Operation.Mode mode, ref List<string> argv) {} + public virtual void ask_password() {} public abstract Backend clone(); public static Backend? get_default(Gtk.Window? win) throws Error { - var client = GConf.Client.get_default(); + var client = get_gconf_client(); var backend_name = client.get_string(BACKEND_KEY); if (backend_name == "s3") return new BackendS3(win); else if (backend_name == "file") return new BackendFile(win); - else if (backend_name == "ssh") - return new BackendSSH(win); else return null; } diff -Nru deja-dup-7.4/libdeja-dup/ButtonConnect.c deja-dup-10.0/libdeja-dup/ButtonConnect.c --- deja-dup-7.4/libdeja-dup/ButtonConnect.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ButtonConnect.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,146 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <glib/gi18n-lib.h> + + +#define DEJA_DUP_TYPE_BUTTON_CONNECT (deja_dup_button_connect_get_type ()) +#define DEJA_DUP_BUTTON_CONNECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnect)) +#define DEJA_DUP_BUTTON_CONNECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnectClass)) +#define DEJA_DUP_IS_BUTTON_CONNECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT)) +#define DEJA_DUP_IS_BUTTON_CONNECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BUTTON_CONNECT)) +#define DEJA_DUP_BUTTON_CONNECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnectClass)) + +typedef struct _DejaDupButtonConnect DejaDupButtonConnect; +typedef struct _DejaDupButtonConnectClass DejaDupButtonConnectClass; +typedef struct _DejaDupButtonConnectPrivate DejaDupButtonConnectPrivate; + +struct _DejaDupButtonConnect { + GtkButton parent_instance; + DejaDupButtonConnectPrivate * priv; +}; + +struct _DejaDupButtonConnectClass { + GtkButtonClass parent_class; +}; + + + +GType deja_dup_button_connect_get_type (void); +enum { + DEJA_DUP_BUTTON_CONNECT_DUMMY_PROPERTY +}; +void deja_dup_button_connect_run_connect_server_dialog (GtkWindow* parent); +DejaDupButtonConnect* deja_dup_button_connect_new (void); +DejaDupButtonConnect* deja_dup_button_connect_construct (GType object_type); +DejaDupButtonConnect* deja_dup_button_connect_new (void); +GtkWindow* deja_dup_get_topwindow (GtkWidget* w); +static void _lambda9_ (GtkButton* b, DejaDupButtonConnect* self); +static void __lambda9__gtk_button_clicked (GtkButton* _sender, gpointer self); +static GObject * deja_dup_button_connect_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_button_connect_parent_class = NULL; + + + +void deja_dup_button_connect_run_connect_server_dialog (GtkWindow* parent) { + GError * _inner_error_; + _inner_error_ = NULL; + { + g_spawn_command_line_async ("nautilus-connect-server", &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch7_g_error; + goto __finally7; + } + } + goto __finally7; + __catch7_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + GtkMessageDialog* dlg; + dlg = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (parent, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("Could not open connection dialog"), NULL)); + gtk_message_dialog_format_secondary_text (dlg, "%s", e->message, NULL); + gtk_dialog_run ((GtkDialog*) dlg); + gtk_object_destroy ((GtkObject*) dlg); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); + } + } + __finally7: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +DejaDupButtonConnect* deja_dup_button_connect_construct (GType object_type) { + DejaDupButtonConnect * self; + self = g_object_newv (object_type, 0, NULL); + return self; +} + + +DejaDupButtonConnect* deja_dup_button_connect_new (void) { + return deja_dup_button_connect_construct (DEJA_DUP_TYPE_BUTTON_CONNECT); +} + + +static void _lambda9_ (GtkButton* b, DejaDupButtonConnect* self) { + GtkWindow* _tmp0_; + g_return_if_fail (b != NULL); + _tmp0_ = NULL; + deja_dup_button_connect_run_connect_server_dialog (_tmp0_ = deja_dup_get_topwindow ((GtkWidget*) self)); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)); +} + + +static void __lambda9__gtk_button_clicked (GtkButton* _sender, gpointer self) { + _lambda9_ (_sender, self); +} + + +static GObject * deja_dup_button_connect_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupButtonConnectClass * klass; + GObjectClass * parent_class; + DejaDupButtonConnect * self; + klass = DEJA_DUP_BUTTON_CONNECT_CLASS (g_type_class_peek (DEJA_DUP_TYPE_BUTTON_CONNECT)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_BUTTON_CONNECT (obj); + { + g_object_set ((GObject*) self, "use-underline", TRUE, "label", _ ("Connect to _Server..."), NULL); + g_signal_connect ((GtkButton*) self, "clicked", (GCallback) __lambda9__gtk_button_clicked, self); + } + return obj; +} + + +static void deja_dup_button_connect_class_init (DejaDupButtonConnectClass * klass) { + deja_dup_button_connect_parent_class = g_type_class_peek_parent (klass); + G_OBJECT_CLASS (klass)->constructor = deja_dup_button_connect_constructor; +} + + +static void deja_dup_button_connect_instance_init (DejaDupButtonConnect * self) { +} + + +GType deja_dup_button_connect_get_type (void) { + static GType deja_dup_button_connect_type_id = 0; + if (deja_dup_button_connect_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupButtonConnectClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_button_connect_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupButtonConnect), 0, (GInstanceInitFunc) deja_dup_button_connect_instance_init, NULL }; + deja_dup_button_connect_type_id = g_type_register_static (GTK_TYPE_BUTTON, "DejaDupButtonConnect", &g_define_type_info, 0); + } + return deja_dup_button_connect_type_id; +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ButtonConnect.vala deja-dup-10.0/libdeja-dup/ButtonConnect.vala --- deja-dup-7.4/libdeja-dup/ButtonConnect.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ButtonConnect.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,46 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ButtonConnect : Gtk.Button +{ + construct { + set("use-underline", true, + "label", _("Connect to _Server...")); + clicked.connect((b) => {run_connect_server_dialog(get_topwindow(this));}); + } + + public static void run_connect_server_dialog(Gtk.Window? parent) + { + try { + Process.spawn_command_line_async("nautilus-connect-server"); + } catch (Error e) { + var dlg = new Gtk.MessageDialog (parent, Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, _("Could not open connection dialog")); + dlg.format_secondary_text("%s", e.message); + dlg.run(); + dlg.destroy(); + } + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigBool.c deja-dup-10.0/libdeja-dup/ConfigBool.c --- deja-dup-7.4/libdeja-dup/ConfigBool.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigBool.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,323 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_TOGGLABLE (deja_dup_togglable_get_type ()) +#define DEJA_DUP_TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_TOGGLABLE, DejaDupTogglable)) +#define DEJA_DUP_IS_TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_TOGGLABLE)) +#define DEJA_DUP_TOGGLABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), DEJA_DUP_TYPE_TOGGLABLE, DejaDupTogglableIface)) + +typedef struct _DejaDupTogglable DejaDupTogglable; +typedef struct _DejaDupTogglableIface DejaDupTogglableIface; + +#define DEJA_DUP_TYPE_CONFIG_BOOL (deja_dup_config_bool_get_type ()) +#define DEJA_DUP_CONFIG_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_BOOL, DejaDupConfigBool)) +#define DEJA_DUP_CONFIG_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_BOOL, DejaDupConfigBoolClass)) +#define DEJA_DUP_IS_CONFIG_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_BOOL)) +#define DEJA_DUP_IS_CONFIG_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_BOOL)) +#define DEJA_DUP_CONFIG_BOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_BOOL, DejaDupConfigBoolClass)) + +typedef struct _DejaDupConfigBool DejaDupConfigBool; +typedef struct _DejaDupConfigBoolClass DejaDupConfigBoolClass; +typedef struct _DejaDupConfigBoolPrivate DejaDupConfigBoolPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupTogglableIface { + GTypeInterface parent_iface; + gboolean (*get_active) (DejaDupTogglable* self); +}; + +struct _DejaDupConfigBool { + DejaDupConfigWidget parent_instance; + DejaDupConfigBoolPrivate * priv; +}; + +struct _DejaDupConfigBoolClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigBoolPrivate { + char* _label; + GtkCheckButton* button; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_togglable_get_type (void); +GType deja_dup_config_bool_get_type (void); +#define DEJA_DUP_CONFIG_BOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_CONFIG_BOOL, DejaDupConfigBoolPrivate)) +enum { + DEJA_DUP_CONFIG_BOOL_DUMMY_PROPERTY, + DEJA_DUP_CONFIG_BOOL_LABEL +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +static void deja_dup_config_bool_set_label (DejaDupConfigBool* self, const char* value); +DejaDupConfigBool* deja_dup_config_bool_new (const char* key, const char* label); +DejaDupConfigBool* deja_dup_config_bool_construct (GType object_type, const char* key, const char* label); +DejaDupConfigBool* deja_dup_config_bool_new (const char* key, const char* label); +static gboolean deja_dup_config_bool_real_get_active (DejaDupTogglable* base); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_bool_real_set_from_config (DejaDupConfigWidget* base); +static void deja_dup_config_bool_handle_toggled (DejaDupConfigBool* self); +const char* deja_dup_config_bool_get_label (DejaDupConfigBool* self); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +static void _deja_dup_config_bool_handle_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self); +static GObject * deja_dup_config_bool_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_bool_parent_class = NULL; +static DejaDupTogglableIface* deja_dup_config_bool_deja_dup_togglable_parent_iface = NULL; +static void deja_dup_config_bool_finalize (GObject* obj); +static void deja_dup_config_bool_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_config_bool_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); + + + +DejaDupConfigBool* deja_dup_config_bool_construct (GType object_type, const char* key, const char* label) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigBool * self; + g_return_val_if_fail (key != NULL, NULL); + g_return_val_if_fail (label != NULL, NULL); + __params = g_new0 (GParameter, 2); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + __params_it->name = "label"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, label); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigBool* deja_dup_config_bool_new (const char* key, const char* label) { + return deja_dup_config_bool_construct (DEJA_DUP_TYPE_CONFIG_BOOL, key, label); +} + + +static gboolean deja_dup_config_bool_real_get_active (DejaDupTogglable* base) { + DejaDupConfigBool * self; + self = (DejaDupConfigBool*) base; + return gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->button); +} + + +static void deja_dup_config_bool_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigBool * self; + GError * _inner_error_; + self = (DejaDupConfigBool*) base; + _inner_error_ = NULL; + { + gboolean val; + val = gconf_client_get_bool (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch8_g_error; + goto __finally8; + } + gtk_toggle_button_set_active ((GtkToggleButton*) self->priv->button, val); + } + goto __finally8; + __catch8_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigBool.vala:52: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally8: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +static void deja_dup_config_bool_handle_toggled (DejaDupConfigBool* self) { + GError * _inner_error_; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + { + gconf_client_set_bool (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->button), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch9_g_error; + goto __finally9; + } + } + goto __finally9; + __catch9_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigBool.vala:62: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally9: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + g_signal_emit_by_name ((DejaDupTogglable*) self, "toggled"); +} + + +const char* deja_dup_config_bool_get_label (DejaDupConfigBool* self) { + g_return_val_if_fail (self != NULL, NULL); + return self->priv->_label; +} + + +static void deja_dup_config_bool_set_label (DejaDupConfigBool* self, const char* value) { + char* _tmp2_; + const char* _tmp1_; + g_return_if_fail (self != NULL); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_label = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->_label = (g_free (self->priv->_label), NULL), _tmp2_); + g_object_notify ((GObject *) self, "label"); +} + + +static void _deja_dup_config_bool_handle_toggled_gtk_toggle_button_toggled (GtkToggleButton* _sender, gpointer self) { + deja_dup_config_bool_handle_toggled (self); +} + + +static GObject * deja_dup_config_bool_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigBoolClass * klass; + GObjectClass * parent_class; + DejaDupConfigBool * self; + klass = DEJA_DUP_CONFIG_BOOL_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_BOOL)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_BOOL (obj); + { + GtkCheckButton* _tmp0_; + _tmp0_ = NULL; + self->priv->button = (_tmp0_ = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_mnemonic (self->priv->_label)), (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)), _tmp0_); + gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->button); + deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self); + g_signal_connect_object ((GtkToggleButton*) self->priv->button, "toggled", (GCallback) _deja_dup_config_bool_handle_toggled_gtk_toggle_button_toggled, self, 0); + } + return obj; +} + + +static void deja_dup_config_bool_class_init (DejaDupConfigBoolClass * klass) { + deja_dup_config_bool_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupConfigBoolPrivate)); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_bool_real_set_from_config; + G_OBJECT_CLASS (klass)->get_property = deja_dup_config_bool_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_config_bool_set_property; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_bool_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_bool_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_CONFIG_BOOL_LABEL, g_param_spec_string ("label", "label", "label", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); +} + + +static void deja_dup_config_bool_deja_dup_togglable_interface_init (DejaDupTogglableIface * iface) { + deja_dup_config_bool_deja_dup_togglable_parent_iface = g_type_interface_peek_parent (iface); + iface->get_active = deja_dup_config_bool_real_get_active; +} + + +static void deja_dup_config_bool_instance_init (DejaDupConfigBool * self) { + self->priv = DEJA_DUP_CONFIG_BOOL_GET_PRIVATE (self); +} + + +static void deja_dup_config_bool_finalize (GObject* obj) { + DejaDupConfigBool * self; + self = DEJA_DUP_CONFIG_BOOL (obj); + self->priv->_label = (g_free (self->priv->_label), NULL); + (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)); + G_OBJECT_CLASS (deja_dup_config_bool_parent_class)->finalize (obj); +} + + +GType deja_dup_config_bool_get_type (void) { + static GType deja_dup_config_bool_type_id = 0; + if (deja_dup_config_bool_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigBoolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_bool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigBool), 0, (GInstanceInitFunc) deja_dup_config_bool_instance_init, NULL }; + static const GInterfaceInfo deja_dup_togglable_info = { (GInterfaceInitFunc) deja_dup_config_bool_deja_dup_togglable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + deja_dup_config_bool_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigBool", &g_define_type_info, 0); + g_type_add_interface_static (deja_dup_config_bool_type_id, DEJA_DUP_TYPE_TOGGLABLE, &deja_dup_togglable_info); + } + return deja_dup_config_bool_type_id; +} + + +static void deja_dup_config_bool_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupConfigBool * self; + gpointer boxed; + self = DEJA_DUP_CONFIG_BOOL (object); + switch (property_id) { + case DEJA_DUP_CONFIG_BOOL_LABEL: + g_value_set_string (value, deja_dup_config_bool_get_label (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_config_bool_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupConfigBool * self; + self = DEJA_DUP_CONFIG_BOOL (object); + switch (property_id) { + case DEJA_DUP_CONFIG_BOOL_LABEL: + deja_dup_config_bool_set_label (self, g_value_get_string (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigBool.vala deja-dup-10.0/libdeja-dup/ConfigBool.vala --- deja-dup-7.4/libdeja-dup/ConfigBool.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigBool.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,70 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigBool : ConfigWidget, Togglable +{ + public string label {get; construct;} + + public ConfigBool(string key, string label) + { + this.key = key; + this.label = label; + } + + public bool get_active() {return button.get_active();} + + Gtk.CheckButton button; + construct { + button = new Gtk.CheckButton.with_mnemonic(label); + add(button); + + set_from_config(); + button.toggled.connect(handle_toggled); + } + + protected override void set_from_config() + { + try { + var val = client.get_bool(key); + button.set_active(val); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + void handle_toggled() + { + try { + client.set_bool(key, button.get_active()); + } + catch (Error e) { + warning("%s\n", e.message); + } + + toggled(); + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigChoice.c deja-dup-10.0/libdeja-dup/ConfigChoice.c --- deja-dup-7.4/libdeja-dup/ConfigChoice.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigChoice.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,339 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_CHOICE (deja_dup_config_choice_get_type ()) +#define DEJA_DUP_CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoice)) +#define DEJA_DUP_CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoiceClass)) +#define DEJA_DUP_IS_CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE)) +#define DEJA_DUP_IS_CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_CHOICE)) +#define DEJA_DUP_CONFIG_CHOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoiceClass)) + +typedef struct _DejaDupConfigChoice DejaDupConfigChoice; +typedef struct _DejaDupConfigChoiceClass DejaDupConfigChoiceClass; +typedef struct _DejaDupConfigChoicePrivate DejaDupConfigChoicePrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigChoice { + DejaDupConfigWidget parent_instance; + DejaDupConfigChoicePrivate * priv; + GtkComboBox* combo; + char* default_val; + gint gconf_col; +}; + +struct _DejaDupConfigChoiceClass { + DejaDupConfigWidgetClass parent_class; + void (*handle_changed) (DejaDupConfigChoice* self); +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_choice_get_type (void); +enum { + DEJA_DUP_CONFIG_CHOICE_DUMMY_PROPERTY +}; +void deja_dup_config_choice_handle_changed (DejaDupConfigChoice* self); +static void _deja_dup_config_choice_handle_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +void deja_dup_config_choice_init (DejaDupConfigChoice* self, GtkTreeModel* model, gint gconf_col); +static GValue* _g_value_dup (GValue* self); +GValue* deja_dup_config_choice_get_current_value (DejaDupConfigChoice* self); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_choice_real_handle_changed (DejaDupConfigChoice* self); +static void deja_dup_config_choice_real_set_from_config (DejaDupConfigWidget* base); +DejaDupConfigChoice* deja_dup_config_choice_new (void); +DejaDupConfigChoice* deja_dup_config_choice_construct (GType object_type); +DejaDupConfigChoice* deja_dup_config_choice_new (void); +static GObject * deja_dup_config_choice_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_choice_parent_class = NULL; +static void deja_dup_config_choice_finalize (GObject* obj); +static int _vala_strcmp0 (const char * str1, const char * str2); + + + +static void _deja_dup_config_choice_handle_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) { + deja_dup_config_choice_handle_changed (self); +} + + +void deja_dup_config_choice_init (DejaDupConfigChoice* self, GtkTreeModel* model, gint gconf_col) { + g_return_if_fail (self != NULL); + g_return_if_fail (model != NULL); + gtk_combo_box_set_model (self->combo, model); + self->gconf_col = gconf_col; + g_signal_connect_object (self->combo, "changed", (GCallback) _deja_dup_config_choice_handle_changed_gtk_combo_box_changed, self, 0); + deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self); +} + + +static GValue* _g_value_dup (GValue* self) { + return g_boxed_copy (G_TYPE_VALUE, self); +} + + +GValue* deja_dup_config_choice_get_current_value (DejaDupConfigChoice* self) { + GtkTreeIter iter = {0}; + g_return_val_if_fail (self != NULL, NULL); + if (gtk_combo_box_get_active_iter (self->combo, &iter)) { + GValue val = {0}; + GValue _tmp1_ = {0}; + GValue _tmp0_ = {0}; + GValue* _tmp4_; + GValue _tmp3_ = {0}; + GValue _tmp2_ = {0}; + GValue* _tmp5_; + gtk_tree_model_get_value (gtk_combo_box_get_model (self->combo), &iter, self->gconf_col, &_tmp0_); + val = (_tmp1_ = _tmp0_, G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL, _tmp1_); + _tmp4_ = NULL; + _tmp5_ = NULL; + return (_tmp5_ = (_tmp4_ = (_tmp3_ = _tmp2_ = val, &_tmp3_), (_tmp4_ == NULL) ? NULL : _g_value_dup (_tmp4_)), G_IS_VALUE (&_tmp2_) ? (g_value_unset (&_tmp2_), NULL) : NULL, _tmp5_); + } + return NULL; +} + + +static void deja_dup_config_choice_real_handle_changed (DejaDupConfigChoice* self) { + GError * _inner_error_; + GValue* val; + const char* _tmp0_; + const char* _tmp1_; + char* strval; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + val = deja_dup_config_choice_get_current_value (self); + _tmp0_ = NULL; + if (val == NULL) { + _tmp0_ = ""; + } else { + _tmp0_ = g_value_get_string (val); + } + _tmp1_ = NULL; + strval = (_tmp1_ = _tmp0_, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)); + { + gconf_client_set_string (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), strval, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch10_g_error; + goto __finally10; + } + } + goto __finally10; + __catch10_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigChoice.vala:67: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally10: + if (_inner_error_ != NULL) { + (val == NULL) ? NULL : (val = (g_free (val), NULL)); + strval = (g_free (strval), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + g_signal_emit_by_name (self, "changed", strval); + (val == NULL) ? NULL : (val = (g_free (val), NULL)); + strval = (g_free (strval), NULL); +} + + +void deja_dup_config_choice_handle_changed (DejaDupConfigChoice* self) { + DEJA_DUP_CONFIG_CHOICE_GET_CLASS (self)->handle_changed (self); +} + + +static void deja_dup_config_choice_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigChoice * self; + GError * _inner_error_; + char* confval; + gboolean _tmp3_; + gboolean valid; + GtkTreeIter iter = {0}; + self = (DejaDupConfigChoice*) base; + _inner_error_ = NULL; + confval = NULL; + { + const char* _tmp0_; + char* _tmp2_; + const char* _tmp1_; + _tmp0_ = gconf_client_get_string (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch11_g_error; + goto __finally11; + } + _tmp2_ = NULL; + _tmp1_ = NULL; + confval = (_tmp2_ = (_tmp1_ = _tmp0_, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), confval = (g_free (confval), NULL), _tmp2_); + } + goto __finally11; + __catch11_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigChoice.vala:80: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally11: + if (_inner_error_ != NULL) { + confval = (g_free (confval), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + _tmp3_ = FALSE; + if (confval == NULL) { + _tmp3_ = TRUE; + } else { + _tmp3_ = _vala_strcmp0 (confval, "") == 0; + } + if (_tmp3_) { + char* _tmp5_; + const char* _tmp4_; + _tmp5_ = NULL; + _tmp4_ = NULL; + confval = (_tmp5_ = (_tmp4_ = self->default_val, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)), confval = (g_free (confval), NULL), _tmp5_); + } + if (confval == NULL) { + confval = (g_free (confval), NULL); + return; + } + valid = FALSE; + valid = gtk_tree_model_get_iter_first (gtk_combo_box_get_model (self->combo), &iter); + while (valid) { + GValue val = {0}; + GValue _tmp7_ = {0}; + GValue _tmp6_ = {0}; + const char* _tmp8_; + char* strval; + gtk_tree_model_get_value (gtk_combo_box_get_model (self->combo), &iter, self->gconf_col, &_tmp6_); + val = (_tmp7_ = _tmp6_, G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL, _tmp7_); + _tmp8_ = NULL; + strval = (_tmp8_ = g_value_get_string (&val), (_tmp8_ == NULL) ? NULL : g_strdup (_tmp8_)); + if (_vala_strcmp0 (strval, confval) == 0) { + gtk_combo_box_set_active_iter (self->combo, &iter); + G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; + strval = (g_free (strval), NULL); + break; + } + valid = gtk_tree_model_iter_next (gtk_combo_box_get_model (self->combo), &iter); + G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; + strval = (g_free (strval), NULL); + } + confval = (g_free (confval), NULL); +} + + +DejaDupConfigChoice* deja_dup_config_choice_construct (GType object_type) { + DejaDupConfigChoice * self; + self = g_object_newv (object_type, 0, NULL); + return self; +} + + +DejaDupConfigChoice* deja_dup_config_choice_new (void) { + return deja_dup_config_choice_construct (DEJA_DUP_TYPE_CONFIG_CHOICE); +} + + +static GObject * deja_dup_config_choice_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigChoiceClass * klass; + GObjectClass * parent_class; + DejaDupConfigChoice * self; + klass = DEJA_DUP_CONFIG_CHOICE_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_CHOICE)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_CHOICE (obj); + { + GtkComboBox* _tmp0_; + _tmp0_ = NULL; + self->combo = (_tmp0_ = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_text ()), (self->combo == NULL) ? NULL : (self->combo = (g_object_unref (self->combo), NULL)), _tmp0_); + gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->combo); + } + return obj; +} + + +static void deja_dup_config_choice_class_init (DejaDupConfigChoiceClass * klass) { + deja_dup_config_choice_parent_class = g_type_class_peek_parent (klass); + DEJA_DUP_CONFIG_CHOICE_CLASS (klass)->handle_changed = deja_dup_config_choice_real_handle_changed; + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_choice_real_set_from_config; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_choice_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_choice_finalize; + g_signal_new ("changed", DEJA_DUP_TYPE_CONFIG_CHOICE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); +} + + +static void deja_dup_config_choice_instance_init (DejaDupConfigChoice * self) { + self->default_val = NULL; +} + + +static void deja_dup_config_choice_finalize (GObject* obj) { + DejaDupConfigChoice * self; + self = DEJA_DUP_CONFIG_CHOICE (obj); + (self->combo == NULL) ? NULL : (self->combo = (g_object_unref (self->combo), NULL)); + self->default_val = (g_free (self->default_val), NULL); + G_OBJECT_CLASS (deja_dup_config_choice_parent_class)->finalize (obj); +} + + +GType deja_dup_config_choice_get_type (void) { + static GType deja_dup_config_choice_type_id = 0; + if (deja_dup_config_choice_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigChoiceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_choice_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigChoice), 0, (GInstanceInitFunc) deja_dup_config_choice_instance_init, NULL }; + deja_dup_config_choice_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigChoice", &g_define_type_info, 0); + } + return deja_dup_config_choice_type_id; +} + + +static int _vala_strcmp0 (const char * str1, const char * str2) { + if (str1 == NULL) { + return -(str1 != str2); + } + if (str2 == NULL) { + return str1 != str2; + } + return strcmp (str1, str2); +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigChoice.vala deja-dup-10.0/libdeja-dup/ConfigChoice.vala --- deja-dup-7.4/libdeja-dup/ConfigChoice.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigChoice.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,106 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigChoice : ConfigWidget +{ + public signal void changed(string val); + + protected Gtk.ComboBox combo; + protected string default_val = null; + construct { + combo = new Gtk.ComboBox.text(); + add(combo); + } + + // Subclasses use this to setup the choice list + protected int gconf_col; + public void init(Gtk.TreeModel model, int gconf_col) + { + combo.model = model; + this.gconf_col = gconf_col; + + combo.changed.connect(handle_changed); + + set_from_config(); + } + + public Value? get_current_value() + { + Gtk.TreeIter iter; + if (combo.get_active_iter(out iter)) { + Value val; + combo.model.get_value(iter, gconf_col, out val); + return val; + } + return null; + } + + protected virtual void handle_changed() + { + Value? val = get_current_value(); + string strval = val == null ? "" : val.get_string(); + + try { + client.set_string(key, strval); + } + catch (Error e) { + warning("%s\n", e.message); + } + + changed(strval); + } + + protected override void set_from_config() + { + string confval = null; + try { + confval = client.get_string(key); + } + catch (Error e) { + warning("%s\n", e.message); + } + if (confval == null || confval == "") + confval = default_val; + if (confval == null) + return; + + bool valid; + Gtk.TreeIter iter; + valid = combo.model.get_iter_first(out iter); + + while (valid) { + Value val; + combo.model.get_value(iter, gconf_col, out val); + string strval = val.get_string(); + + if (strval == confval) { + combo.set_active_iter(iter); + break; + } + valid = combo.model.iter_next(ref iter); + } + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigEntry.c deja-dup-10.0/libdeja-dup/ConfigEntry.c --- deja-dup-7.4/libdeja-dup/ConfigEntry.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigEntry.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,240 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> +#include <gdk/gdk.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_ENTRY (deja_dup_config_entry_get_type ()) +#define DEJA_DUP_CONFIG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_ENTRY, DejaDupConfigEntry)) +#define DEJA_DUP_CONFIG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_ENTRY, DejaDupConfigEntryClass)) +#define DEJA_DUP_IS_CONFIG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_ENTRY)) +#define DEJA_DUP_IS_CONFIG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_ENTRY)) +#define DEJA_DUP_CONFIG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_ENTRY, DejaDupConfigEntryClass)) + +typedef struct _DejaDupConfigEntry DejaDupConfigEntry; +typedef struct _DejaDupConfigEntryClass DejaDupConfigEntryClass; +typedef struct _DejaDupConfigEntryPrivate DejaDupConfigEntryPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigEntry { + DejaDupConfigWidget parent_instance; + DejaDupConfigEntryPrivate * priv; +}; + +struct _DejaDupConfigEntryClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigEntryPrivate { + GtkEntry* entry; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_entry_get_type (void); +#define DEJA_DUP_CONFIG_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_CONFIG_ENTRY, DejaDupConfigEntryPrivate)) +enum { + DEJA_DUP_CONFIG_ENTRY_DUMMY_PROPERTY +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +DejaDupConfigEntry* deja_dup_config_entry_new (const char* key); +DejaDupConfigEntry* deja_dup_config_entry_construct (GType object_type, const char* key); +DejaDupConfigEntry* deja_dup_config_entry_new (const char* key); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_entry_real_set_from_config (DejaDupConfigWidget* base); +static gboolean deja_dup_config_entry_handle_focus_out (DejaDupConfigEntry* self); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +static gboolean _deja_dup_config_entry_handle_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, const GdkEventFocus* event, gpointer self); +static GObject * deja_dup_config_entry_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_entry_parent_class = NULL; +static void deja_dup_config_entry_finalize (GObject* obj); + + + +DejaDupConfigEntry* deja_dup_config_entry_construct (GType object_type, const char* key) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigEntry * self; + g_return_val_if_fail (key != NULL, NULL); + __params = g_new0 (GParameter, 1); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigEntry* deja_dup_config_entry_new (const char* key) { + return deja_dup_config_entry_construct (DEJA_DUP_TYPE_CONFIG_ENTRY, key); +} + + +static void deja_dup_config_entry_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigEntry * self; + GError * _inner_error_; + self = (DejaDupConfigEntry*) base; + _inner_error_ = NULL; + { + const char* _tmp0_; + char* val; + _tmp0_ = NULL; + val = (_tmp0_ = gconf_client_get_string (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + goto __catch12_g_error; + goto __finally12; + } + if (val == NULL) { + char* _tmp1_; + _tmp1_ = NULL; + val = (_tmp1_ = g_strdup (""), val = (g_free (val), NULL), _tmp1_); + } + gtk_entry_set_text (self->priv->entry, val); + val = (g_free (val), NULL); + } + goto __finally12; + __catch12_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigEntry.vala:49: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally12: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +static gboolean deja_dup_config_entry_handle_focus_out (DejaDupConfigEntry* self) { + GError * _inner_error_; + g_return_val_if_fail (self != NULL, FALSE); + _inner_error_ = NULL; + { + gconf_client_set_string (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), gtk_entry_get_text (self->priv->entry), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch13_g_error; + goto __finally13; + } + } + goto __finally13; + __catch13_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigEntry.vala:59: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally13: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return FALSE; + } + return FALSE; +} + + +static gboolean _deja_dup_config_entry_handle_focus_out_gtk_widget_focus_out_event (GtkWidget* _sender, const GdkEventFocus* event, gpointer self) { + return deja_dup_config_entry_handle_focus_out (self); +} + + +static GObject * deja_dup_config_entry_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigEntryClass * klass; + GObjectClass * parent_class; + DejaDupConfigEntry * self; + klass = DEJA_DUP_CONFIG_ENTRY_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_ENTRY)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_ENTRY (obj); + { + GtkEntry* _tmp0_; + _tmp0_ = NULL; + self->priv->entry = (_tmp0_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (self->priv->entry == NULL) ? NULL : (self->priv->entry = (g_object_unref (self->priv->entry), NULL)), _tmp0_); + gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->entry); + deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self); + g_signal_connect_object ((GtkWidget*) self->priv->entry, "focus-out-event", (GCallback) _deja_dup_config_entry_handle_focus_out_gtk_widget_focus_out_event, self, 0); + } + return obj; +} + + +static void deja_dup_config_entry_class_init (DejaDupConfigEntryClass * klass) { + deja_dup_config_entry_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupConfigEntryPrivate)); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_entry_real_set_from_config; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_entry_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_entry_finalize; +} + + +static void deja_dup_config_entry_instance_init (DejaDupConfigEntry * self) { + self->priv = DEJA_DUP_CONFIG_ENTRY_GET_PRIVATE (self); +} + + +static void deja_dup_config_entry_finalize (GObject* obj) { + DejaDupConfigEntry * self; + self = DEJA_DUP_CONFIG_ENTRY (obj); + (self->priv->entry == NULL) ? NULL : (self->priv->entry = (g_object_unref (self->priv->entry), NULL)); + G_OBJECT_CLASS (deja_dup_config_entry_parent_class)->finalize (obj); +} + + +GType deja_dup_config_entry_get_type (void) { + static GType deja_dup_config_entry_type_id = 0; + if (deja_dup_config_entry_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigEntry), 0, (GInstanceInitFunc) deja_dup_config_entry_instance_init, NULL }; + deja_dup_config_entry_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigEntry", &g_define_type_info, 0); + } + return deja_dup_config_entry_type_id; +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigEntry.vala deja-dup-10.0/libdeja-dup/ConfigEntry.vala --- deja-dup-7.4/libdeja-dup/ConfigEntry.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigEntry.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,66 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigEntry : ConfigWidget +{ + public ConfigEntry(string key) + { + this.key = key; + } + + Gtk.Entry entry; + construct { + entry = new Gtk.Entry(); + add(entry); + + set_from_config(); + entry.focus_out_event.connect(handle_focus_out); + } + + protected override void set_from_config() + { + try { + var val = client.get_string(key); + if (val == null) + val = ""; + entry.set_text(val); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + bool handle_focus_out() + { + try { + client.set_string(key, entry.get_text()); + } + catch (Error e) { + warning("%s\n", e.message); + } + return false; + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabelBool.c deja-dup-10.0/libdeja-dup/ConfigLabelBool.c --- deja-dup-7.4/libdeja-dup/ConfigLabelBool.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabelBool.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,184 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> +#include <glib/gi18n-lib.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL (deja_dup_config_label_get_type ()) +#define DEJA_DUP_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabel)) +#define DEJA_DUP_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) +#define DEJA_DUP_IS_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_IS_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_CONFIG_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) + +typedef struct _DejaDupConfigLabel DejaDupConfigLabel; +typedef struct _DejaDupConfigLabelClass DejaDupConfigLabelClass; +typedef struct _DejaDupConfigLabelPrivate DejaDupConfigLabelPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL_BOOL (deja_dup_config_label_bool_get_type ()) +#define DEJA_DUP_CONFIG_LABEL_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL, DejaDupConfigLabelBool)) +#define DEJA_DUP_CONFIG_LABEL_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL, DejaDupConfigLabelBoolClass)) +#define DEJA_DUP_IS_CONFIG_LABEL_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL)) +#define DEJA_DUP_IS_CONFIG_LABEL_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL)) +#define DEJA_DUP_CONFIG_LABEL_BOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL, DejaDupConfigLabelBoolClass)) + +typedef struct _DejaDupConfigLabelBool DejaDupConfigLabelBool; +typedef struct _DejaDupConfigLabelBoolClass DejaDupConfigLabelBoolClass; +typedef struct _DejaDupConfigLabelBoolPrivate DejaDupConfigLabelBoolPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigLabel { + DejaDupConfigWidget parent_instance; + DejaDupConfigLabelPrivate * priv; + GtkLabel* label; +}; + +struct _DejaDupConfigLabelClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigLabelBool { + DejaDupConfigLabel parent_instance; + DejaDupConfigLabelBoolPrivate * priv; +}; + +struct _DejaDupConfigLabelBoolClass { + DejaDupConfigLabelClass parent_class; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_label_get_type (void); +GType deja_dup_config_label_bool_get_type (void); +enum { + DEJA_DUP_CONFIG_LABEL_BOOL_DUMMY_PROPERTY +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +DejaDupConfigLabelBool* deja_dup_config_label_bool_new (const char* key); +DejaDupConfigLabelBool* deja_dup_config_label_bool_construct (GType object_type, const char* key); +DejaDupConfigLabelBool* deja_dup_config_label_bool_new (const char* key); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_label_bool_real_set_from_config (DejaDupConfigWidget* base); +static gpointer deja_dup_config_label_bool_parent_class = NULL; + + + +DejaDupConfigLabelBool* deja_dup_config_label_bool_construct (GType object_type, const char* key) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigLabelBool * self; + g_return_val_if_fail (key != NULL, NULL); + __params = g_new0 (GParameter, 1); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigLabelBool* deja_dup_config_label_bool_new (const char* key) { + return deja_dup_config_label_bool_construct (DEJA_DUP_TYPE_CONFIG_LABEL_BOOL, key); +} + + +static void deja_dup_config_label_bool_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigLabelBool * self; + GError * _inner_error_; + gboolean val; + self = (DejaDupConfigLabelBool*) base; + _inner_error_ = NULL; + val = FALSE; + { + gboolean _tmp0_; + const char* _tmp1_; + _tmp0_ = gconf_client_get_bool (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch15_g_error; + goto __finally15; + } + val = _tmp0_; + _tmp1_ = NULL; + if (val) { + _tmp1_ = _ ("Yes"); + } else { + _tmp1_ = _ ("No"); + } + gtk_label_set_label (((DejaDupConfigLabel*) self)->label, _tmp1_); + } + goto __finally15; + __catch15_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLabelBool.vala:38: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally15: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +static void deja_dup_config_label_bool_class_init (DejaDupConfigLabelBoolClass * klass) { + deja_dup_config_label_bool_parent_class = g_type_class_peek_parent (klass); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_label_bool_real_set_from_config; +} + + +static void deja_dup_config_label_bool_instance_init (DejaDupConfigLabelBool * self) { +} + + +GType deja_dup_config_label_bool_get_type (void) { + static GType deja_dup_config_label_bool_type_id = 0; + if (deja_dup_config_label_bool_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigLabelBoolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_label_bool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigLabelBool), 0, (GInstanceInitFunc) deja_dup_config_label_bool_instance_init, NULL }; + deja_dup_config_label_bool_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_LABEL, "DejaDupConfigLabelBool", &g_define_type_info, 0); + } + return deja_dup_config_label_bool_type_id; +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabelBool.vala deja-dup-10.0/libdeja-dup/ConfigLabelBool.vala --- deja-dup-7.4/libdeja-dup/ConfigLabelBool.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabelBool.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,43 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigLabelBool : ConfigLabel +{ + public ConfigLabelBool(string key) + { + this.key = key; + } + + protected override void set_from_config() + { + bool val; + try { + val = client.get_bool(key); + label.label = val ? _("Yes") : _("No"); + } + catch (Error e) {warning("%s\n", e.message);} + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabel.c deja-dup-10.0/libdeja-dup/ConfigLabel.c --- deja-dup-7.4/libdeja-dup/ConfigLabel.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabel.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,195 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL (deja_dup_config_label_get_type ()) +#define DEJA_DUP_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabel)) +#define DEJA_DUP_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) +#define DEJA_DUP_IS_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_IS_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_CONFIG_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) + +typedef struct _DejaDupConfigLabel DejaDupConfigLabel; +typedef struct _DejaDupConfigLabelClass DejaDupConfigLabelClass; +typedef struct _DejaDupConfigLabelPrivate DejaDupConfigLabelPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigLabel { + DejaDupConfigWidget parent_instance; + DejaDupConfigLabelPrivate * priv; + GtkLabel* label; +}; + +struct _DejaDupConfigLabelClass { + DejaDupConfigWidgetClass parent_class; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_label_get_type (void); +enum { + DEJA_DUP_CONFIG_LABEL_DUMMY_PROPERTY +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +DejaDupConfigLabel* deja_dup_config_label_new (const char* key); +DejaDupConfigLabel* deja_dup_config_label_construct (GType object_type, const char* key); +DejaDupConfigLabel* deja_dup_config_label_new (const char* key); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_label_real_set_from_config (DejaDupConfigWidget* base); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +static GObject * deja_dup_config_label_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_label_parent_class = NULL; +static void deja_dup_config_label_finalize (GObject* obj); + + + +DejaDupConfigLabel* deja_dup_config_label_construct (GType object_type, const char* key) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigLabel * self; + g_return_val_if_fail (key != NULL, NULL); + __params = g_new0 (GParameter, 1); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigLabel* deja_dup_config_label_new (const char* key) { + return deja_dup_config_label_construct (DEJA_DUP_TYPE_CONFIG_LABEL, key); +} + + +static void deja_dup_config_label_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigLabel * self; + GError * _inner_error_; + char* val; + self = (DejaDupConfigLabel*) base; + _inner_error_ = NULL; + val = NULL; + { + const char* _tmp0_; + char* _tmp2_; + const char* _tmp1_; + _tmp0_ = gconf_client_get_string (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch14_g_error; + goto __finally14; + } + _tmp2_ = NULL; + _tmp1_ = NULL; + val = (_tmp2_ = (_tmp1_ = _tmp0_, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), val = (g_free (val), NULL), _tmp2_); + gtk_label_set_label (self->label, val); + } + goto __finally14; + __catch14_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLabel.vala:46: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally14: + if (_inner_error_ != NULL) { + val = (g_free (val), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + val = (g_free (val), NULL); +} + + +static GObject * deja_dup_config_label_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigLabelClass * klass; + GObjectClass * parent_class; + DejaDupConfigLabel * self; + klass = DEJA_DUP_CONFIG_LABEL_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_LABEL)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_LABEL (obj); + { + GtkLabel* _tmp0_; + _tmp0_ = NULL; + self->label = (_tmp0_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), (self->label == NULL) ? NULL : (self->label = (g_object_unref (self->label), NULL)), _tmp0_); + g_object_set ((GObject*) self->label, "xalign", 0.0f, NULL); + gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->label); + deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self); + } + return obj; +} + + +static void deja_dup_config_label_class_init (DejaDupConfigLabelClass * klass) { + deja_dup_config_label_parent_class = g_type_class_peek_parent (klass); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_label_real_set_from_config; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_label_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_label_finalize; +} + + +static void deja_dup_config_label_instance_init (DejaDupConfigLabel * self) { +} + + +static void deja_dup_config_label_finalize (GObject* obj) { + DejaDupConfigLabel * self; + self = DEJA_DUP_CONFIG_LABEL (obj); + (self->label == NULL) ? NULL : (self->label = (g_object_unref (self->label), NULL)); + G_OBJECT_CLASS (deja_dup_config_label_parent_class)->finalize (obj); +} + + +GType deja_dup_config_label_get_type (void) { + static GType deja_dup_config_label_type_id = 0; + if (deja_dup_config_label_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigLabelClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_label_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigLabel), 0, (GInstanceInitFunc) deja_dup_config_label_instance_init, NULL }; + deja_dup_config_label_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigLabel", &g_define_type_info, 0); + } + return deja_dup_config_label_type_id; +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabelList.c deja-dup-10.0/libdeja-dup/ConfigLabelList.c --- deja-dup-7.4/libdeja-dup/ConfigLabelList.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabelList.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,313 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> +#include <gconf/gconf.h> +#include <gio/gio.h> +#include <glib/gi18n-lib.h> +#include <pango/pango.h> +#include <gdk/gdk.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL (deja_dup_config_label_get_type ()) +#define DEJA_DUP_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabel)) +#define DEJA_DUP_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) +#define DEJA_DUP_IS_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_IS_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_CONFIG_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) + +typedef struct _DejaDupConfigLabel DejaDupConfigLabel; +typedef struct _DejaDupConfigLabelClass DejaDupConfigLabelClass; +typedef struct _DejaDupConfigLabelPrivate DejaDupConfigLabelPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL_LIST (deja_dup_config_label_list_get_type ()) +#define DEJA_DUP_CONFIG_LABEL_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LIST, DejaDupConfigLabelList)) +#define DEJA_DUP_CONFIG_LABEL_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LIST, DejaDupConfigLabelListClass)) +#define DEJA_DUP_IS_CONFIG_LABEL_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LIST)) +#define DEJA_DUP_IS_CONFIG_LABEL_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LIST)) +#define DEJA_DUP_CONFIG_LABEL_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LIST, DejaDupConfigLabelListClass)) + +typedef struct _DejaDupConfigLabelList DejaDupConfigLabelList; +typedef struct _DejaDupConfigLabelListClass DejaDupConfigLabelListClass; +typedef struct _DejaDupConfigLabelListPrivate DejaDupConfigLabelListPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigLabel { + DejaDupConfigWidget parent_instance; + DejaDupConfigLabelPrivate * priv; + GtkLabel* label; +}; + +struct _DejaDupConfigLabelClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigLabelList { + DejaDupConfigLabel parent_instance; + DejaDupConfigLabelListPrivate * priv; +}; + +struct _DejaDupConfigLabelListClass { + DejaDupConfigLabelClass parent_class; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_label_get_type (void); +GType deja_dup_config_label_list_get_type (void); +enum { + DEJA_DUP_CONFIG_LABEL_LIST_DUMMY_PROPERTY +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +DejaDupConfigLabelList* deja_dup_config_label_list_new (const char* key); +DejaDupConfigLabelList* deja_dup_config_label_list_construct (GType object_type, const char* key); +DejaDupConfigLabelList* deja_dup_config_label_list_new (const char* key); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1); +char* deja_dup_get_trash_path (void); +static void deja_dup_config_label_list_real_set_from_config (DejaDupConfigWidget* base); +static void _lambda10_ (const GdkRectangle* a, DejaDupConfigLabelList* self); +static void __lambda10__gtk_widget_size_allocate (GtkWidget* _sender, const GdkRectangle* allocation, gpointer self); +static GObject * deja_dup_config_label_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_label_list_parent_class = NULL; +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); + + + +DejaDupConfigLabelList* deja_dup_config_label_list_construct (GType object_type, const char* key) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigLabelList * self; + g_return_val_if_fail (key != NULL, NULL); + __params = g_new0 (GParameter, 1); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigLabelList* deja_dup_config_label_list_new (const char* key) { + return deja_dup_config_label_list_construct (DEJA_DUP_TYPE_CONFIG_LABEL_LIST, key); +} + + +static void deja_dup_config_label_list_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigLabelList * self; + GError * _inner_error_; + char* val; + GSList* slist; + GFile** _tmp2_; + gint list_size; + gint list_length1; + gint _tmp1_; + GFile** list; + gint i; + GFile* home; + char* _tmp3_; + GFile* _tmp4_; + GFile* trash; + self = (DejaDupConfigLabelList*) base; + _inner_error_ = NULL; + val = g_strdup (""); + slist = NULL; + { + GSList* _tmp0_; + _tmp0_ = gconf_client_get_list (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), GCONF_VALUE_STRING, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch16_g_error; + goto __finally16; + } + slist = _tmp0_; + } + goto __finally16; + __catch16_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLabelList.vala:44: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + val = (g_free (val), NULL); + return; + } + } + __finally16: + if (_inner_error_ != NULL) { + val = (g_free (val), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + _tmp2_ = NULL; + list = (_tmp2_ = deja_dup_parse_dir_list (slist, &_tmp1_), list_length1 = _tmp1_, list_size = list_length1, _tmp2_); + i = 0; + home = g_file_new_for_path (g_get_home_dir ()); + _tmp3_ = NULL; + _tmp4_ = NULL; + trash = (_tmp4_ = g_file_new_for_path (_tmp3_ = deja_dup_get_trash_path ()), _tmp3_ = (g_free (_tmp3_), NULL), _tmp4_); + { + GFile** f_collection; + int f_collection_length1; + int f_it; + f_collection = list; + f_collection_length1 = list_length1; + for (f_it = 0; f_it < list_length1; f_it = f_it + 1) { + GFile* _tmp13_; + GFile* f; + _tmp13_ = NULL; + f = (_tmp13_ = f_collection[f_it], (_tmp13_ == NULL) ? NULL : g_object_ref (_tmp13_)); + { + char* s; + char* _tmp12_; + s = NULL; + if (g_file_equal (f, home)) { + char* _tmp6_; + const char* _tmp5_; + _tmp6_ = NULL; + _tmp5_ = NULL; + s = (_tmp6_ = (_tmp5_ = _ ("Home Folder"), (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)), s = (g_free (s), NULL), _tmp6_); + } else { + if (g_file_equal (f, trash)) { + char* _tmp8_; + const char* _tmp7_; + _tmp8_ = NULL; + _tmp7_ = NULL; + s = (_tmp8_ = (_tmp7_ = _ ("Trash"), (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_)), s = (g_free (s), NULL), _tmp8_); + } else { + if (g_file_has_prefix (f, home)) { + char* _tmp9_; + _tmp9_ = NULL; + s = (_tmp9_ = g_file_get_relative_path (home, f), s = (g_free (s), NULL), _tmp9_); + } else { + char* _tmp10_; + _tmp10_ = NULL; + s = (_tmp10_ = g_file_get_path (f), s = (g_free (s), NULL), _tmp10_); + } + } + } + if (i > 0) { + char* _tmp11_; + _tmp11_ = NULL; + val = (_tmp11_ = g_strconcat (val, ", ", NULL), val = (g_free (val), NULL), _tmp11_); + } + _tmp12_ = NULL; + val = (_tmp12_ = g_strconcat (val, s, NULL), val = (g_free (val), NULL), _tmp12_); + i++; + (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); + s = (g_free (s), NULL); + } + } + } + gtk_label_set_label (((DejaDupConfigLabel*) self)->label, val); + val = (g_free (val), NULL); + list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_object_unref), NULL); + (home == NULL) ? NULL : (home = (g_object_unref (home), NULL)); + (trash == NULL) ? NULL : (trash = (g_object_unref (trash), NULL)); +} + + +static void _lambda10_ (const GdkRectangle* a, DejaDupConfigLabelList* self) { + g_object_set ((GObject*) ((DejaDupConfigLabel*) self)->label, "width-request", (*a).width, NULL); +} + + +static void __lambda10__gtk_widget_size_allocate (GtkWidget* _sender, const GdkRectangle* allocation, gpointer self) { + _lambda10_ (allocation, self); +} + + +static GObject * deja_dup_config_label_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigLabelListClass * klass; + GObjectClass * parent_class; + DejaDupConfigLabelList * self; + klass = DEJA_DUP_CONFIG_LABEL_LIST_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_LABEL_LIST)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_LABEL_LIST (obj); + { + g_object_set ((GObject*) ((DejaDupConfigLabel*) self)->label, "wrap", TRUE, "wrap-mode", PANGO_WRAP_WORD, NULL); + g_signal_connect ((GtkWidget*) self, "size-allocate", (GCallback) __lambda10__gtk_widget_size_allocate, self); + } + return obj; +} + + +static void deja_dup_config_label_list_class_init (DejaDupConfigLabelListClass * klass) { + deja_dup_config_label_list_parent_class = g_type_class_peek_parent (klass); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_label_list_real_set_from_config; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_label_list_constructor; +} + + +static void deja_dup_config_label_list_instance_init (DejaDupConfigLabelList * self) { +} + + +GType deja_dup_config_label_list_get_type (void) { + static GType deja_dup_config_label_list_type_id = 0; + if (deja_dup_config_label_list_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigLabelListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_label_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigLabelList), 0, (GInstanceInitFunc) deja_dup_config_label_list_instance_init, NULL }; + deja_dup_config_label_list_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_LABEL, "DejaDupConfigLabelList", &g_define_type_info, 0); + } + return deja_dup_config_label_list_type_id; +} + + +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { + if ((array != NULL) && (destroy_func != NULL)) { + int i; + for (i = 0; i < array_length; i = i + 1) { + if (((gpointer*) array)[i] != NULL) { + destroy_func (((gpointer*) array)[i]); + } + } + } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); + g_free (array); +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabelList.vala deja-dup-10.0/libdeja-dup/ConfigLabelList.vala --- deja-dup-7.4/libdeja-dup/ConfigLabelList.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabelList.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,75 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigLabelList : ConfigLabel +{ + public ConfigLabelList(string key) + { + this.key = key; + } + + construct { + label.set("wrap", true, "wrap-mode", Pango.WrapMode.WORD); + size_allocate.connect((a) => {label.set("width-request", a.width);}); + } + + protected override void set_from_config() + { + string val = ""; + weak SList<string> slist; + try { + slist = client.get_list(key, GConf.ValueType.STRING); + } + catch (Error e) { + warning("%s\n", e.message); + return; + } + + var list = DejaDup.parse_dir_list(slist); + + int i = 0; + File home = File.new_for_path(Environment.get_home_dir()); + File trash = File.new_for_path(DejaDup.get_trash_path()); + foreach (File f in list) { + string s; + if (f.equal(home)) + s = _("Home Folder"); + else if (f.equal(trash)) + s = _("Trash"); + else if (f.has_prefix(home)) + s = home.get_relative_path(f); + else + s = f.get_path(); + + if (i > 0) + val += ", "; + val += s; + i++; + } + + label.label = val; + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabelLocation.c deja-dup-10.0/libdeja-dup/ConfigLabelLocation.c --- deja-dup-7.4/libdeja-dup/ConfigLabelLocation.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabelLocation.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,156 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL (deja_dup_config_label_get_type ()) +#define DEJA_DUP_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabel)) +#define DEJA_DUP_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) +#define DEJA_DUP_IS_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_IS_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_CONFIG_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) + +typedef struct _DejaDupConfigLabel DejaDupConfigLabel; +typedef struct _DejaDupConfigLabelClass DejaDupConfigLabelClass; +typedef struct _DejaDupConfigLabelPrivate DejaDupConfigLabelPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION (deja_dup_config_label_location_get_type ()) +#define DEJA_DUP_CONFIG_LABEL_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION, DejaDupConfigLabelLocation)) +#define DEJA_DUP_CONFIG_LABEL_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION, DejaDupConfigLabelLocationClass)) +#define DEJA_DUP_IS_CONFIG_LABEL_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION)) +#define DEJA_DUP_IS_CONFIG_LABEL_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION)) +#define DEJA_DUP_CONFIG_LABEL_LOCATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION, DejaDupConfigLabelLocationClass)) + +typedef struct _DejaDupConfigLabelLocation DejaDupConfigLabelLocation; +typedef struct _DejaDupConfigLabelLocationClass DejaDupConfigLabelLocationClass; +typedef struct _DejaDupConfigLabelLocationPrivate DejaDupConfigLabelLocationPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigLabel { + DejaDupConfigWidget parent_instance; + DejaDupConfigLabelPrivate * priv; + GtkLabel* label; +}; + +struct _DejaDupConfigLabelClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigLabelLocation { + DejaDupConfigLabel parent_instance; + DejaDupConfigLabelLocationPrivate * priv; +}; + +struct _DejaDupConfigLabelLocationClass { + DejaDupConfigLabelClass parent_class; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_label_get_type (void); +GType deja_dup_config_label_location_get_type (void); +enum { + DEJA_DUP_CONFIG_LABEL_LOCATION_DUMMY_PROPERTY +}; +char* deja_dup_get_location_desc (void); +static void deja_dup_config_label_location_real_set_from_config (DejaDupConfigWidget* base); +DejaDupConfigLabelLocation* deja_dup_config_label_location_new (void); +DejaDupConfigLabelLocation* deja_dup_config_label_location_construct (GType object_type); +DejaDupConfigLabelLocation* deja_dup_config_label_location_new (void); +void deja_dup_config_widget_watch_key (DejaDupConfigWidget* self, const char* key); +#define DEJA_DUP_BACKEND_KEY "/apps/deja-dup/backend" +#define DEJA_DUP_FILE_PATH_KEY "/apps/deja-dup/file/path" +static GObject * deja_dup_config_label_location_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_label_location_parent_class = NULL; + + + +static void deja_dup_config_label_location_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigLabelLocation * self; + char* _tmp0_; + self = (DejaDupConfigLabelLocation*) base; + _tmp0_ = NULL; + gtk_label_set_label (((DejaDupConfigLabel*) self)->label, _tmp0_ = deja_dup_get_location_desc ()); + _tmp0_ = (g_free (_tmp0_), NULL); +} + + +DejaDupConfigLabelLocation* deja_dup_config_label_location_construct (GType object_type) { + DejaDupConfigLabelLocation * self; + self = g_object_newv (object_type, 0, NULL); + return self; +} + + +DejaDupConfigLabelLocation* deja_dup_config_label_location_new (void) { + return deja_dup_config_label_location_construct (DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION); +} + + +static GObject * deja_dup_config_label_location_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigLabelLocationClass * klass; + GObjectClass * parent_class; + DejaDupConfigLabelLocation * self; + klass = DEJA_DUP_CONFIG_LABEL_LOCATION_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_LABEL_LOCATION (obj); + { + deja_dup_config_widget_watch_key ((DejaDupConfigWidget*) self, DEJA_DUP_BACKEND_KEY); + deja_dup_config_widget_watch_key ((DejaDupConfigWidget*) self, DEJA_DUP_FILE_PATH_KEY); + } + return obj; +} + + +static void deja_dup_config_label_location_class_init (DejaDupConfigLabelLocationClass * klass) { + deja_dup_config_label_location_parent_class = g_type_class_peek_parent (klass); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_label_location_real_set_from_config; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_label_location_constructor; +} + + +static void deja_dup_config_label_location_instance_init (DejaDupConfigLabelLocation * self) { +} + + +GType deja_dup_config_label_location_get_type (void) { + static GType deja_dup_config_label_location_type_id = 0; + if (deja_dup_config_label_location_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigLabelLocationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_label_location_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigLabelLocation), 0, (GInstanceInitFunc) deja_dup_config_label_location_instance_init, NULL }; + deja_dup_config_label_location_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_LABEL, "DejaDupConfigLabelLocation", &g_define_type_info, 0); + } + return deja_dup_config_label_location_type_id; +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabelLocation.vala deja-dup-10.0/libdeja-dup/ConfigLabelLocation.vala --- deja-dup-7.4/libdeja-dup/ConfigLabelLocation.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabelLocation.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,38 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigLabelLocation : ConfigLabel +{ + construct { + watch_key(BACKEND_KEY); + watch_key(FILE_PATH_KEY); + } + + protected override void set_from_config() + { + label.label = get_location_desc(); + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLabel.vala deja-dup-10.0/libdeja-dup/ConfigLabel.vala --- deja-dup-7.4/libdeja-dup/ConfigLabel.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLabel.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,51 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigLabel : ConfigWidget +{ + public ConfigLabel(string key) + { + this.key = key; + } + + protected Gtk.Label label; + construct { + label = new Gtk.Label(""); + label.set("xalign", 0.0f); + add(label); + set_from_config(); + } + + protected override void set_from_config() + { + string val; + try { + val = client.get_string(key); + label.label = val; + } + catch (Error e) {warning("%s\n", e.message);} + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigList.c deja-dup-10.0/libdeja-dup/ConfigList.c --- deja-dup-7.4/libdeja-dup/ConfigList.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigList.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,728 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> +#include <gconf/gconf.h> +#include <gio/gio.h> +#include <glib/gi18n-lib.h> +#include <gdk/gdk.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LIST (deja_dup_config_list_get_type ()) +#define DEJA_DUP_CONFIG_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LIST, DejaDupConfigList)) +#define DEJA_DUP_CONFIG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LIST, DejaDupConfigListClass)) +#define DEJA_DUP_IS_CONFIG_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LIST)) +#define DEJA_DUP_IS_CONFIG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LIST)) +#define DEJA_DUP_CONFIG_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LIST, DejaDupConfigListClass)) + +typedef struct _DejaDupConfigList DejaDupConfigList; +typedef struct _DejaDupConfigListClass DejaDupConfigListClass; +typedef struct _DejaDupConfigListPrivate DejaDupConfigListPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigList { + DejaDupConfigWidget parent_instance; + DejaDupConfigListPrivate * priv; +}; + +struct _DejaDupConfigListClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigListPrivate { + GtkTreeView* tree; + GtkButton* add_button; + GtkButton* remove_button; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_list_get_type (void); +#define DEJA_DUP_CONFIG_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_CONFIG_LIST, DejaDupConfigListPrivate)) +enum { + DEJA_DUP_CONFIG_LIST_DUMMY_PROPERTY +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +DejaDupConfigList* deja_dup_config_list_new (const char* key); +DejaDupConfigList* deja_dup_config_list_construct (GType object_type, const char* key); +DejaDupConfigList* deja_dup_config_list_new (const char* key); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1); +char* deja_dup_get_trash_path (void); +static void deja_dup_config_list_real_set_from_config (DejaDupConfigWidget* base); +static void deja_dup_config_list_handle_selection_change (DejaDupConfigList* self, GtkTreeSelection* sel); +static void deja_dup_config_list_handle_add (DejaDupConfigList* self); +static void _g_list_free_gtk_tree_path_free (GList* self); +GFile* deja_dup_parse_dir (const char* dir); +static void deja_dup_config_list_handle_remove (DejaDupConfigList* self); +static void _deja_dup_config_list_handle_add_gtk_button_clicked (GtkButton* _sender, gpointer self); +static void _deja_dup_config_list_handle_remove_gtk_button_clicked (GtkButton* _sender, gpointer self); +static gboolean _lambda11_ (GtkWidget* w, gboolean g, DejaDupConfigList* self); +static gboolean __lambda11__gtk_widget_mnemonic_activate (GtkWidget* _sender, gboolean group_cycling, gpointer self); +static gboolean _lambda12_ (GtkWidget* w, const GdkEventKey* e, DejaDupConfigList* self); +static gboolean __lambda12__gtk_widget_key_press_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +static void _deja_dup_config_list_handle_selection_change_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self); +static GObject * deja_dup_config_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_list_parent_class = NULL; +static void deja_dup_config_list_finalize (GObject* obj); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); + + + +DejaDupConfigList* deja_dup_config_list_construct (GType object_type, const char* key) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigList * self; + g_return_val_if_fail (key != NULL, NULL); + __params = g_new0 (GParameter, 1); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigList* deja_dup_config_list_new (const char* key) { + return deja_dup_config_list_construct (DEJA_DUP_TYPE_CONFIG_LIST, key); +} + + +static void deja_dup_config_list_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigList * self; + GError * _inner_error_; + GSList* slist; + GFile** _tmp2_; + gint list_size; + gint list_length1; + gint _tmp1_; + GFile** list; + GtkListStore* model; + gint i; + GFile* home; + char* _tmp3_; + GFile* _tmp4_; + GFile* trash; + self = (DejaDupConfigList*) base; + _inner_error_ = NULL; + slist = NULL; + { + GSList* _tmp0_; + _tmp0_ = gconf_client_get_list (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), GCONF_VALUE_STRING, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch17_g_error; + goto __finally17; + } + slist = _tmp0_; + } + goto __finally17; + __catch17_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigList.vala:95: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + return; + } + } + __finally17: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + _tmp2_ = NULL; + list = (_tmp2_ = deja_dup_parse_dir_list (slist, &_tmp1_), list_length1 = _tmp1_, list_size = list_length1, _tmp2_); + model = NULL; + g_object_get ((GObject*) self->priv->tree, "model", &model, NULL); + gtk_list_store_clear (model); + i = 0; + home = g_file_new_for_path (g_get_home_dir ()); + _tmp3_ = NULL; + _tmp4_ = NULL; + trash = (_tmp4_ = g_file_new_for_path (_tmp3_ = deja_dup_get_trash_path ()), _tmp3_ = (g_free (_tmp3_), NULL), _tmp4_); + { + GFile** f_collection; + int f_collection_length1; + int f_it; + f_collection = list; + f_collection_length1 = list_length1; + for (f_it = 0; f_it < list_length1; f_it = f_it + 1) { + GFile* _tmp15_; + GFile* f; + _tmp15_ = NULL; + f = (_tmp15_ = f_collection[f_it], (_tmp15_ == NULL) ? NULL : g_object_ref (_tmp15_)); + { + char* s; + GtkTreeIter iter = {0}; + char* _tmp11_; + GIcon* icon; + s = NULL; + if (g_file_equal (f, home)) { + char* _tmp6_; + const char* _tmp5_; + _tmp6_ = NULL; + _tmp5_ = NULL; + s = (_tmp6_ = (_tmp5_ = _ ("Home Folder"), (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)), s = (g_free (s), NULL), _tmp6_); + } else { + if (g_file_equal (f, trash)) { + char* _tmp8_; + const char* _tmp7_; + _tmp8_ = NULL; + _tmp7_ = NULL; + s = (_tmp8_ = (_tmp7_ = _ ("Trash"), (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_)), s = (g_free (s), NULL), _tmp8_); + } else { + if (g_file_has_prefix (f, home)) { + char* _tmp9_; + _tmp9_ = NULL; + s = (_tmp9_ = g_file_get_relative_path (home, f), s = (g_free (s), NULL), _tmp9_); + } else { + char* _tmp10_; + _tmp10_ = NULL; + s = (_tmp10_ = g_file_get_path (f), s = (g_free (s), NULL), _tmp10_); + } + } + } + _tmp11_ = NULL; + gtk_list_store_insert_with_values (model, &iter, i++, 0, _tmp11_ = g_file_get_path (f), 1, s, -1); + _tmp11_ = (g_free (_tmp11_), NULL); + /* If the folder is the trash, look up icon especially. For some + reason, gio doesn't do it for us.*/ + icon = NULL; + if (g_file_equal (f, trash)) { + GIcon* _tmp12_; + /* Until vala bug #564062 is fixed, we use append. Else I'd use from_names*/ + _tmp12_ = NULL; + icon = (_tmp12_ = (GIcon*) ((GThemedIcon*) g_themed_icon_new ("user-trash")), (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)), _tmp12_); + g_themed_icon_append_name (G_THEMED_ICON (icon), "folder"); + } else { + { + GFileInfo* info; + GIcon* _tmp14_; + GIcon* _tmp13_; + info = g_file_query_info (f, G_FILE_ATTRIBUTE_STANDARD_ICON, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch18_g_error; + goto __finally18; + } + _tmp14_ = NULL; + _tmp13_ = NULL; + icon = (_tmp14_ = (_tmp13_ = g_file_info_get_icon (info), (_tmp13_ == NULL) ? NULL : g_object_ref (_tmp13_)), (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)), _tmp14_); + (info == NULL) ? NULL : (info = (g_object_unref (info), NULL)); + } + goto __finally18; + __catch18_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigList.vala:136: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally18: + if (_inner_error_ != NULL) { + (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); + s = (g_free (s), NULL); + (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)); + list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_object_unref), NULL); + (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)); + (home == NULL) ? NULL : (home = (g_object_unref (home), NULL)); + (trash == NULL) ? NULL : (trash = (g_object_unref (trash), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + } + if (icon != NULL) { + gtk_list_store_set (model, &iter, 2, icon, -1); + } + (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); + s = (g_free (s), NULL); + (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)); + } + } + } + list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_object_unref), NULL); + (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)); + (home == NULL) ? NULL : (home = (g_object_unref (home), NULL)); + (trash == NULL) ? NULL : (trash = (g_object_unref (trash), NULL)); +} + + +static void deja_dup_config_list_handle_selection_change (DejaDupConfigList* self, GtkTreeSelection* sel) { + gboolean empty; + g_return_if_fail (self != NULL); + g_return_if_fail (sel != NULL); + empty = gtk_tree_selection_count_selected_rows (sel) == 0; + gtk_widget_set_sensitive ((GtkWidget*) self->priv->remove_button, !empty); +} + + +static void deja_dup_config_list_handle_add (DejaDupConfigList* self) { + GError * _inner_error_; + GtkFileChooserDialog* dlg; + GSList* files; + GSList* slist; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + dlg = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_ ("Choose folders"), GTK_WINDOW (gtk_widget_get_toplevel ((GtkWidget*) self)), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL)); + gtk_file_chooser_set_select_multiple ((GtkFileChooser*) dlg, TRUE); + if (gtk_dialog_run ((GtkDialog*) dlg) != GTK_RESPONSE_ACCEPT) { + gtk_object_destroy ((GtkObject*) dlg); + (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); + return; + } + files = gtk_file_chooser_get_filenames ((GtkFileChooser*) dlg); + gtk_object_destroy ((GtkObject*) dlg); + slist = NULL; + { + GSList* _tmp0_; + _tmp0_ = gconf_client_get_list (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), GCONF_VALUE_STRING, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch19_g_error; + goto __finally19; + } + slist = _tmp0_; + { + GSList* file_collection; + GSList* file_it; + file_collection = files; + for (file_it = file_collection; file_it != NULL; file_it = file_it->next) { + const char* _tmp3_; + char* file; + _tmp3_ = NULL; + file = (_tmp3_ = (const char*) file_it->data, (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)); + { + GFile* folder; + gboolean found; + folder = g_file_new_for_path (file); + found = FALSE; + { + GSList* s_collection; + GSList* s_it; + s_collection = slist; + for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { + const char* _tmp1_; + char* s; + _tmp1_ = NULL; + s = (_tmp1_ = (const char*) s_it->data, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)); + { + GFile* sfile; + sfile = g_file_new_for_path (s); + if (g_file_equal (sfile, folder)) { + found = TRUE; + s = (g_free (s), NULL); + (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); + break; + } + s = (g_free (s), NULL); + (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); + } + } + } + if (!found) { + const char* _tmp2_; + _tmp2_ = NULL; + slist = g_slist_append (slist, (_tmp2_ = file, (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_))); + } + file = (g_free (file), NULL); + (folder == NULL) ? NULL : (folder = (g_object_unref (folder), NULL)); + } + } + } + } + goto __finally19; + __catch19_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigList.vala:187: %s\n", e->message); + slist = files; + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally19: + if (_inner_error_ != NULL) { + (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + { + gconf_client_set_list (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), GCONF_VALUE_STRING, slist, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch20_g_error; + goto __finally20; + } + } + goto __finally20; + __catch20_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigList.vala:194: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally20: + if (_inner_error_ != NULL) { + (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); +} + + +static void _g_list_free_gtk_tree_path_free (GList* self) { + g_list_foreach (self, (GFunc) gtk_tree_path_free, NULL); + g_list_free (self); +} + + +static void deja_dup_config_list_handle_remove (DejaDupConfigList* self) { + GError * _inner_error_; + GtkTreeSelection* _tmp0_; + GtkTreeSelection* sel; + GtkTreeModel* model; + GList* paths; + GSList* slist; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + _tmp0_ = NULL; + sel = (_tmp0_ = gtk_tree_view_get_selection (self->priv->tree), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); + model = NULL; + paths = gtk_tree_selection_get_selected_rows (sel, &model); + if (paths == NULL) { + (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); + (paths == NULL) ? NULL : (paths = (_g_list_free_gtk_tree_path_free (paths), NULL)); + return; + } + slist = NULL; + { + GSList* _tmp1_; + _tmp1_ = gconf_client_get_list (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), GCONF_VALUE_STRING, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch21_g_error; + goto __finally21; + } + slist = _tmp1_; + } + goto __finally21; + __catch21_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigList.vala:211: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); + (paths == NULL) ? NULL : (paths = (_g_list_free_gtk_tree_path_free (paths), NULL)); + return; + } + } + __finally21: + if (_inner_error_ != NULL) { + (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); + (paths == NULL) ? NULL : (paths = (_g_list_free_gtk_tree_path_free (paths), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + { + GList* path_collection; + GList* path_it; + path_collection = paths; + for (path_it = path_collection; path_it != NULL; path_it = path_it->next) { + const GtkTreePath* _tmp2_; + GtkTreePath* path; + _tmp2_ = NULL; + path = (_tmp2_ = (const GtkTreePath*) path_it->data, (_tmp2_ == NULL) ? NULL : gtk_tree_path_copy (_tmp2_)); + { + GtkTreeIter iter = {0}; + char* current; + GFile* current_file; + GSList* siter; + GSList* snext; + if (!gtk_tree_model_get_iter (model, &iter, path)) { + (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)); + continue; + } + current = NULL; + gtk_tree_model_get (model, &iter, 0, ¤t, -1); + current_file = g_file_new_for_path (current); + siter = slist; + snext = NULL; + while (siter != NULL) { + GFile* sfile; + snext = siter->next; + sfile = deja_dup_parse_dir ((const char*) siter->data); + if (g_file_equal (sfile, current_file)) { + slist = g_slist_remove_link (slist, siter); + (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); + break; + } + siter = snext; + (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); + } + (path == NULL) ? NULL : (path = (gtk_tree_path_free (path), NULL)); + current = (g_free (current), NULL); + (current_file == NULL) ? NULL : (current_file = (g_object_unref (current_file), NULL)); + } + } + } + { + gconf_client_set_list (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), GCONF_VALUE_STRING, slist, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch22_g_error; + goto __finally22; + } + } + goto __finally22; + __catch22_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigList.vala:240: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally22: + if (_inner_error_ != NULL) { + (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); + (paths == NULL) ? NULL : (paths = (_g_list_free_gtk_tree_path_free (paths), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); + (paths == NULL) ? NULL : (paths = (_g_list_free_gtk_tree_path_free (paths), NULL)); +} + + +static void _deja_dup_config_list_handle_add_gtk_button_clicked (GtkButton* _sender, gpointer self) { + deja_dup_config_list_handle_add (self); +} + + +static void _deja_dup_config_list_handle_remove_gtk_button_clicked (GtkButton* _sender, gpointer self) { + deja_dup_config_list_handle_remove (self); +} + + +static gboolean _lambda11_ (GtkWidget* w, gboolean g, DejaDupConfigList* self) { + g_return_val_if_fail (w != NULL, FALSE); + return gtk_widget_mnemonic_activate ((GtkWidget*) self->priv->tree, g); +} + + +static gboolean __lambda11__gtk_widget_mnemonic_activate (GtkWidget* _sender, gboolean group_cycling, gpointer self) { + return _lambda11_ (_sender, group_cycling, self); +} + + +static gboolean _lambda12_ (GtkWidget* w, const GdkEventKey* e, DejaDupConfigList* self) { + guint modifiers; + gboolean _tmp0_; + gboolean _tmp1_; + g_return_val_if_fail (w != NULL, FALSE); + modifiers = gtk_accelerator_get_default_mod_mask (); + _tmp0_ = FALSE; + _tmp1_ = FALSE; + if ((*e).keyval == 0xffff) { + _tmp1_ = TRUE; + } else { + _tmp1_ = (*e).keyval == 0xff9f; + } + if (_tmp1_) { + _tmp0_ = modifiers == 0; + } else { + _tmp0_ = FALSE; + } + /* Vala keysym bindings would be nice. Check for delete or kp_delete*/ + if (_tmp0_) { + deja_dup_config_list_handle_remove (self); + return TRUE; + } else { + return FALSE; + } +} + + +static gboolean __lambda12__gtk_widget_key_press_event (GtkWidget* _sender, const GdkEventKey* event, gpointer self) { + return _lambda12_ (_sender, event, self); +} + + +static void _deja_dup_config_list_handle_selection_change_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self) { + deja_dup_config_list_handle_selection_change (self, _sender); +} + + +static GObject * deja_dup_config_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigListClass * klass; + GObjectClass * parent_class; + DejaDupConfigList * self; + klass = DEJA_DUP_CONFIG_LIST_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_LIST)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_LIST (obj); + { + GtkListStore* model; + GtkTreeView* _tmp0_; + GtkCellRendererPixbuf* _tmp1_; + GtkCellRendererText* renderer; + GtkButton* _tmp2_; + GtkButton* _tmp3_; + GtkScrolledWindow* scroll; + GtkHBox* hbox; + GtkVBox* vbox; + GtkTreeSelection* _tmp4_; + GtkTreeSelection* selection; + model = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_ICON, NULL); + _tmp0_ = NULL; + self->priv->tree = (_tmp0_ = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ()), (self->priv->tree == NULL) ? NULL : (self->priv->tree = (g_object_unref (self->priv->tree), NULL)), _tmp0_); + g_object_set ((GObject*) self->priv->tree, "model", model, "headers-visible", FALSE, NULL); + _tmp1_ = NULL; + gtk_tree_view_insert_column_with_attributes (self->priv->tree, -1, NULL, (GtkCellRenderer*) (_tmp1_ = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ())), "gicon", 2, NULL); + (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL)); + renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ()); + gtk_tree_view_insert_column_with_attributes (self->priv->tree, -1, NULL, (GtkCellRenderer*) renderer, "text", 1, NULL); + _tmp2_ = NULL; + self->priv->add_button = (_tmp2_ = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_ADD)), (self->priv->add_button == NULL) ? NULL : (self->priv->add_button = (g_object_unref (self->priv->add_button), NULL)), _tmp2_); + g_signal_connect_object (self->priv->add_button, "clicked", (GCallback) _deja_dup_config_list_handle_add_gtk_button_clicked, self, 0); + _tmp3_ = NULL; + self->priv->remove_button = (_tmp3_ = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE)), (self->priv->remove_button == NULL) ? NULL : (self->priv->remove_button = (g_object_unref (self->priv->remove_button), NULL)), _tmp3_); + g_signal_connect_object (self->priv->remove_button, "clicked", (GCallback) _deja_dup_config_list_handle_remove_gtk_button_clicked, self, 0); + scroll = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL)); + g_object_set (scroll, "hscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL); + g_object_set (scroll, "vscrollbar-policy", GTK_POLICY_AUTOMATIC, NULL); + hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6)); + vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)); + gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) self->priv->add_button, FALSE, FALSE, (guint) 0); + gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) self->priv->remove_button, FALSE, FALSE, (guint) 0); + gtk_container_add ((GtkContainer*) scroll, (GtkWidget*) self->priv->tree); + gtk_container_add ((GtkContainer*) hbox, (GtkWidget*) scroll); + gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox, FALSE, FALSE, (guint) 0); + gtk_container_add ((GtkContainer*) self, (GtkWidget*) hbox); + _tmp4_ = NULL; + selection = (_tmp4_ = gtk_tree_view_get_selection (self->priv->tree), (_tmp4_ == NULL) ? NULL : g_object_ref (_tmp4_)); + gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); + g_signal_connect ((GtkWidget*) self, "mnemonic-activate", (GCallback) __lambda11__gtk_widget_mnemonic_activate, self); + g_signal_connect ((GtkWidget*) self, "key-press-event", (GCallback) __lambda12__gtk_widget_key_press_event, self); + deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self); + deja_dup_config_list_handle_selection_change (self, selection); + g_signal_connect_object (selection, "changed", (GCallback) _deja_dup_config_list_handle_selection_change_gtk_tree_selection_changed, self, 0); + (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)); + (renderer == NULL) ? NULL : (renderer = (g_object_unref (renderer), NULL)); + (scroll == NULL) ? NULL : (scroll = (g_object_unref (scroll), NULL)); + (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)); + (vbox == NULL) ? NULL : (vbox = (g_object_unref (vbox), NULL)); + (selection == NULL) ? NULL : (selection = (g_object_unref (selection), NULL)); + } + return obj; +} + + +static void deja_dup_config_list_class_init (DejaDupConfigListClass * klass) { + deja_dup_config_list_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupConfigListPrivate)); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_list_real_set_from_config; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_list_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_list_finalize; +} + + +static void deja_dup_config_list_instance_init (DejaDupConfigList * self) { + self->priv = DEJA_DUP_CONFIG_LIST_GET_PRIVATE (self); +} + + +static void deja_dup_config_list_finalize (GObject* obj) { + DejaDupConfigList * self; + self = DEJA_DUP_CONFIG_LIST (obj); + (self->priv->tree == NULL) ? NULL : (self->priv->tree = (g_object_unref (self->priv->tree), NULL)); + (self->priv->add_button == NULL) ? NULL : (self->priv->add_button = (g_object_unref (self->priv->add_button), NULL)); + (self->priv->remove_button == NULL) ? NULL : (self->priv->remove_button = (g_object_unref (self->priv->remove_button), NULL)); + G_OBJECT_CLASS (deja_dup_config_list_parent_class)->finalize (obj); +} + + +GType deja_dup_config_list_get_type (void) { + static GType deja_dup_config_list_type_id = 0; + if (deja_dup_config_list_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigList), 0, (GInstanceInitFunc) deja_dup_config_list_instance_init, NULL }; + deja_dup_config_list_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigList", &g_define_type_info, 0); + } + return deja_dup_config_list_type_id; +} + + +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { + if ((array != NULL) && (destroy_func != NULL)) { + int i; + for (i = 0; i < array_length; i = i + 1) { + if (((gpointer*) array)[i] != NULL) { + destroy_func (((gpointer*) array)[i]); + } + } + } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); + g_free (array); +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigList.vala deja-dup-10.0/libdeja-dup/ConfigList.vala --- deja-dup-7.4/libdeja-dup/ConfigList.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigList.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,246 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigList : ConfigWidget +{ + public ConfigList(string key) + { + this.key = key; + } + + Gtk.TreeView tree; + Gtk.Button add_button; + Gtk.Button remove_button; + construct { + var model = new Gtk.ListStore(3, typeof(string), typeof(string), typeof(Icon)); + tree = new Gtk.TreeView(); + tree.set("model", model, + "headers-visible", false); + + tree.insert_column_with_attributes(-1, null, new Gtk.CellRendererPixbuf(), + "gicon", 2); + + var renderer = new Gtk.CellRendererText(); + tree.insert_column_with_attributes(-1, null, renderer, + "text", 1); + + add_button = new Gtk.Button.from_stock(Gtk.STOCK_ADD); + add_button.clicked.connect(handle_add); + + remove_button = new Gtk.Button.from_stock(Gtk.STOCK_REMOVE); + remove_button.clicked.connect(handle_remove); + + var scroll = new Gtk.ScrolledWindow(null, null); + scroll.hscrollbar_policy = Gtk.PolicyType.AUTOMATIC; + scroll.vscrollbar_policy = Gtk.PolicyType.AUTOMATIC; + + var hbox = new Gtk.HBox(false, 6); + var vbox = new Gtk.VBox(false, 6); + + vbox.pack_start(add_button, false, false, 0); + vbox.pack_start(remove_button, false, false, 0); + scroll.add(tree); + hbox.add(scroll); + hbox.pack_start(vbox, false, false, 0); + add(hbox); + + var selection = tree.get_selection(); + selection.set_mode(Gtk.SelectionMode.MULTIPLE); + + mnemonic_activate.connect((w, g) => {return tree.mnemonic_activate(g);}); + key_press_event.connect((w, e) => { + uint modifiers = Gtk.accelerator_get_default_mod_mask(); + + // Vala keysym bindings would be nice. Check for delete or kp_delete + if ((e.keyval == 0xffff || e.keyval == 0xff9f) && modifiers == 0) { + handle_remove(); + return true; + } + else + return false; + }); + + set_from_config(); + handle_selection_change(selection); + selection.changed.connect(handle_selection_change); + } + + protected override void set_from_config() + { + weak SList<string> slist; + try { + slist = client.get_list(key, GConf.ValueType.STRING); + } + catch (Error e) { + warning("%s\n", e.message); + return; + } + + var list = DejaDup.parse_dir_list(slist); + + Gtk.ListStore model; + tree.get("model", out model); + model.clear(); + + int i = 0; + File home = File.new_for_path(Environment.get_home_dir()); + File trash = File.new_for_path(DejaDup.get_trash_path()); + foreach (File f in list) { + string s; + if (f.equal(home)) + s = _("Home Folder"); + else if (f.equal(trash)) + s = _("Trash"); + else if (f.has_prefix(home)) + s = home.get_relative_path(f); + else + s = f.get_path(); + + Gtk.TreeIter iter; + model.insert_with_values(out iter, i++, 0, f.get_path(), 1, s); + + // If the folder is the trash, look up icon especially. For some + // reason, gio doesn't do it for us. + Icon icon = null; + if (f.equal(trash)) { + // Until vala bug #564062 is fixed, we use append. Else I'd use from_names + icon = new ThemedIcon("user-trash"); + ((ThemedIcon)icon).append_name("folder"); + } + else { + try { + FileInfo info = f.query_info(FILE_ATTRIBUTE_STANDARD_ICON, FileQueryInfoFlags.NONE, null); + icon = info.get_icon(); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + if (icon != null) + model.set(iter, 2, icon); + } + } + + void handle_selection_change(Gtk.TreeSelection sel) + { + var empty = sel.count_selected_rows() == 0; + remove_button.set_sensitive(!empty); + } + + void handle_add() + { + var dlg = new Gtk.FileChooserDialog(_("Choose folders"), + (Gtk.Window)get_toplevel(), + Gtk.FileChooserAction.SELECT_FOLDER, + Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, + Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT); + dlg.select_multiple = true; + + if (dlg.run() != Gtk.ResponseType.ACCEPT) { + dlg.destroy(); + return; + } + + weak SList<string> files = dlg.get_filenames(); + dlg.destroy(); + + weak SList<string> slist; + try { + slist = client.get_list(key, GConf.ValueType.STRING); + + foreach (string file in files) { + var folder = File.new_for_path(file); + bool found = false; + foreach (string s in slist) { + var sfile = File.new_for_path(s); + if (sfile.equal(folder)) { + found = true; + break; + } + } + + if (!found) + slist.append(file); + } + } + catch (Error e) { + warning("%s\n", e.message); + slist = files; + } + + try { + client.set_list(key, GConf.ValueType.STRING, slist); + } + catch (Error e) {warning("%s\n", e.message);} + } + + void handle_remove() + { + var sel = tree.get_selection(); + + weak Gtk.TreeModel model; + List<Gtk.TreePath> paths = sel.get_selected_rows(out model); + if (paths == null) + return; + + weak SList<string> slist; + try { + slist = client.get_list(key, GConf.ValueType.STRING); + } + catch (Error e) { + warning("%s\n", e.message); + return; + } + + foreach (Gtk.TreePath path in paths) { + Gtk.TreeIter iter; + if (!model.get_iter(out iter, path)) + continue; + + string current; + model.get(iter, 0, out current); + var current_file = File.new_for_path(current); + + weak SList<string> siter = slist, snext; + while (siter != null) { + snext = siter.next; + var sfile = DejaDup.parse_dir(siter.data); + if (sfile.equal(current_file)) { + slist.remove_link(siter); + break; + } + siter = snext; + } + } + + try { + client.set_list(key, GConf.ValueType.STRING, slist); + } + catch (Error e) { + warning("%s\n", e.message); + } + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLocation.c deja-dup-10.0/libdeja-dup/ConfigLocation.c --- deja-dup-7.4/libdeja-dup/ConfigLocation.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLocation.c 2009-06-05 09:40:49.000000000 -0400 @@ -0,0 +1,752 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <gio/gio.h> +#include <stdlib.h> +#include <string.h> +#include <glib/gi18n-lib.h> +#include <hacks.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LOCATION (deja_dup_config_location_get_type ()) +#define DEJA_DUP_CONFIG_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocation)) +#define DEJA_DUP_CONFIG_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationClass)) +#define DEJA_DUP_IS_CONFIG_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION)) +#define DEJA_DUP_IS_CONFIG_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION)) +#define DEJA_DUP_CONFIG_LOCATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationClass)) + +typedef struct _DejaDupConfigLocation DejaDupConfigLocation; +typedef struct _DejaDupConfigLocationClass DejaDupConfigLocationClass; +typedef struct _DejaDupConfigLocationPrivate DejaDupConfigLocationPrivate; + +#define DEJA_DUP_TYPE_BUTTON_CONNECT (deja_dup_button_connect_get_type ()) +#define DEJA_DUP_BUTTON_CONNECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnect)) +#define DEJA_DUP_BUTTON_CONNECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnectClass)) +#define DEJA_DUP_IS_BUTTON_CONNECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT)) +#define DEJA_DUP_IS_BUTTON_CONNECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BUTTON_CONNECT)) +#define DEJA_DUP_BUTTON_CONNECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnectClass)) + +typedef struct _DejaDupButtonConnect DejaDupButtonConnect; +typedef struct _DejaDupButtonConnectClass DejaDupButtonConnectClass; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigLocation { + DejaDupConfigWidget parent_instance; + DejaDupConfigLocationPrivate * priv; +}; + +struct _DejaDupConfigLocationClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigLocationPrivate { + gboolean _is_s3; + GtkFileChooserDialog* dialog; + GtkFileChooserButton* button; + GFile* top_tmpdir; + GFile* tmpdir; + char* s3_name; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_location_get_type (void); +#define DEJA_DUP_CONFIG_LOCATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationPrivate)) +enum { + DEJA_DUP_CONFIG_LOCATION_DUMMY_PROPERTY, + DEJA_DUP_CONFIG_LOCATION_IS_S3 +}; +#define DEJA_DUP_CONFIG_LOCATION_CONNECT_ID 1 +#define DEJA_DUP_BACKEND_KEY "/apps/deja-dup/backend" +#define DEJA_DUP_FILE_PATH_KEY "/apps/deja-dup/file/path" +static GFile* deja_dup_config_location_get_file_from_gconf (DejaDupConfigLocation* self, GError** error); +static void deja_dup_config_location_set_is_s3 (DejaDupConfigLocation* self, gboolean value); +static void deja_dup_config_location_real_set_from_config (DejaDupConfigWidget* base); +static void deja_dup_config_location_handle_selection_changed (DejaDupConfigLocation* self); +static void deja_dup_config_location_handle_dialog_show (DejaDupConfigLocation* self, GtkWidget* w); +static void _deja_dup_config_location_handle_dialog_show_gtk_widget_show (GtkWidget* _sender, gpointer self); +static void deja_dup_config_location_handle_dialog_hide (DejaDupConfigLocation* self, GtkWidget* w); +static void _deja_dup_config_location_handle_dialog_hide_gtk_widget_hide (GtkWidget* _sender, gpointer self); +static void deja_dup_config_location_add_special_location (DejaDupConfigLocation* self); +gboolean deja_dup_config_location_get_is_s3 (DejaDupConfigLocation* self); +DejaDupConfigLocation* deja_dup_config_location_new (void); +DejaDupConfigLocation* deja_dup_config_location_construct (GType object_type); +DejaDupConfigLocation* deja_dup_config_location_new (void); +DejaDupButtonConnect* deja_dup_button_connect_new (void); +DejaDupButtonConnect* deja_dup_button_connect_construct (GType object_type); +GType deja_dup_button_connect_get_type (void); +static gboolean _lambda13_ (GtkWidget* w, gboolean g, DejaDupConfigLocation* self); +static gboolean __lambda13__gtk_widget_mnemonic_activate (GtkWidget* _sender, gboolean group_cycling, gpointer self); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +static void _deja_dup_config_location_handle_selection_changed_gtk_file_chooser_selection_changed (GtkFileChooser* _sender, gpointer self); +void deja_dup_config_widget_watch_key (DejaDupConfigWidget* self, const char* key); +static GObject * deja_dup_config_location_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_location_parent_class = NULL; +static void deja_dup_config_location_finalize (GObject* obj); +static void deja_dup_config_location_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_config_location_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); +static int _vala_strcmp0 (const char * str1, const char * str2); + + + +static GFile* deja_dup_config_location_get_file_from_gconf (DejaDupConfigLocation* self, GError** error) { + GError * _inner_error_; + GFile* file; + const char* _tmp0_; + char* val; + gboolean _tmp1_; + GFile* _tmp10_; + g_return_val_if_fail (self != NULL, NULL); + _inner_error_ = NULL; + /* Check the backend type, then GIO uri if needed*/ + file = NULL; + _tmp0_ = NULL; + val = (_tmp0_ = gconf_client_get_string (((DejaDupConfigWidget*) self)->client, DEJA_DUP_BACKEND_KEY, &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + return NULL; + } + _tmp1_ = FALSE; + if (_vala_strcmp0 (val, "s3") == 0) { + _tmp1_ = self->priv->tmpdir != NULL; + } else { + _tmp1_ = FALSE; + } + if (_tmp1_) { + GFile* _tmp3_; + GFile* _tmp2_; + _tmp3_ = NULL; + _tmp2_ = NULL; + file = (_tmp3_ = (_tmp2_ = self->priv->tmpdir, (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)), (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp3_); + } else { + const char* _tmp4_; + char* _tmp6_; + const char* _tmp5_; + GFile* _tmp9_; + GFile* _tmp8_; + _tmp4_ = gconf_client_get_string (((DejaDupConfigWidget*) self)->client, DEJA_DUP_FILE_PATH_KEY, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + val = (g_free (val), NULL); + return NULL; + } + _tmp6_ = NULL; + _tmp5_ = NULL; + val = (_tmp6_ = (_tmp5_ = _tmp4_, (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)), val = (g_free (val), NULL), _tmp6_); + if (val == NULL) { + char* _tmp7_; + _tmp7_ = NULL; + val = (_tmp7_ = g_strdup (""), val = (g_free (val), NULL), _tmp7_); + } + /* current directory*/ + _tmp9_ = NULL; + _tmp8_ = NULL; + file = (_tmp9_ = (_tmp8_ = g_file_parse_name (val), (_tmp8_ == NULL) ? NULL : g_object_ref (_tmp8_)), (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp9_); + } + _tmp10_ = NULL; + return (_tmp10_ = file, val = (g_free (val), NULL), _tmp10_); +} + + +static void deja_dup_config_location_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigLocation * self; + GError * _inner_error_; + GFile* file; + self = (DejaDupConfigLocation*) base; + _inner_error_ = NULL; + /* Check the backend type, then GIO uri if needed*/ + file = NULL; + { + char* uri; + GFile* _tmp0_; + GFile* _tmp3_; + GFile* button_file; + GFile* _tmp4_; + GFile* _tmp5_; + gboolean _tmp6_; + uri = gtk_file_chooser_get_uri ((GtkFileChooser*) self->priv->button); + _tmp0_ = NULL; + if (uri == NULL) { + GFile* _tmp1_; + _tmp1_ = NULL; + _tmp0_ = (_tmp1_ = NULL, (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)), _tmp1_); + } else { + GFile* _tmp2_; + _tmp2_ = NULL; + _tmp0_ = (_tmp2_ = g_file_new_for_uri (uri), (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)), _tmp2_); + } + _tmp3_ = NULL; + button_file = (_tmp3_ = _tmp0_, (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); + _tmp4_ = deja_dup_config_location_get_file_from_gconf (self, &_inner_error_); + if (_inner_error_ != NULL) { + uri = (g_free (uri), NULL); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)); + (button_file == NULL) ? NULL : (button_file = (g_object_unref (button_file), NULL)); + goto __catch23_g_error; + goto __finally23; + } + _tmp5_ = NULL; + file = (_tmp5_ = _tmp4_, (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp5_); + _tmp6_ = FALSE; + if (button_file == NULL) { + _tmp6_ = TRUE; + } else { + _tmp6_ = !g_file_equal (file, button_file); + } + if (_tmp6_) { + char* _tmp7_; + gboolean _tmp8_; + _tmp7_ = NULL; + gtk_file_chooser_set_current_folder_uri ((GtkFileChooser*) self->priv->button, _tmp7_ = g_file_get_uri (file)); + _tmp7_ = (g_free (_tmp7_), NULL); + _tmp8_ = FALSE; + if (self->priv->tmpdir != NULL) { + _tmp8_ = g_file_equal (file, self->priv->tmpdir); + } else { + _tmp8_ = FALSE; + } + deja_dup_config_location_set_is_s3 (self, _tmp8_); + } + uri = (g_free (uri), NULL); + (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)); + (button_file == NULL) ? NULL : (button_file = (g_object_unref (button_file), NULL)); + } + goto __finally23; + __catch23_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLocation.vala:118: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally23: + if (_inner_error_ != NULL) { + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); +} + + +static void deja_dup_config_location_handle_selection_changed (DejaDupConfigLocation* self) { + GError * _inner_error_; + GFile* gconf_file; + char* uri; + GFile* _tmp2_; + GFile* _tmp5_; + GFile* file; + gboolean _tmp6_; + gboolean _tmp7_; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + gconf_file = NULL; + { + GFile* _tmp0_; + GFile* _tmp1_; + _tmp0_ = deja_dup_config_location_get_file_from_gconf (self, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch24_g_error; + goto __finally24; + } + _tmp1_ = NULL; + gconf_file = (_tmp1_ = _tmp0_, (gconf_file == NULL) ? NULL : (gconf_file = (g_object_unref (gconf_file), NULL)), _tmp1_); + } + goto __finally24; + __catch24_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally24: + if (_inner_error_ != NULL) { + (gconf_file == NULL) ? NULL : (gconf_file = (g_object_unref (gconf_file), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + /* ignore*/ + uri = gtk_file_chooser_get_uri ((GtkFileChooser*) self->priv->button); + _tmp2_ = NULL; + if (uri == NULL) { + GFile* _tmp3_; + _tmp3_ = NULL; + _tmp2_ = (_tmp3_ = NULL, (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL)), _tmp3_); + } else { + GFile* _tmp4_; + _tmp4_ = NULL; + _tmp2_ = (_tmp4_ = g_file_new_for_uri (uri), (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL)), _tmp4_); + } + _tmp5_ = NULL; + file = (_tmp5_ = _tmp2_, (_tmp5_ == NULL) ? NULL : g_object_ref (_tmp5_)); + _tmp6_ = FALSE; + if (file == NULL) { + _tmp6_ = TRUE; + } else { + _tmp6_ = g_file_equal (file, gconf_file); + } + if (_tmp6_) { + (gconf_file == NULL) ? NULL : (gconf_file = (g_object_unref (gconf_file), NULL)); + uri = (g_free (uri), NULL); + (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL)); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + return; + } + _tmp7_ = FALSE; + if (self->priv->tmpdir != NULL) { + _tmp7_ = g_file_equal (file, self->priv->tmpdir); + } else { + _tmp7_ = FALSE; + } + /* we sometimes get several selection changed notices in a row...*/ + deja_dup_config_location_set_is_s3 (self, _tmp7_); + { + gboolean _tmp8_; + _tmp8_ = FALSE; + if (self->priv->tmpdir != NULL) { + _tmp8_ = g_file_equal (file, self->priv->tmpdir); + } else { + _tmp8_ = FALSE; + } + if (_tmp8_) { + gconf_client_set_string (((DejaDupConfigWidget*) self)->client, DEJA_DUP_BACKEND_KEY, "s3", &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch25_g_error; + goto __finally25; + } + } else { + char* _tmp9_; + gconf_client_set_string (((DejaDupConfigWidget*) self)->client, DEJA_DUP_BACKEND_KEY, "file", &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch25_g_error; + goto __finally25; + } + _tmp9_ = NULL; + gconf_client_set_string (((DejaDupConfigWidget*) self)->client, DEJA_DUP_FILE_PATH_KEY, _tmp9_ = g_file_get_parse_name (file), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch25_g_error; + goto __finally25; + } + _tmp9_ = (g_free (_tmp9_), NULL); + } + } + goto __finally25; + __catch25_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLocation.vala:146: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally25: + if (_inner_error_ != NULL) { + (gconf_file == NULL) ? NULL : (gconf_file = (g_object_unref (gconf_file), NULL)); + uri = (g_free (uri), NULL); + (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL)); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + g_signal_emit_by_name (self, "changed"); + (gconf_file == NULL) ? NULL : (gconf_file = (g_object_unref (gconf_file), NULL)); + uri = (g_free (uri), NULL); + (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL)); + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); +} + + +static void _deja_dup_config_location_handle_dialog_show_gtk_widget_show (GtkWidget* _sender, gpointer self) { + deja_dup_config_location_handle_dialog_show (self, _sender); +} + + +static void _deja_dup_config_location_handle_dialog_hide_gtk_widget_hide (GtkWidget* _sender, gpointer self) { + deja_dup_config_location_handle_dialog_hide (self, _sender); +} + + +static void deja_dup_config_location_add_special_location (DejaDupConfigLocation* self) { + GError * _inner_error_; + char* template; + GFile* _tmp0_; + GFile* _tmp1_; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + /* This is a big ol' hack to show a custom, non-GIO name as a location, + Should try to get S3 in as a patch to GIO someday...*/ + template = g_build_filename (g_get_tmp_dir (), "deja-dup-XXXXXX", NULL); + _tmp0_ = NULL; + self->priv->top_tmpdir = (_tmp0_ = g_file_new_for_path (mkdtemp (template)), (self->priv->top_tmpdir == NULL) ? NULL : (self->priv->top_tmpdir = (g_object_unref (self->priv->top_tmpdir), NULL)), _tmp0_); + _tmp1_ = NULL; + self->priv->tmpdir = (_tmp1_ = g_file_get_child (self->priv->top_tmpdir, self->priv->s3_name), (self->priv->tmpdir == NULL) ? NULL : (self->priv->tmpdir = (g_object_unref (self->priv->tmpdir), NULL)), _tmp1_); + { + char* _tmp2_; + g_file_make_directory (self->priv->tmpdir, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch26_g_error; + goto __finally26; + } + _tmp2_ = NULL; + gtk_file_chooser_add_shortcut_folder_uri ((GtkFileChooser*) self->priv->button, _tmp2_ = g_file_get_uri (self->priv->tmpdir), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch26_g_error; + goto __finally26; + } + _tmp2_ = (g_free (_tmp2_), NULL); + g_signal_connect_object ((GtkWidget*) self->priv->dialog, "show", (GCallback) _deja_dup_config_location_handle_dialog_show_gtk_widget_show, self, 0); + g_signal_connect_object ((GtkWidget*) self->priv->dialog, "hide", (GCallback) _deja_dup_config_location_handle_dialog_hide_gtk_widget_hide, self, 0); + } + goto __finally26; + __catch26_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLocation.vala:167: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally26: + if (_inner_error_ != NULL) { + template = (g_free (template), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + template = (g_free (template), NULL); +} + + +static void deja_dup_config_location_handle_dialog_show (DejaDupConfigLocation* self, GtkWidget* w) { + GError * _inner_error_; + g_return_if_fail (self != NULL); + g_return_if_fail (w != NULL); + _inner_error_ = NULL; + if (self->priv->_is_s3) { + /* We need to reset the current folder, because we don't want to expose + the temporary folder used for s3. So go to $HOME.*/ + gtk_file_chooser_set_current_folder ((GtkFileChooser*) self->priv->button, g_get_home_dir ()); + } + { + char* _tmp0_; + _tmp0_ = NULL; + gtk_file_chooser_remove_shortcut_folder_uri ((GtkFileChooser*) self->priv->button, _tmp0_ = g_file_get_uri (self->priv->tmpdir), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch27_g_error; + goto __finally27; + } + _tmp0_ = (g_free (_tmp0_), NULL); + } + goto __finally27; + __catch27_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLocation.vala:183: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally27: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +static void deja_dup_config_location_handle_dialog_hide (DejaDupConfigLocation* self, GtkWidget* w) { + GError * _inner_error_; + g_return_if_fail (self != NULL); + g_return_if_fail (w != NULL); + _inner_error_ = NULL; + { + char* _tmp0_; + _tmp0_ = NULL; + gtk_file_chooser_add_shortcut_folder_uri ((GtkFileChooser*) self->priv->button, _tmp0_ = g_file_get_uri (self->priv->tmpdir), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch28_g_error; + goto __finally28; + } + _tmp0_ = (g_free (_tmp0_), NULL); + } + goto __finally28; + __catch28_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLocation.vala:193: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally28: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +DejaDupConfigLocation* deja_dup_config_location_construct (GType object_type) { + DejaDupConfigLocation * self; + self = g_object_newv (object_type, 0, NULL); + return self; +} + + +DejaDupConfigLocation* deja_dup_config_location_new (void) { + return deja_dup_config_location_construct (DEJA_DUP_TYPE_CONFIG_LOCATION); +} + + +gboolean deja_dup_config_location_get_is_s3 (DejaDupConfigLocation* self) { + g_return_val_if_fail (self != NULL, FALSE); + return self->priv->_is_s3; +} + + +static void deja_dup_config_location_set_is_s3 (DejaDupConfigLocation* self, gboolean value) { + g_return_if_fail (self != NULL); + self->priv->_is_s3 = value; + g_object_notify ((GObject *) self, "is-s3"); +} + + +static gboolean _lambda13_ (GtkWidget* w, gboolean g, DejaDupConfigLocation* self) { + g_return_val_if_fail (w != NULL, FALSE); + return gtk_widget_mnemonic_activate ((GtkWidget*) self->priv->button, g); +} + + +static gboolean __lambda13__gtk_widget_mnemonic_activate (GtkWidget* _sender, gboolean group_cycling, gpointer self) { + return _lambda13_ (_sender, group_cycling, self); +} + + +static void _deja_dup_config_location_handle_selection_changed_gtk_file_chooser_selection_changed (GtkFileChooser* _sender, gpointer self) { + deja_dup_config_location_handle_selection_changed (self); +} + + +static GObject * deja_dup_config_location_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigLocationClass * klass; + GObjectClass * parent_class; + DejaDupConfigLocation * self; + klass = DEJA_DUP_CONFIG_LOCATION_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_LOCATION)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_LOCATION (obj); + { + GtkHBox* hbox; + GtkFileChooserDialog* _tmp0_; + char* _tmp1_; + gboolean _tmp2_; + gboolean has_connect_prog; + GtkFileChooserButton* _tmp4_; + char* _tmp6_; + const char* _tmp5_; + hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6)); + gtk_container_add ((GtkContainer*) self, (GtkWidget*) hbox); + _tmp0_ = NULL; + self->priv->dialog = (_tmp0_ = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_ ("Select Backup Location"), NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, NULL)), (self->priv->dialog == NULL) ? NULL : (self->priv->dialog = (g_object_unref (self->priv->dialog), NULL)), _tmp0_); + _tmp1_ = NULL; + has_connect_prog = (_tmp2_ = (_tmp1_ = g_find_program_in_path ("nautilus-connect-server")) != NULL, _tmp1_ = (g_free (_tmp1_), NULL), _tmp2_); + if (has_connect_prog) { + DejaDupButtonConnect* button; + GtkBox* _tmp3_; + GtkBox* action_area; + button = g_object_ref_sink (deja_dup_button_connect_new ()); + _tmp3_ = NULL; + action_area = (_tmp3_ = GTK_BOX (hacks_dialog_get_action_area ((GtkDialog*) self->priv->dialog)), (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); + gtk_box_pack_end (action_area, (GtkWidget*) button, FALSE, FALSE, (guint) 0); + gtk_widget_show_all ((GtkWidget*) button); + (button == NULL) ? NULL : (button = (g_object_unref (button), NULL)); + (action_area == NULL) ? NULL : (action_area = (g_object_unref (action_area), NULL)); + } + gtk_dialog_add_buttons ((GtkDialog*) self->priv->dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); + gtk_dialog_set_default_response ((GtkDialog*) self->priv->dialog, (gint) GTK_RESPONSE_ACCEPT); + _tmp4_ = NULL; + self->priv->button = (_tmp4_ = g_object_ref_sink ((GtkFileChooserButton*) gtk_file_chooser_button_new_with_dialog ((GtkWidget*) self->priv->dialog)), (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)), _tmp4_); + gtk_file_chooser_set_local_only ((GtkFileChooser*) self->priv->button, FALSE); + gtk_container_add ((GtkContainer*) hbox, (GtkWidget*) self->priv->button); + if (has_connect_prog) { + DejaDupButtonConnect* connect_button; + connect_button = g_object_ref_sink (deja_dup_button_connect_new ()); + gtk_container_add ((GtkContainer*) hbox, (GtkWidget*) connect_button); + (connect_button == NULL) ? NULL : (connect_button = (g_object_unref (connect_button), NULL)); + } + g_signal_connect ((GtkWidget*) self, "mnemonic-activate", (GCallback) __lambda13__gtk_widget_mnemonic_activate, self); + _tmp6_ = NULL; + _tmp5_ = NULL; + self->priv->s3_name = (_tmp6_ = (_tmp5_ = _ ("Amazon S3"), (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)), self->priv->s3_name = (g_free (self->priv->s3_name), NULL), _tmp6_); + deja_dup_config_location_add_special_location (self); + deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self); + g_signal_connect_object ((GtkFileChooser*) self->priv->button, "selection-changed", (GCallback) _deja_dup_config_location_handle_selection_changed_gtk_file_chooser_selection_changed, self, 0); + deja_dup_config_widget_watch_key ((DejaDupConfigWidget*) self, DEJA_DUP_BACKEND_KEY); + deja_dup_config_widget_watch_key ((DejaDupConfigWidget*) self, DEJA_DUP_FILE_PATH_KEY); + (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)); + } + return obj; +} + + +static void deja_dup_config_location_class_init (DejaDupConfigLocationClass * klass) { + deja_dup_config_location_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupConfigLocationPrivate)); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_location_real_set_from_config; + G_OBJECT_CLASS (klass)->get_property = deja_dup_config_location_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_config_location_set_property; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_location_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_location_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_CONFIG_LOCATION_IS_S3, g_param_spec_boolean ("is-s3", "is-s3", "is-s3", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_signal_new ("changed", DEJA_DUP_TYPE_CONFIG_LOCATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); +} + + +static void deja_dup_config_location_instance_init (DejaDupConfigLocation * self) { + self->priv = DEJA_DUP_CONFIG_LOCATION_GET_PRIVATE (self); +} + + +static void deja_dup_config_location_finalize (GObject* obj) { + DejaDupConfigLocation * self; + GError * _inner_error_; + self = DEJA_DUP_CONFIG_LOCATION (obj); + _inner_error_ = NULL; + { + { + g_file_delete (self->priv->tmpdir, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch29_g_error; + goto __finally29; + } + g_file_delete (self->priv->top_tmpdir, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch29_g_error; + goto __finally29; + } + } + goto __finally29; + __catch29_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigLocation.vala:84: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally29: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + } + } + (self->priv->dialog == NULL) ? NULL : (self->priv->dialog = (g_object_unref (self->priv->dialog), NULL)); + (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)); + (self->priv->top_tmpdir == NULL) ? NULL : (self->priv->top_tmpdir = (g_object_unref (self->priv->top_tmpdir), NULL)); + (self->priv->tmpdir == NULL) ? NULL : (self->priv->tmpdir = (g_object_unref (self->priv->tmpdir), NULL)); + self->priv->s3_name = (g_free (self->priv->s3_name), NULL); + G_OBJECT_CLASS (deja_dup_config_location_parent_class)->finalize (obj); +} + + +GType deja_dup_config_location_get_type (void) { + static GType deja_dup_config_location_type_id = 0; + if (deja_dup_config_location_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigLocationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_location_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigLocation), 0, (GInstanceInitFunc) deja_dup_config_location_instance_init, NULL }; + deja_dup_config_location_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigLocation", &g_define_type_info, 0); + } + return deja_dup_config_location_type_id; +} + + +static void deja_dup_config_location_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupConfigLocation * self; + gpointer boxed; + self = DEJA_DUP_CONFIG_LOCATION (object); + switch (property_id) { + case DEJA_DUP_CONFIG_LOCATION_IS_S3: + g_value_set_boolean (value, deja_dup_config_location_get_is_s3 (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_config_location_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupConfigLocation * self; + self = DEJA_DUP_CONFIG_LOCATION (object); + switch (property_id) { + case DEJA_DUP_CONFIG_LOCATION_IS_S3: + deja_dup_config_location_set_is_s3 (self, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static int _vala_strcmp0 (const char * str1, const char * str2) { + if (str1 == NULL) { + return -(str1 != str2); + } + if (str2 == NULL) { + return str1 != str2; + } + return strcmp (str1, str2); +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigLocation.vala deja-dup-10.0/libdeja-dup/ConfigLocation.vala --- deja-dup-7.4/libdeja-dup/ConfigLocation.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigLocation.vala 2009-06-05 08:10:26.000000000 -0400 @@ -0,0 +1,199 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigLocation : ConfigWidget +{ + public signal void changed(); + + public bool is_s3 {get; private set;} + + static const int CONNECT_ID = 1; + + Gtk.FileChooserDialog dialog; + Gtk.FileChooserButton button; + File top_tmpdir; + File tmpdir; + string s3_name; + construct { + var hbox = new Gtk.HBox(false, 6); + add(hbox); + + dialog = new Gtk.FileChooserDialog (_("Select Backup Location"), null, + Gtk.FileChooserAction.SELECT_FOLDER); + + var has_connect_prog = Environment.find_program_in_path("nautilus-connect-server") != null; + if (has_connect_prog) { + var button = new ButtonConnect(); + var action_area = (Gtk.Box)hacks_dialog_get_action_area(dialog); + action_area.pack_end(button, false, false, 0); + button.show_all(); + } + + dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, + Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT); + dialog.set_default_response(Gtk.ResponseType.ACCEPT); + + button = new Gtk.FileChooserButton.with_dialog(dialog); + button.local_only = false; + hbox.add(button); + + if (has_connect_prog) { + var connect_button = new ButtonConnect(); + hbox.add(connect_button); + } + + mnemonic_activate.connect((w, g) => {return button.mnemonic_activate(g);}); + + s3_name = _("Amazon S3"); + add_special_location(); + + set_from_config(); + button.selection_changed.connect(handle_selection_changed); + + watch_key(BACKEND_KEY); + watch_key(FILE_PATH_KEY); + } + + ~ConfigLocation() + { + try { + tmpdir.delete(null); + top_tmpdir.delete(null); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + File get_file_from_gconf() throws Error + { + // Check the backend type, then GIO uri if needed + File file = null; + var val = client.get_string(BACKEND_KEY); + if (val == "s3" && tmpdir != null) + file = tmpdir; + else { + val = client.get_string(FILE_PATH_KEY); + if (val == null) + val = ""; // current directory + file = File.parse_name(val); + } + return file; + } + + protected override void set_from_config() + { + // Check the backend type, then GIO uri if needed + File file = null; + try { + var uri = button.get_uri(); + var button_file = uri == null ? null : File.new_for_uri(uri); + file = get_file_from_gconf(); + if (button_file == null || !file.equal(button_file)) { + button.set_current_folder_uri(file.get_uri()); + is_s3 = tmpdir != null && file.equal(tmpdir); + } + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + void handle_selection_changed() + { + File gconf_file = null; + try { + gconf_file = get_file_from_gconf(); + } + catch (Error e) {} // ignore + + var uri = button.get_uri(); + var file = uri == null ? null : File.new_for_uri(uri); + if (file == null || file.equal(gconf_file)) + return; // we sometimes get several selection changed notices in a row... + + is_s3 = tmpdir != null && file.equal(tmpdir); + + try { + if (tmpdir != null && file.equal(tmpdir)) + client.set_string(BACKEND_KEY, "s3"); + else { + client.set_string(BACKEND_KEY, "file"); + client.set_string(FILE_PATH_KEY, file.get_parse_name()); + } + } + catch (Error e) { + warning("%s\n", e.message); + } + + changed(); + } + + void add_special_location() + { + // This is a big ol' hack to show a custom, non-GIO name as a location, + // Should try to get S3 in as a patch to GIO someday... + var template = Path.build_filename(Environment.get_tmp_dir(), "deja-dup-XXXXXX"); + top_tmpdir = File.new_for_path(DirUtils.mkdtemp(template)); + tmpdir = top_tmpdir.get_child(s3_name); + + try { + tmpdir.make_directory(null); + button.add_shortcut_folder_uri(tmpdir.get_uri()); + dialog.show.connect(handle_dialog_show); + dialog.hide.connect(handle_dialog_hide); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + void handle_dialog_show(Gtk.Widget w) + { + if (is_s3) { + // We need to reset the current folder, because we don't want to expose + // the temporary folder used for s3. So go to $HOME. + button.set_current_folder(Environment.get_home_dir()); + } + + try { + button.remove_shortcut_folder_uri(tmpdir.get_uri()); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + void handle_dialog_hide(Gtk.Widget w) + { + try { + button.add_shortcut_folder_uri(tmpdir.get_uri()); + } + catch (Error e) { + warning("%s\n", e.message); + } + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigNumber.c deja-dup-10.0/libdeja-dup/ConfigNumber.c --- deja-dup-7.4/libdeja-dup/ConfigNumber.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigNumber.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,313 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_NUMBER (deja_dup_config_number_get_type ()) +#define DEJA_DUP_CONFIG_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_NUMBER, DejaDupConfigNumber)) +#define DEJA_DUP_CONFIG_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_NUMBER, DejaDupConfigNumberClass)) +#define DEJA_DUP_IS_CONFIG_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_NUMBER)) +#define DEJA_DUP_IS_CONFIG_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_NUMBER)) +#define DEJA_DUP_CONFIG_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_NUMBER, DejaDupConfigNumberClass)) + +typedef struct _DejaDupConfigNumber DejaDupConfigNumber; +typedef struct _DejaDupConfigNumberClass DejaDupConfigNumberClass; +typedef struct _DejaDupConfigNumberPrivate DejaDupConfigNumberPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigNumber { + DejaDupConfigWidget parent_instance; + DejaDupConfigNumberPrivate * priv; +}; + +struct _DejaDupConfigNumberClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigNumberPrivate { + gint _lower_bound; + gint _upper_bound; + GtkSpinButton* spin; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_number_get_type (void); +#define DEJA_DUP_CONFIG_NUMBER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_CONFIG_NUMBER, DejaDupConfigNumberPrivate)) +enum { + DEJA_DUP_CONFIG_NUMBER_DUMMY_PROPERTY, + DEJA_DUP_CONFIG_NUMBER_LOWER_BOUND, + DEJA_DUP_CONFIG_NUMBER_UPPER_BOUND +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +static void deja_dup_config_number_set_lower_bound (DejaDupConfigNumber* self, gint value); +static void deja_dup_config_number_set_upper_bound (DejaDupConfigNumber* self, gint value); +DejaDupConfigNumber* deja_dup_config_number_new (const char* key, gint lower_bound, gint upper_bound); +DejaDupConfigNumber* deja_dup_config_number_construct (GType object_type, const char* key, gint lower_bound, gint upper_bound); +DejaDupConfigNumber* deja_dup_config_number_new (const char* key, gint lower_bound, gint upper_bound); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_number_real_set_from_config (DejaDupConfigWidget* base); +static void deja_dup_config_number_handle_value_changed (DejaDupConfigNumber* self); +gint deja_dup_config_number_get_lower_bound (DejaDupConfigNumber* self); +gint deja_dup_config_number_get_upper_bound (DejaDupConfigNumber* self); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +static void _deja_dup_config_number_handle_value_changed_gtk_spin_button_value_changed (GtkSpinButton* _sender, gpointer self); +static GObject * deja_dup_config_number_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_number_parent_class = NULL; +static void deja_dup_config_number_finalize (GObject* obj); +static void deja_dup_config_number_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_config_number_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); + + + +DejaDupConfigNumber* deja_dup_config_number_construct (GType object_type, const char* key, gint lower_bound, gint upper_bound) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigNumber * self; + g_return_val_if_fail (key != NULL, NULL); + __params = g_new0 (GParameter, 3); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + __params_it->name = "lower-bound"; + g_value_init (&__params_it->value, G_TYPE_INT); + g_value_set_int (&__params_it->value, lower_bound); + __params_it++; + __params_it->name = "upper-bound"; + g_value_init (&__params_it->value, G_TYPE_INT); + g_value_set_int (&__params_it->value, upper_bound); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigNumber* deja_dup_config_number_new (const char* key, gint lower_bound, gint upper_bound) { + return deja_dup_config_number_construct (DEJA_DUP_TYPE_CONFIG_NUMBER, key, lower_bound, upper_bound); +} + + +static void deja_dup_config_number_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigNumber * self; + GError * _inner_error_; + self = (DejaDupConfigNumber*) base; + _inner_error_ = NULL; + { + gint val; + val = gconf_client_get_int (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch30_g_error; + goto __finally30; + } + gtk_spin_button_set_value (self->priv->spin, (double) val); + } + goto __finally30; + __catch30_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigNumber.vala:52: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally30: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +static void deja_dup_config_number_handle_value_changed (DejaDupConfigNumber* self) { + GError * _inner_error_; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + { + gconf_client_set_int (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), (gint) gtk_spin_button_get_value (self->priv->spin), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch31_g_error; + goto __finally31; + } + } + goto __finally31; + __catch31_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigNumber.vala:62: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally31: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } +} + + +gint deja_dup_config_number_get_lower_bound (DejaDupConfigNumber* self) { + g_return_val_if_fail (self != NULL, 0); + return self->priv->_lower_bound; +} + + +static void deja_dup_config_number_set_lower_bound (DejaDupConfigNumber* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_lower_bound = value; + g_object_notify ((GObject *) self, "lower-bound"); +} + + +gint deja_dup_config_number_get_upper_bound (DejaDupConfigNumber* self) { + g_return_val_if_fail (self != NULL, 0); + return self->priv->_upper_bound; +} + + +static void deja_dup_config_number_set_upper_bound (DejaDupConfigNumber* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_upper_bound = value; + g_object_notify ((GObject *) self, "upper-bound"); +} + + +static void _deja_dup_config_number_handle_value_changed_gtk_spin_button_value_changed (GtkSpinButton* _sender, gpointer self) { + deja_dup_config_number_handle_value_changed (self); +} + + +static GObject * deja_dup_config_number_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigNumberClass * klass; + GObjectClass * parent_class; + DejaDupConfigNumber * self; + klass = DEJA_DUP_CONFIG_NUMBER_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_NUMBER)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_NUMBER (obj); + { + GtkSpinButton* _tmp0_; + _tmp0_ = NULL; + self->priv->spin = (_tmp0_ = g_object_ref_sink ((GtkSpinButton*) gtk_spin_button_new_with_range ((double) self->priv->_lower_bound, (double) self->priv->_upper_bound, (double) 1)), (self->priv->spin == NULL) ? NULL : (self->priv->spin = (g_object_unref (self->priv->spin), NULL)), _tmp0_); + gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->spin); + deja_dup_config_widget_set_from_config ((DejaDupConfigWidget*) self); + g_signal_connect_object (self->priv->spin, "value-changed", (GCallback) _deja_dup_config_number_handle_value_changed_gtk_spin_button_value_changed, self, 0); + } + return obj; +} + + +static void deja_dup_config_number_class_init (DejaDupConfigNumberClass * klass) { + deja_dup_config_number_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupConfigNumberPrivate)); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_number_real_set_from_config; + G_OBJECT_CLASS (klass)->get_property = deja_dup_config_number_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_config_number_set_property; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_number_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_number_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_CONFIG_NUMBER_LOWER_BOUND, g_param_spec_int ("lower-bound", "lower-bound", "lower-bound", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_CONFIG_NUMBER_UPPER_BOUND, g_param_spec_int ("upper-bound", "upper-bound", "upper-bound", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); +} + + +static void deja_dup_config_number_instance_init (DejaDupConfigNumber * self) { + self->priv = DEJA_DUP_CONFIG_NUMBER_GET_PRIVATE (self); +} + + +static void deja_dup_config_number_finalize (GObject* obj) { + DejaDupConfigNumber * self; + self = DEJA_DUP_CONFIG_NUMBER (obj); + (self->priv->spin == NULL) ? NULL : (self->priv->spin = (g_object_unref (self->priv->spin), NULL)); + G_OBJECT_CLASS (deja_dup_config_number_parent_class)->finalize (obj); +} + + +GType deja_dup_config_number_get_type (void) { + static GType deja_dup_config_number_type_id = 0; + if (deja_dup_config_number_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigNumberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_number_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigNumber), 0, (GInstanceInitFunc) deja_dup_config_number_instance_init, NULL }; + deja_dup_config_number_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_WIDGET, "DejaDupConfigNumber", &g_define_type_info, 0); + } + return deja_dup_config_number_type_id; +} + + +static void deja_dup_config_number_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupConfigNumber * self; + gpointer boxed; + self = DEJA_DUP_CONFIG_NUMBER (object); + switch (property_id) { + case DEJA_DUP_CONFIG_NUMBER_LOWER_BOUND: + g_value_set_int (value, deja_dup_config_number_get_lower_bound (self)); + break; + case DEJA_DUP_CONFIG_NUMBER_UPPER_BOUND: + g_value_set_int (value, deja_dup_config_number_get_upper_bound (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_config_number_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupConfigNumber * self; + self = DEJA_DUP_CONFIG_NUMBER (object); + switch (property_id) { + case DEJA_DUP_CONFIG_NUMBER_LOWER_BOUND: + deja_dup_config_number_set_lower_bound (self, g_value_get_int (value)); + break; + case DEJA_DUP_CONFIG_NUMBER_UPPER_BOUND: + deja_dup_config_number_set_upper_bound (self, g_value_get_int (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigNumber.vala deja-dup-10.0/libdeja-dup/ConfigNumber.vala --- deja-dup-7.4/libdeja-dup/ConfigNumber.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigNumber.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,68 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigNumber : ConfigWidget +{ + public int lower_bound {get; construct;} + public int upper_bound {get; construct;} + + public ConfigNumber(string key, int lower_bound, int upper_bound) + { + this.key = key; + this.lower_bound = lower_bound; + this.upper_bound = upper_bound; + } + + Gtk.SpinButton spin; + construct { + spin = new Gtk.SpinButton.with_range(lower_bound, upper_bound, 1); + add(spin); + + set_from_config(); + spin.value_changed.connect(handle_value_changed); + } + + protected override void set_from_config() + { + try { + var val = client.get_int(key); + spin.@value = val; + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + void handle_value_changed() + { + try { + client.set_int(key, (int)spin.@value); + } + catch (Error e) { + warning("%s\n", e.message); + } + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigPeriod.c deja-dup-10.0/libdeja-dup/ConfigPeriod.c --- deja-dup-7.4/libdeja-dup/ConfigPeriod.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigPeriod.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,301 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> +#include <libintl.h> +#include <glib/gi18n-lib.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_CONFIG_CHOICE (deja_dup_config_choice_get_type ()) +#define DEJA_DUP_CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoice)) +#define DEJA_DUP_CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoiceClass)) +#define DEJA_DUP_IS_CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE)) +#define DEJA_DUP_IS_CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_CHOICE)) +#define DEJA_DUP_CONFIG_CHOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoiceClass)) + +typedef struct _DejaDupConfigChoice DejaDupConfigChoice; +typedef struct _DejaDupConfigChoiceClass DejaDupConfigChoiceClass; +typedef struct _DejaDupConfigChoicePrivate DejaDupConfigChoicePrivate; + +#define DEJA_DUP_TYPE_CONFIG_PERIOD (deja_dup_config_period_get_type ()) +#define DEJA_DUP_CONFIG_PERIOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_PERIOD, DejaDupConfigPeriod)) +#define DEJA_DUP_CONFIG_PERIOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_PERIOD, DejaDupConfigPeriodClass)) +#define DEJA_DUP_IS_CONFIG_PERIOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_PERIOD)) +#define DEJA_DUP_IS_CONFIG_PERIOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_PERIOD)) +#define DEJA_DUP_CONFIG_PERIOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_PERIOD, DejaDupConfigPeriodClass)) + +typedef struct _DejaDupConfigPeriod DejaDupConfigPeriod; +typedef struct _DejaDupConfigPeriodClass DejaDupConfigPeriodClass; +typedef struct _DejaDupConfigPeriodPrivate DejaDupConfigPeriodPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigChoice { + DejaDupConfigWidget parent_instance; + DejaDupConfigChoicePrivate * priv; + GtkComboBox* combo; + char* default_val; + gint gconf_col; +}; + +struct _DejaDupConfigChoiceClass { + DejaDupConfigWidgetClass parent_class; + void (*handle_changed) (DejaDupConfigChoice* self); +}; + +struct _DejaDupConfigPeriod { + DejaDupConfigChoice parent_instance; + DejaDupConfigPeriodPrivate * priv; +}; + +struct _DejaDupConfigPeriodClass { + DejaDupConfigChoiceClass parent_class; +}; + + + +GType deja_dup_config_widget_get_type (void); +GType deja_dup_config_choice_get_type (void); +GType deja_dup_config_period_get_type (void); +enum { + DEJA_DUP_CONFIG_PERIOD_DUMMY_PROPERTY +}; +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +DejaDupConfigPeriod* deja_dup_config_period_new (const char* key); +DejaDupConfigPeriod* deja_dup_config_period_construct (GType object_type, const char* key); +DejaDupConfigPeriod* deja_dup_config_period_new (const char* key); +GValue* deja_dup_config_choice_get_current_value (DejaDupConfigChoice* self); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_period_real_handle_changed (DejaDupConfigChoice* base); +static void deja_dup_config_period_real_set_from_config (DejaDupConfigWidget* base); +void deja_dup_config_choice_init (DejaDupConfigChoice* self, GtkTreeModel* model, gint gconf_col); +static GObject * deja_dup_config_period_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_period_parent_class = NULL; + + + +DejaDupConfigPeriod* deja_dup_config_period_construct (GType object_type, const char* key) { + GParameter * __params; + GParameter * __params_it; + DejaDupConfigPeriod * self; + g_return_val_if_fail (key != NULL, NULL); + __params = g_new0 (GParameter, 1); + __params_it = __params; + __params_it->name = "key"; + g_value_init (&__params_it->value, G_TYPE_STRING); + g_value_set_string (&__params_it->value, key); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupConfigPeriod* deja_dup_config_period_new (const char* key) { + return deja_dup_config_period_construct (DEJA_DUP_TYPE_CONFIG_PERIOD, key); +} + + +static void deja_dup_config_period_real_handle_changed (DejaDupConfigChoice* base) { + DejaDupConfigPeriod * self; + GError * _inner_error_; + GValue* val; + gint _tmp0_; + gint intval; + char* _tmp1_; + self = (DejaDupConfigPeriod*) base; + _inner_error_ = NULL; + val = deja_dup_config_choice_get_current_value ((DejaDupConfigChoice*) self); + _tmp0_ = 0; + if (val == NULL) { + _tmp0_ = 1; + } else { + _tmp0_ = g_value_get_int (val); + } + intval = _tmp0_; + { + gconf_client_set_int (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), intval, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch32_g_error; + goto __finally32; + } + } + goto __finally32; + __catch32_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigPeriod.vala:56: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally32: + if (_inner_error_ != NULL) { + (val == NULL) ? NULL : (val = (g_free (val), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + _tmp1_ = NULL; + g_signal_emit_by_name ((DejaDupConfigChoice*) self, "changed", _tmp1_ = g_strdup_printf ("%i", intval)); + _tmp1_ = (g_free (_tmp1_), NULL); + (val == NULL) ? NULL : (val = (g_free (val), NULL)); +} + + +static void deja_dup_config_period_real_set_from_config (DejaDupConfigWidget* base) { + DejaDupConfigPeriod * self; + GError * _inner_error_; + gint confval; + gboolean valid; + GtkTreeIter iter = {0}; + self = (DejaDupConfigPeriod*) base; + _inner_error_ = NULL; + confval = 0; + { + gint _tmp0_; + _tmp0_ = gconf_client_get_int (((DejaDupConfigWidget*) self)->client, deja_dup_config_widget_get_key ((DejaDupConfigWidget*) self), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch33_g_error; + goto __finally33; + } + confval = _tmp0_; + } + goto __finally33; + __catch33_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigPeriod.vala:69: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + return; + } + } + __finally33: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + if (confval < 1) { + confval = 1; + } + valid = FALSE; + valid = gtk_tree_model_get_iter_first (gtk_combo_box_get_model (((DejaDupConfigChoice*) self)->combo), &iter); + while (valid) { + GValue val = {0}; + GValue _tmp2_ = {0}; + GValue _tmp1_ = {0}; + gint intval; + gtk_tree_model_get_value (gtk_combo_box_get_model (((DejaDupConfigChoice*) self)->combo), &iter, ((DejaDupConfigChoice*) self)->gconf_col, &_tmp1_); + val = (_tmp2_ = _tmp1_, G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL, _tmp2_); + intval = g_value_get_int (&val); + if (intval == confval) { + gtk_combo_box_set_active_iter (((DejaDupConfigChoice*) self)->combo, &iter); + G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; + break; + } + valid = gtk_tree_model_iter_next (gtk_combo_box_get_model (((DejaDupConfigChoice*) self)->combo), &iter); + G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; + } + /* If we didn't find the period, user must have set it to something non + standard. Let's add an entry to the combo.*/ + if (!valid) { + GtkListStore* _tmp3_; + GtkListStore* store; + char* _tmp4_; + _tmp3_ = NULL; + store = (_tmp3_ = GTK_LIST_STORE (gtk_combo_box_get_model (((DejaDupConfigChoice*) self)->combo)), (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); + _tmp4_ = NULL; + gtk_list_store_insert_with_values (store, &iter, 0, 0, _tmp4_ = g_strdup_printf (ngettext ("Every %d day", "Every %d days", (gulong) confval), confval), 1, confval, -1); + _tmp4_ = (g_free (_tmp4_), NULL); + gtk_combo_box_set_active_iter (((DejaDupConfigChoice*) self)->combo, &iter); + (store == NULL) ? NULL : (store = (g_object_unref (store), NULL)); + } +} + + +static GObject * deja_dup_config_period_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigPeriodClass * klass; + GObjectClass * parent_class; + DejaDupConfigPeriod * self; + klass = DEJA_DUP_CONFIG_PERIOD_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_PERIOD)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_PERIOD (obj); + { + GtkListStore* store; + GtkTreeIter iter = {0}; + gint i; + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT, NULL); + i = 0; + gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Daily"), 1, 1, -1); + gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Weekly"), 1, 7, -1); + /* Translators: Biweekly is every two weeks*/ + gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Biweekly"), 1, 14, -1); + gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Monthly"), 1, 28, -1); + gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable*) store, 1, GTK_SORT_ASCENDING); + deja_dup_config_choice_init ((DejaDupConfigChoice*) self, (GtkTreeModel*) store, 1); + (store == NULL) ? NULL : (store = (g_object_unref (store), NULL)); + } + return obj; +} + + +static void deja_dup_config_period_class_init (DejaDupConfigPeriodClass * klass) { + deja_dup_config_period_parent_class = g_type_class_peek_parent (klass); + DEJA_DUP_CONFIG_CHOICE_CLASS (klass)->handle_changed = deja_dup_config_period_real_handle_changed; + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_period_real_set_from_config; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_period_constructor; +} + + +static void deja_dup_config_period_instance_init (DejaDupConfigPeriod * self) { +} + + +GType deja_dup_config_period_get_type (void) { + static GType deja_dup_config_period_type_id = 0; + if (deja_dup_config_period_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigPeriodClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_period_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigPeriod), 0, (GInstanceInitFunc) deja_dup_config_period_instance_init, NULL }; + deja_dup_config_period_type_id = g_type_register_static (DEJA_DUP_TYPE_CONFIG_CHOICE, "DejaDupConfigPeriod", &g_define_type_info, 0); + } + return deja_dup_config_period_type_id; +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigPeriod.vala deja-dup-10.0/libdeja-dup/ConfigPeriod.vala --- deja-dup-7.4/libdeja-dup/ConfigPeriod.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigPeriod.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,104 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public class ConfigPeriod : ConfigChoice +{ + public ConfigPeriod(string key) { + this.key = key; + } + + construct { + var store = new Gtk.ListStore(2, typeof(string), typeof(int)); + + Gtk.TreeIter iter; + int i = 0; + + store.insert_with_values(out iter, i++, 0, _("Daily"), 1, 1); + store.insert_with_values(out iter, i++, 0, _("Weekly"), 1, 7); + // Translators: Biweekly is every two weeks + store.insert_with_values(out iter, i++, 0, _("Biweekly"), 1, 14); + store.insert_with_values(out iter, i++, 0, _("Monthly"), 1, 28); + + store.set_sort_column_id(1, Gtk.SortType.ASCENDING); + + init(store, 1); + } + + protected override void handle_changed() + { + Value? val = get_current_value(); + int intval = val == null ? 1 : val.get_int(); + + try { + client.set_int(key, intval); + } + catch (Error e) { + warning("%s\n", e.message); + } + + changed(intval.to_string()); + } + + protected override void set_from_config() + { + int confval; + try { + confval = client.get_int(key); + } + catch (Error e) { + warning("%s\n", e.message); + return; + } + if (confval < 1) + confval = 1; + + bool valid; + Gtk.TreeIter iter; + valid = combo.model.get_iter_first(out iter); + + while (valid) { + Value val; + combo.model.get_value(iter, gconf_col, out val); + int intval = val.get_int(); + + if (intval == confval) { + combo.set_active_iter(iter); + break; + } + valid = combo.model.iter_next(ref iter); + } + + // If we didn't find the period, user must have set it to something non + // standard. Let's add an entry to the combo. + if (!valid) { + var store = (Gtk.ListStore)combo.model; + store.insert_with_values(out iter, 0, 0, + ngettext("Every %d day", "Every %d days", confval).printf(confval), + 1, confval); + combo.set_active_iter(iter); + } + } +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/ConfigWidget.c deja-dup-10.0/libdeja-dup/ConfigWidget.c --- deja-dup-7.4/libdeja-dup/ConfigWidget.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigWidget.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,313 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <stdlib.h> +#include <string.h> +#include <gconf/gconf.h> + + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupConfigWidgetPrivate { + char* _key; + GList* dirs; +}; + + + +GType deja_dup_config_widget_get_type (void); +#define DEJA_DUP_CONFIG_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetPrivate)) +enum { + DEJA_DUP_CONFIG_WIDGET_DUMMY_PROPERTY, + DEJA_DUP_CONFIG_WIDGET_KEY +}; +static void _g_list_free_g_free (GList* self); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +static void _deja_dup_config_widget_set_from_config_gconf_client_notify_func (GConfClient* client, guint cnxn_id, GConfEntry* entry, gpointer self); +void deja_dup_config_widget_watch_key (DejaDupConfigWidget* self, const char* key); +static void deja_dup_config_widget_real_set_from_config (DejaDupConfigWidget* self); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value); +GConfClient* deja_dup_get_gconf_client (void); +static GObject * deja_dup_config_widget_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_config_widget_parent_class = NULL; +static void deja_dup_config_widget_finalize (GObject* obj); +static void deja_dup_config_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_config_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); + + + +static void _g_list_free_g_free (GList* self) { + g_list_foreach (self, (GFunc) g_free, NULL); + g_list_free (self); +} + + +static char* string_substring (const char* self, glong offset, glong len) { + glong string_length; + const char* start; + g_return_val_if_fail (self != NULL, NULL); + string_length = g_utf8_strlen (self, -1); + if (offset < 0) { + offset = string_length + offset; + g_return_val_if_fail (offset >= 0, NULL); + } else { + g_return_val_if_fail (offset <= string_length, NULL); + } + if (len < 0) { + len = string_length - offset; + } + g_return_val_if_fail ((offset + len) <= string_length, NULL); + start = g_utf8_offset_to_pointer (self, offset); + return g_strndup (start, ((gchar*) g_utf8_offset_to_pointer (start, len)) - ((gchar*) start)); +} + + +static glong string_get_length (const char* self) { + g_return_val_if_fail (self != NULL, 0L); + return g_utf8_strlen (self, -1); +} + + +static void _deja_dup_config_widget_set_from_config_gconf_client_notify_func (GConfClient* client, guint cnxn_id, GConfEntry* entry, gpointer self) { + deja_dup_config_widget_set_from_config (self); +} + + +void deja_dup_config_widget_watch_key (DejaDupConfigWidget* self, const char* key) { + GError * _inner_error_; + const char* _tmp0_; + char* dir; + const char* end; + g_return_if_fail (self != NULL); + g_return_if_fail (key != NULL); + _inner_error_ = NULL; + _tmp0_ = NULL; + dir = (_tmp0_ = key, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + end = g_utf8_strrchr (dir, (glong) (-1), (gunichar) '/'); + if (end != NULL) { + char* _tmp1_; + _tmp1_ = NULL; + dir = (_tmp1_ = string_substring (dir, (glong) 0, string_get_length (dir) - string_get_length (end)), dir = (g_free (dir), NULL), _tmp1_); + } + { + const char* _tmp2_; + gconf_client_add_dir (self->client, dir, GCONF_CLIENT_PRELOAD_NONE, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch34_g_error; + goto __finally34; + } + gconf_client_notify_add (self->client, key, _deja_dup_config_widget_set_from_config_gconf_client_notify_func, g_object_ref (self), g_object_unref, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch34_g_error; + goto __finally34; + } + _tmp2_ = NULL; + self->priv->dirs = g_list_prepend (self->priv->dirs, (_tmp2_ = dir, (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_))); + } + goto __finally34; + __catch34_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigWidget.vala:61: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally34: + if (_inner_error_ != NULL) { + dir = (g_free (dir), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + dir = (g_free (dir), NULL); +} + + +static void deja_dup_config_widget_real_set_from_config (DejaDupConfigWidget* self) { + g_return_if_fail (self != NULL); + g_critical ("Type `%s' does not implement abstract method `deja_dup_config_widget_set_from_config'", g_type_name (G_TYPE_FROM_INSTANCE (self))); + return; +} + + +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self) { + DEJA_DUP_CONFIG_WIDGET_GET_CLASS (self)->set_from_config (self); +} + + +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self) { + g_return_val_if_fail (self != NULL, NULL); + return self->priv->_key; +} + + +static void deja_dup_config_widget_set_key (DejaDupConfigWidget* self, const char* value) { + char* _tmp2_; + const char* _tmp1_; + g_return_if_fail (self != NULL); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_key = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->_key = (g_free (self->priv->_key), NULL), _tmp2_); + g_object_notify ((GObject *) self, "key"); +} + + +static GObject * deja_dup_config_widget_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupConfigWidgetClass * klass; + GObjectClass * parent_class; + DejaDupConfigWidget * self; + klass = DEJA_DUP_CONFIG_WIDGET_CLASS (g_type_class_peek (DEJA_DUP_TYPE_CONFIG_WIDGET)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_CONFIG_WIDGET (obj); + { + GConfClient* _tmp0_; + _tmp0_ = NULL; + self->client = (_tmp0_ = deja_dup_get_gconf_client (), (self->client == NULL) ? NULL : (self->client = (g_object_unref (self->client), NULL)), _tmp0_); + if (self->priv->_key != NULL) { + deja_dup_config_widget_watch_key (self, self->priv->_key); + } + } + return obj; +} + + +static void deja_dup_config_widget_class_init (DejaDupConfigWidgetClass * klass) { + deja_dup_config_widget_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupConfigWidgetPrivate)); + DEJA_DUP_CONFIG_WIDGET_CLASS (klass)->set_from_config = deja_dup_config_widget_real_set_from_config; + G_OBJECT_CLASS (klass)->get_property = deja_dup_config_widget_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_config_widget_set_property; + G_OBJECT_CLASS (klass)->constructor = deja_dup_config_widget_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_config_widget_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_CONFIG_WIDGET_KEY, g_param_spec_string ("key", "key", "key", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); +} + + +static void deja_dup_config_widget_instance_init (DejaDupConfigWidget * self) { + self->priv = DEJA_DUP_CONFIG_WIDGET_GET_PRIVATE (self); + self->priv->dirs = NULL; +} + + +static void deja_dup_config_widget_finalize (GObject* obj) { + DejaDupConfigWidget * self; + GError * _inner_error_; + self = DEJA_DUP_CONFIG_WIDGET (obj); + _inner_error_ = NULL; + { + { + GList* dir_collection; + GList* dir_it; + dir_collection = self->priv->dirs; + for (dir_it = dir_collection; dir_it != NULL; dir_it = dir_it->next) { + const char* _tmp1_; + char* dir; + _tmp1_ = NULL; + dir = (_tmp1_ = (const char*) dir_it->data, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)); + { + { + gconf_client_remove_dir (self->client, dir, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch35_g_error; + goto __finally35; + } + } + goto __finally35; + __catch35_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("ConfigWidget.vala:44: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally35: + if (_inner_error_ != NULL) { + dir = (g_free (dir), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + } + dir = (g_free (dir), NULL); + } + } + } + } + self->priv->_key = (g_free (self->priv->_key), NULL); + (self->priv->dirs == NULL) ? NULL : (self->priv->dirs = (_g_list_free_g_free (self->priv->dirs), NULL)); + (self->client == NULL) ? NULL : (self->client = (g_object_unref (self->client), NULL)); + G_OBJECT_CLASS (deja_dup_config_widget_parent_class)->finalize (obj); +} + + +GType deja_dup_config_widget_get_type (void) { + static GType deja_dup_config_widget_type_id = 0; + if (deja_dup_config_widget_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupConfigWidgetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_config_widget_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupConfigWidget), 0, (GInstanceInitFunc) deja_dup_config_widget_instance_init, NULL }; + deja_dup_config_widget_type_id = g_type_register_static (GTK_TYPE_EVENT_BOX, "DejaDupConfigWidget", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + } + return deja_dup_config_widget_type_id; +} + + +static void deja_dup_config_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupConfigWidget * self; + gpointer boxed; + self = DEJA_DUP_CONFIG_WIDGET (object); + switch (property_id) { + case DEJA_DUP_CONFIG_WIDGET_KEY: + g_value_set_string (value, deja_dup_config_widget_get_key (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_config_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupConfigWidget * self; + self = DEJA_DUP_CONFIG_WIDGET (object); + switch (property_id) { + case DEJA_DUP_CONFIG_WIDGET_KEY: + deja_dup_config_widget_set_key (self, g_value_get_string (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ConfigWidget.vala deja-dup-10.0/libdeja-dup/ConfigWidget.vala --- deja-dup-7.4/libdeja-dup/ConfigWidget.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ConfigWidget.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,69 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public abstract class ConfigWidget : Gtk.EventBox +{ + public string key {get; construct;} + + List<string> dirs = null; + protected GConf.Client client; + construct { + client = DejaDup.get_gconf_client(); + + if (key != null) + watch_key(key); + } + + ~ConfigWidget() + { + foreach (string dir in dirs) { + try { + client.remove_dir(dir); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + } + + protected void watch_key(string key) + { + string dir = key; + weak string end = dir.rchr(-1, '/'); + if (end != null) + dir = dir.substring(0, dir.length - end.length); + try { + client.add_dir(dir, GConf.ClientPreloadType.NONE); + client.notify_add(key, set_from_config); + dirs.prepend(dir); + } + catch (Error e) { + warning("%s\n", e.message); + } + } + + protected abstract void set_from_config(); +} + +} + diff -Nru deja-dup-7.4/libdeja-dup/deja-dup.h deja-dup-10.0/libdeja-dup/deja-dup.h --- deja-dup-7.4/libdeja-dup/deja-dup.h 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/deja-dup.h 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,826 @@ + +#ifndef __DEJA_DUP_H__ +#define __DEJA_DUP_H__ + +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gtk/gtk.h> +#include <gconf/gconf-client.h> +#include <gio/gio.h> + +G_BEGIN_DECLS + + +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; +typedef struct _DejaDupBackendPrivate DejaDupBackendPrivate; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +#define DEJA_DUP_TYPE_BACKEND_FILE (deja_dup_backend_file_get_type ()) +#define DEJA_DUP_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFile)) +#define DEJA_DUP_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) +#define DEJA_DUP_IS_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_FILE)) +#define DEJA_DUP_IS_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_FILE)) +#define DEJA_DUP_BACKEND_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_FILE, DejaDupBackendFileClass)) + +typedef struct _DejaDupBackendFile DejaDupBackendFile; +typedef struct _DejaDupBackendFileClass DejaDupBackendFileClass; +typedef struct _DejaDupBackendFilePrivate DejaDupBackendFilePrivate; + +#define DEJA_DUP_TYPE_BACKEND_S3 (deja_dup_backend_s3_get_type ()) +#define DEJA_DUP_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3)) +#define DEJA_DUP_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) +#define DEJA_DUP_IS_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_IS_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_BACKEND_S3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) + +typedef struct _DejaDupBackendS3 DejaDupBackendS3; +typedef struct _DejaDupBackendS3Class DejaDupBackendS3Class; +typedef struct _DejaDupBackendS3Private DejaDupBackendS3Private; + +#define DEJA_DUP_TYPE_BUTTON_CONNECT (deja_dup_button_connect_get_type ()) +#define DEJA_DUP_BUTTON_CONNECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnect)) +#define DEJA_DUP_BUTTON_CONNECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnectClass)) +#define DEJA_DUP_IS_BUTTON_CONNECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT)) +#define DEJA_DUP_IS_BUTTON_CONNECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BUTTON_CONNECT)) +#define DEJA_DUP_BUTTON_CONNECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BUTTON_CONNECT, DejaDupButtonConnectClass)) + +typedef struct _DejaDupButtonConnect DejaDupButtonConnect; +typedef struct _DejaDupButtonConnectClass DejaDupButtonConnectClass; +typedef struct _DejaDupButtonConnectPrivate DejaDupButtonConnectPrivate; + +#define DEJA_DUP_TYPE_CONFIG_WIDGET (deja_dup_config_widget_get_type ()) +#define DEJA_DUP_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidget)) +#define DEJA_DUP_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) +#define DEJA_DUP_IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_WIDGET)) +#define DEJA_DUP_CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_WIDGET, DejaDupConfigWidgetClass)) + +typedef struct _DejaDupConfigWidget DejaDupConfigWidget; +typedef struct _DejaDupConfigWidgetClass DejaDupConfigWidgetClass; +typedef struct _DejaDupConfigWidgetPrivate DejaDupConfigWidgetPrivate; + +#define DEJA_DUP_TYPE_TOGGLABLE (deja_dup_togglable_get_type ()) +#define DEJA_DUP_TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_TOGGLABLE, DejaDupTogglable)) +#define DEJA_DUP_IS_TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_TOGGLABLE)) +#define DEJA_DUP_TOGGLABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), DEJA_DUP_TYPE_TOGGLABLE, DejaDupTogglableIface)) + +typedef struct _DejaDupTogglable DejaDupTogglable; +typedef struct _DejaDupTogglableIface DejaDupTogglableIface; + +#define DEJA_DUP_TYPE_CONFIG_BOOL (deja_dup_config_bool_get_type ()) +#define DEJA_DUP_CONFIG_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_BOOL, DejaDupConfigBool)) +#define DEJA_DUP_CONFIG_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_BOOL, DejaDupConfigBoolClass)) +#define DEJA_DUP_IS_CONFIG_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_BOOL)) +#define DEJA_DUP_IS_CONFIG_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_BOOL)) +#define DEJA_DUP_CONFIG_BOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_BOOL, DejaDupConfigBoolClass)) + +typedef struct _DejaDupConfigBool DejaDupConfigBool; +typedef struct _DejaDupConfigBoolClass DejaDupConfigBoolClass; +typedef struct _DejaDupConfigBoolPrivate DejaDupConfigBoolPrivate; + +#define DEJA_DUP_TYPE_CONFIG_CHOICE (deja_dup_config_choice_get_type ()) +#define DEJA_DUP_CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoice)) +#define DEJA_DUP_CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoiceClass)) +#define DEJA_DUP_IS_CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE)) +#define DEJA_DUP_IS_CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_CHOICE)) +#define DEJA_DUP_CONFIG_CHOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_CHOICE, DejaDupConfigChoiceClass)) + +typedef struct _DejaDupConfigChoice DejaDupConfigChoice; +typedef struct _DejaDupConfigChoiceClass DejaDupConfigChoiceClass; +typedef struct _DejaDupConfigChoicePrivate DejaDupConfigChoicePrivate; + +#define DEJA_DUP_TYPE_CONFIG_ENTRY (deja_dup_config_entry_get_type ()) +#define DEJA_DUP_CONFIG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_ENTRY, DejaDupConfigEntry)) +#define DEJA_DUP_CONFIG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_ENTRY, DejaDupConfigEntryClass)) +#define DEJA_DUP_IS_CONFIG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_ENTRY)) +#define DEJA_DUP_IS_CONFIG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_ENTRY)) +#define DEJA_DUP_CONFIG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_ENTRY, DejaDupConfigEntryClass)) + +typedef struct _DejaDupConfigEntry DejaDupConfigEntry; +typedef struct _DejaDupConfigEntryClass DejaDupConfigEntryClass; +typedef struct _DejaDupConfigEntryPrivate DejaDupConfigEntryPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL (deja_dup_config_label_get_type ()) +#define DEJA_DUP_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabel)) +#define DEJA_DUP_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) +#define DEJA_DUP_IS_CONFIG_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_IS_CONFIG_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL)) +#define DEJA_DUP_CONFIG_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL, DejaDupConfigLabelClass)) + +typedef struct _DejaDupConfigLabel DejaDupConfigLabel; +typedef struct _DejaDupConfigLabelClass DejaDupConfigLabelClass; +typedef struct _DejaDupConfigLabelPrivate DejaDupConfigLabelPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL_BOOL (deja_dup_config_label_bool_get_type ()) +#define DEJA_DUP_CONFIG_LABEL_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL, DejaDupConfigLabelBool)) +#define DEJA_DUP_CONFIG_LABEL_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL, DejaDupConfigLabelBoolClass)) +#define DEJA_DUP_IS_CONFIG_LABEL_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL)) +#define DEJA_DUP_IS_CONFIG_LABEL_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL)) +#define DEJA_DUP_CONFIG_LABEL_BOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_BOOL, DejaDupConfigLabelBoolClass)) + +typedef struct _DejaDupConfigLabelBool DejaDupConfigLabelBool; +typedef struct _DejaDupConfigLabelBoolClass DejaDupConfigLabelBoolClass; +typedef struct _DejaDupConfigLabelBoolPrivate DejaDupConfigLabelBoolPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL_LIST (deja_dup_config_label_list_get_type ()) +#define DEJA_DUP_CONFIG_LABEL_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LIST, DejaDupConfigLabelList)) +#define DEJA_DUP_CONFIG_LABEL_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LIST, DejaDupConfigLabelListClass)) +#define DEJA_DUP_IS_CONFIG_LABEL_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LIST)) +#define DEJA_DUP_IS_CONFIG_LABEL_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LIST)) +#define DEJA_DUP_CONFIG_LABEL_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LIST, DejaDupConfigLabelListClass)) + +typedef struct _DejaDupConfigLabelList DejaDupConfigLabelList; +typedef struct _DejaDupConfigLabelListClass DejaDupConfigLabelListClass; +typedef struct _DejaDupConfigLabelListPrivate DejaDupConfigLabelListPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION (deja_dup_config_label_location_get_type ()) +#define DEJA_DUP_CONFIG_LABEL_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION, DejaDupConfigLabelLocation)) +#define DEJA_DUP_CONFIG_LABEL_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION, DejaDupConfigLabelLocationClass)) +#define DEJA_DUP_IS_CONFIG_LABEL_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION)) +#define DEJA_DUP_IS_CONFIG_LABEL_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION)) +#define DEJA_DUP_CONFIG_LABEL_LOCATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LABEL_LOCATION, DejaDupConfigLabelLocationClass)) + +typedef struct _DejaDupConfigLabelLocation DejaDupConfigLabelLocation; +typedef struct _DejaDupConfigLabelLocationClass DejaDupConfigLabelLocationClass; +typedef struct _DejaDupConfigLabelLocationPrivate DejaDupConfigLabelLocationPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LIST (deja_dup_config_list_get_type ()) +#define DEJA_DUP_CONFIG_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LIST, DejaDupConfigList)) +#define DEJA_DUP_CONFIG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LIST, DejaDupConfigListClass)) +#define DEJA_DUP_IS_CONFIG_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LIST)) +#define DEJA_DUP_IS_CONFIG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LIST)) +#define DEJA_DUP_CONFIG_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LIST, DejaDupConfigListClass)) + +typedef struct _DejaDupConfigList DejaDupConfigList; +typedef struct _DejaDupConfigListClass DejaDupConfigListClass; +typedef struct _DejaDupConfigListPrivate DejaDupConfigListPrivate; + +#define DEJA_DUP_TYPE_CONFIG_LOCATION (deja_dup_config_location_get_type ()) +#define DEJA_DUP_CONFIG_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocation)) +#define DEJA_DUP_CONFIG_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationClass)) +#define DEJA_DUP_IS_CONFIG_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION)) +#define DEJA_DUP_IS_CONFIG_LOCATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_LOCATION)) +#define DEJA_DUP_CONFIG_LOCATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_LOCATION, DejaDupConfigLocationClass)) + +typedef struct _DejaDupConfigLocation DejaDupConfigLocation; +typedef struct _DejaDupConfigLocationClass DejaDupConfigLocationClass; +typedef struct _DejaDupConfigLocationPrivate DejaDupConfigLocationPrivate; + +#define DEJA_DUP_TYPE_CONFIG_NUMBER (deja_dup_config_number_get_type ()) +#define DEJA_DUP_CONFIG_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_NUMBER, DejaDupConfigNumber)) +#define DEJA_DUP_CONFIG_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_NUMBER, DejaDupConfigNumberClass)) +#define DEJA_DUP_IS_CONFIG_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_NUMBER)) +#define DEJA_DUP_IS_CONFIG_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_NUMBER)) +#define DEJA_DUP_CONFIG_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_NUMBER, DejaDupConfigNumberClass)) + +typedef struct _DejaDupConfigNumber DejaDupConfigNumber; +typedef struct _DejaDupConfigNumberClass DejaDupConfigNumberClass; +typedef struct _DejaDupConfigNumberPrivate DejaDupConfigNumberPrivate; + +#define DEJA_DUP_TYPE_CONFIG_PERIOD (deja_dup_config_period_get_type ()) +#define DEJA_DUP_CONFIG_PERIOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_CONFIG_PERIOD, DejaDupConfigPeriod)) +#define DEJA_DUP_CONFIG_PERIOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_CONFIG_PERIOD, DejaDupConfigPeriodClass)) +#define DEJA_DUP_IS_CONFIG_PERIOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_CONFIG_PERIOD)) +#define DEJA_DUP_IS_CONFIG_PERIOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_CONFIG_PERIOD)) +#define DEJA_DUP_CONFIG_PERIOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_CONFIG_PERIOD, DejaDupConfigPeriodClass)) + +typedef struct _DejaDupConfigPeriod DejaDupConfigPeriod; +typedef struct _DejaDupConfigPeriodClass DejaDupConfigPeriodClass; +typedef struct _DejaDupConfigPeriodPrivate DejaDupConfigPeriodPrivate; + +#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ()) +#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity)) +#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) +#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) + +typedef struct _DejaDupDuplicity DejaDupDuplicity; +typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass; +typedef struct _DejaDupDuplicityPrivate DejaDupDuplicityPrivate; + +#define DEJA_DUP_DUPLICITY_TYPE_STATE (deja_dup_duplicity_state_get_type ()) + +#define DEJA_DUP_TYPE_DUPLICITY_INFO (deja_dup_duplicity_info_get_type ()) +#define DEJA_DUP_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfo)) +#define DEJA_DUP_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) +#define DEJA_DUP_IS_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO)) +#define DEJA_DUP_IS_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO)) +#define DEJA_DUP_DUPLICITY_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) + +typedef struct _DejaDupDuplicityInfo DejaDupDuplicityInfo; +typedef struct _DejaDupDuplicityInfoClass DejaDupDuplicityInfoClass; +typedef struct _DejaDupDuplicityInfoPrivate DejaDupDuplicityInfoPrivate; + +#define DEJA_DUP_TYPE_DUPLICITY_INSTANCE (deja_dup_duplicity_instance_get_type ()) +#define DEJA_DUP_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstance)) +#define DEJA_DUP_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) +#define DEJA_DUP_IS_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) +#define DEJA_DUP_IS_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) +#define DEJA_DUP_DUPLICITY_INSTANCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) + +typedef struct _DejaDupDuplicityInstance DejaDupDuplicityInstance; +typedef struct _DejaDupDuplicityInstanceClass DejaDupDuplicityInstanceClass; +typedef struct _DejaDupDuplicityInstancePrivate DejaDupDuplicityInstancePrivate; + +#define DEJA_DUP_TYPE_OPERATION (deja_dup_operation_get_type ()) +#define DEJA_DUP_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperation)) +#define DEJA_DUP_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) +#define DEJA_DUP_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) + +typedef struct _DejaDupOperation DejaDupOperation; +typedef struct _DejaDupOperationClass DejaDupOperationClass; +typedef struct _DejaDupOperationPrivate DejaDupOperationPrivate; + +#define DEJA_DUP_TYPE_OPERATION_BACKUP (deja_dup_operation_backup_get_type ()) +#define DEJA_DUP_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackup)) +#define DEJA_DUP_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass)) +#define DEJA_DUP_IS_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP)) +#define DEJA_DUP_IS_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP)) +#define DEJA_DUP_OPERATION_BACKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass)) + +typedef struct _DejaDupOperationBackup DejaDupOperationBackup; +typedef struct _DejaDupOperationBackupClass DejaDupOperationBackupClass; +typedef struct _DejaDupOperationBackupPrivate DejaDupOperationBackupPrivate; + +#define DEJA_DUP_TYPE_OPERATION_RESTORE (deja_dup_operation_restore_get_type ()) +#define DEJA_DUP_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestore)) +#define DEJA_DUP_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass)) +#define DEJA_DUP_IS_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE)) +#define DEJA_DUP_IS_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE)) +#define DEJA_DUP_OPERATION_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass)) + +typedef struct _DejaDupOperationRestore DejaDupOperationRestore; +typedef struct _DejaDupOperationRestoreClass DejaDupOperationRestoreClass; +typedef struct _DejaDupOperationRestorePrivate DejaDupOperationRestorePrivate; + +#define DEJA_DUP_TYPE_OPERATION_STATUS (deja_dup_operation_status_get_type ()) +#define DEJA_DUP_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatus)) +#define DEJA_DUP_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass)) +#define DEJA_DUP_IS_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_STATUS)) +#define DEJA_DUP_IS_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_STATUS)) +#define DEJA_DUP_OPERATION_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass)) + +typedef struct _DejaDupOperationStatus DejaDupOperationStatus; +typedef struct _DejaDupOperationStatusClass DejaDupOperationStatusClass; +typedef struct _DejaDupOperationStatusPrivate DejaDupOperationStatusPrivate; + +#define DEJA_DUP_TYPE_RECURSIVE_OP (deja_dup_recursive_op_get_type ()) +#define DEJA_DUP_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOp)) +#define DEJA_DUP_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) +#define DEJA_DUP_IS_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_IS_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_RECURSIVE_OP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) + +typedef struct _DejaDupRecursiveOp DejaDupRecursiveOp; +typedef struct _DejaDupRecursiveOpClass DejaDupRecursiveOpClass; +typedef struct _DejaDupRecursiveOpPrivate DejaDupRecursiveOpPrivate; + +#define DEJA_DUP_TYPE_RECURSIVE_DELETE (deja_dup_recursive_delete_get_type ()) +#define DEJA_DUP_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDelete)) +#define DEJA_DUP_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) +#define DEJA_DUP_IS_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE)) +#define DEJA_DUP_IS_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE)) +#define DEJA_DUP_RECURSIVE_DELETE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) + +typedef struct _DejaDupRecursiveDelete DejaDupRecursiveDelete; +typedef struct _DejaDupRecursiveDeleteClass DejaDupRecursiveDeleteClass; +typedef struct _DejaDupRecursiveDeletePrivate DejaDupRecursiveDeletePrivate; + +#define DEJA_DUP_TYPE_RECURSIVE_MOVE (deja_dup_recursive_move_get_type ()) +#define DEJA_DUP_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMove)) +#define DEJA_DUP_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) +#define DEJA_DUP_IS_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE)) +#define DEJA_DUP_IS_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE)) +#define DEJA_DUP_RECURSIVE_MOVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) + +typedef struct _DejaDupRecursiveMove DejaDupRecursiveMove; +typedef struct _DejaDupRecursiveMoveClass DejaDupRecursiveMoveClass; +typedef struct _DejaDupRecursiveMovePrivate DejaDupRecursiveMovePrivate; + +#define DEJA_DUP_TYPE_TOGGLE_GROUP (deja_dup_toggle_group_get_type ()) +#define DEJA_DUP_TOGGLE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_TOGGLE_GROUP, DejaDupToggleGroup)) +#define DEJA_DUP_TOGGLE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_TOGGLE_GROUP, DejaDupToggleGroupClass)) +#define DEJA_DUP_IS_TOGGLE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_TOGGLE_GROUP)) +#define DEJA_DUP_IS_TOGGLE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_TOGGLE_GROUP)) +#define DEJA_DUP_TOGGLE_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_TOGGLE_GROUP, DejaDupToggleGroupClass)) + +typedef struct _DejaDupToggleGroup DejaDupToggleGroup; +typedef struct _DejaDupToggleGroupClass DejaDupToggleGroupClass; +typedef struct _DejaDupToggleGroupPrivate DejaDupToggleGroupPrivate; + +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; + +struct _DejaDupBackend { + GObject parent_instance; + DejaDupBackendPrivate * priv; +}; + +struct _DejaDupBackendClass { + GObjectClass parent_class; + char* (*get_location) (DejaDupBackend* self, GError** error); + char* (*get_location_pretty) (DejaDupBackend* self, GError** error); + void (*get_envp) (DejaDupBackend* self, GError** error); + void (*add_argv) (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); + void (*ask_password) (DejaDupBackend* self); + DejaDupBackend* (*clone) (DejaDupBackend* self); +}; + +struct _DejaDupBackendFile { + DejaDupBackend parent_instance; + DejaDupBackendFilePrivate * priv; +}; + +struct _DejaDupBackendFileClass { + DejaDupBackendClass parent_class; +}; + +struct _DejaDupBackendS3 { + DejaDupBackend parent_instance; + DejaDupBackendS3Private * priv; +}; + +struct _DejaDupBackendS3Class { + DejaDupBackendClass parent_class; +}; + +struct _DejaDupButtonConnect { + GtkButton parent_instance; + DejaDupButtonConnectPrivate * priv; +}; + +struct _DejaDupButtonConnectClass { + GtkButtonClass parent_class; +}; + +struct _DejaDupConfigWidget { + GtkEventBox parent_instance; + DejaDupConfigWidgetPrivate * priv; + GConfClient* client; +}; + +struct _DejaDupConfigWidgetClass { + GtkEventBoxClass parent_class; + void (*set_from_config) (DejaDupConfigWidget* self); +}; + +struct _DejaDupTogglableIface { + GTypeInterface parent_iface; + gboolean (*get_active) (DejaDupTogglable* self); +}; + +struct _DejaDupConfigBool { + DejaDupConfigWidget parent_instance; + DejaDupConfigBoolPrivate * priv; +}; + +struct _DejaDupConfigBoolClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigChoice { + DejaDupConfigWidget parent_instance; + DejaDupConfigChoicePrivate * priv; + GtkComboBox* combo; + char* default_val; + gint gconf_col; +}; + +struct _DejaDupConfigChoiceClass { + DejaDupConfigWidgetClass parent_class; + void (*handle_changed) (DejaDupConfigChoice* self); +}; + +struct _DejaDupConfigEntry { + DejaDupConfigWidget parent_instance; + DejaDupConfigEntryPrivate * priv; +}; + +struct _DejaDupConfigEntryClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigLabel { + DejaDupConfigWidget parent_instance; + DejaDupConfigLabelPrivate * priv; + GtkLabel* label; +}; + +struct _DejaDupConfigLabelClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigLabelBool { + DejaDupConfigLabel parent_instance; + DejaDupConfigLabelBoolPrivate * priv; +}; + +struct _DejaDupConfigLabelBoolClass { + DejaDupConfigLabelClass parent_class; +}; + +struct _DejaDupConfigLabelList { + DejaDupConfigLabel parent_instance; + DejaDupConfigLabelListPrivate * priv; +}; + +struct _DejaDupConfigLabelListClass { + DejaDupConfigLabelClass parent_class; +}; + +struct _DejaDupConfigLabelLocation { + DejaDupConfigLabel parent_instance; + DejaDupConfigLabelLocationPrivate * priv; +}; + +struct _DejaDupConfigLabelLocationClass { + DejaDupConfigLabelClass parent_class; +}; + +struct _DejaDupConfigList { + DejaDupConfigWidget parent_instance; + DejaDupConfigListPrivate * priv; +}; + +struct _DejaDupConfigListClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigLocation { + DejaDupConfigWidget parent_instance; + DejaDupConfigLocationPrivate * priv; +}; + +struct _DejaDupConfigLocationClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigNumber { + DejaDupConfigWidget parent_instance; + DejaDupConfigNumberPrivate * priv; +}; + +struct _DejaDupConfigNumberClass { + DejaDupConfigWidgetClass parent_class; +}; + +struct _DejaDupConfigPeriod { + DejaDupConfigChoice parent_instance; + DejaDupConfigPeriodPrivate * priv; +}; + +struct _DejaDupConfigPeriodClass { + DejaDupConfigChoiceClass parent_class; +}; + +struct _DejaDupDuplicity { + GObject parent_instance; + DejaDupDuplicityPrivate * priv; +}; + +struct _DejaDupDuplicityClass { + GObjectClass parent_class; + void (*start) (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp); + void (*process_error) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); + void (*process_info) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); + void (*process_warning) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); +}; + +typedef enum { + DEJA_DUP_DUPLICITY_STATE_NORMAL, + DEJA_DUP_DUPLICITY_STATE_DRY_RUN, + DEJA_DUP_DUPLICITY_STATE_STATUS, + DEJA_DUP_DUPLICITY_STATE_CLEANUP +} DejaDupDuplicityState; + +struct _DejaDupDuplicityInfo { + GObject parent_instance; + DejaDupDuplicityInfoPrivate * priv; +}; + +struct _DejaDupDuplicityInfoClass { + GObjectClass parent_class; +}; + +struct _DejaDupDuplicityInstance { + GObject parent_instance; + DejaDupDuplicityInstancePrivate * priv; +}; + +struct _DejaDupDuplicityInstanceClass { + GObjectClass parent_class; + void (*start) (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); +}; + +struct _DejaDupOperation { + GObject parent_instance; + DejaDupOperationPrivate * priv; + DejaDupDuplicity* dup; + DejaDupBackend* backend; + char* passphrase; +}; + +struct _DejaDupOperationClass { + GObjectClass parent_class; + void (*start) (DejaDupOperation* self, GError** error); + void (*connect_to_dup) (DejaDupOperation* self); + void (*operation_finished) (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); + GList* (*make_argv) (DejaDupOperation* self, GError** error); +}; + +typedef enum { + DEJA_DUP_BACKUP_ERROR_BAD_CONFIG +} DejaDupBackupError; +#define DEJA_DUP_BACKUP_ERROR deja_dup_backup_error_quark () +struct _DejaDupOperationBackup { + DejaDupOperation parent_instance; + DejaDupOperationBackupPrivate * priv; +}; + +struct _DejaDupOperationBackupClass { + DejaDupOperationClass parent_class; +}; + +struct _DejaDupOperationRestore { + DejaDupOperation parent_instance; + DejaDupOperationRestorePrivate * priv; +}; + +struct _DejaDupOperationRestoreClass { + DejaDupOperationClass parent_class; +}; + +struct _DejaDupOperationStatus { + DejaDupOperation parent_instance; + DejaDupOperationStatusPrivate * priv; +}; + +struct _DejaDupOperationStatusClass { + DejaDupOperationClass parent_class; +}; + +struct _DejaDupRecursiveOp { + GObject parent_instance; + DejaDupRecursiveOpPrivate * priv; + GFileType src_type; + GFileType dst_type; +}; + +struct _DejaDupRecursiveOpClass { + GObjectClass parent_class; + void (*handle_file) (DejaDupRecursiveOp* self); + void (*handle_dir) (DejaDupRecursiveOp* self); + void (*finish_dir) (DejaDupRecursiveOp* self); + DejaDupRecursiveOp* (*clone_for_info) (DejaDupRecursiveOp* self, GFileInfo* info); +}; + +struct _DejaDupRecursiveDelete { + DejaDupRecursiveOp parent_instance; + DejaDupRecursiveDeletePrivate * priv; +}; + +struct _DejaDupRecursiveDeleteClass { + DejaDupRecursiveOpClass parent_class; +}; + +/** + * Recursively moves one directory into another, merging files. And by merge, + * I mean it overwrites. It skips any files it can't move and reports an + * error, but keeps going. + * + * This is not optimized for remote files. It's mostly async, but it does the + * occasional sync operation. + */ +struct _DejaDupRecursiveMove { + DejaDupRecursiveOp parent_instance; + DejaDupRecursiveMovePrivate * priv; +}; + +struct _DejaDupRecursiveMoveClass { + DejaDupRecursiveOpClass parent_class; +}; + +struct _DejaDupToggleGroup { + GObject parent_instance; + DejaDupToggleGroupPrivate * priv; +}; + +struct _DejaDupToggleGroupClass { + GObjectClass parent_class; +}; + + +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_mode_get_type (void); +char* deja_dup_backend_get_location (DejaDupBackend* self, GError** error); +char* deja_dup_backend_get_location_pretty (DejaDupBackend* self, GError** error); +void deja_dup_backend_get_envp (DejaDupBackend* self, GError** error); +void deja_dup_backend_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); +void deja_dup_backend_ask_password (DejaDupBackend* self); +DejaDupBackend* deja_dup_backend_clone (DejaDupBackend* self); +DejaDupBackend* deja_dup_backend_get_default (GtkWindow* win, GError** error); +GtkWindow* deja_dup_backend_get_toplevel (DejaDupBackend* self); +#define DEJA_DUP_FILE_PATH_KEY "/apps/deja-dup/file/path" +GType deja_dup_backend_file_get_type (void); +DejaDupBackendFile* deja_dup_backend_file_new (GtkWindow* win); +DejaDupBackendFile* deja_dup_backend_file_construct (GType object_type, GtkWindow* win); +#define DEJA_DUP_S3_ID_KEY "/apps/deja-dup/s3/id" +#define DEJA_DUP_S3_BUCKET_KEY "/apps/deja-dup/s3/bucket" +#define DEJA_DUP_S3_FOLDER_KEY "/apps/deja-dup/s3/folder" +GType deja_dup_backend_s3_get_type (void); +DejaDupBackendS3* deja_dup_backend_s3_new (GtkWindow* win); +DejaDupBackendS3* deja_dup_backend_s3_construct (GType object_type, GtkWindow* win); +gboolean deja_dup_backend_s3_bump_bucket (DejaDupBackendS3* self); +GType deja_dup_button_connect_get_type (void); +void deja_dup_button_connect_run_connect_server_dialog (GtkWindow* parent); +DejaDupButtonConnect* deja_dup_button_connect_new (void); +DejaDupButtonConnect* deja_dup_button_connect_construct (GType object_type); +GType deja_dup_config_widget_get_type (void); +GType deja_dup_togglable_get_type (void); +GType deja_dup_config_bool_get_type (void); +DejaDupConfigBool* deja_dup_config_bool_new (const char* key, const char* label); +DejaDupConfigBool* deja_dup_config_bool_construct (GType object_type, const char* key, const char* label); +const char* deja_dup_config_bool_get_label (DejaDupConfigBool* self); +GType deja_dup_config_choice_get_type (void); +void deja_dup_config_choice_init (DejaDupConfigChoice* self, GtkTreeModel* model, gint gconf_col); +GValue* deja_dup_config_choice_get_current_value (DejaDupConfigChoice* self); +void deja_dup_config_choice_handle_changed (DejaDupConfigChoice* self); +DejaDupConfigChoice* deja_dup_config_choice_new (void); +DejaDupConfigChoice* deja_dup_config_choice_construct (GType object_type); +GType deja_dup_config_entry_get_type (void); +DejaDupConfigEntry* deja_dup_config_entry_new (const char* key); +DejaDupConfigEntry* deja_dup_config_entry_construct (GType object_type, const char* key); +GType deja_dup_config_label_get_type (void); +DejaDupConfigLabel* deja_dup_config_label_new (const char* key); +DejaDupConfigLabel* deja_dup_config_label_construct (GType object_type, const char* key); +GType deja_dup_config_label_bool_get_type (void); +DejaDupConfigLabelBool* deja_dup_config_label_bool_new (const char* key); +DejaDupConfigLabelBool* deja_dup_config_label_bool_construct (GType object_type, const char* key); +GType deja_dup_config_label_list_get_type (void); +DejaDupConfigLabelList* deja_dup_config_label_list_new (const char* key); +DejaDupConfigLabelList* deja_dup_config_label_list_construct (GType object_type, const char* key); +GType deja_dup_config_label_location_get_type (void); +DejaDupConfigLabelLocation* deja_dup_config_label_location_new (void); +DejaDupConfigLabelLocation* deja_dup_config_label_location_construct (GType object_type); +GType deja_dup_config_list_get_type (void); +DejaDupConfigList* deja_dup_config_list_new (const char* key); +DejaDupConfigList* deja_dup_config_list_construct (GType object_type, const char* key); +GType deja_dup_config_location_get_type (void); +DejaDupConfigLocation* deja_dup_config_location_new (void); +DejaDupConfigLocation* deja_dup_config_location_construct (GType object_type); +gboolean deja_dup_config_location_get_is_s3 (DejaDupConfigLocation* self); +GType deja_dup_config_number_get_type (void); +DejaDupConfigNumber* deja_dup_config_number_new (const char* key, gint lower_bound, gint upper_bound); +DejaDupConfigNumber* deja_dup_config_number_construct (GType object_type, const char* key, gint lower_bound, gint upper_bound); +gint deja_dup_config_number_get_lower_bound (DejaDupConfigNumber* self); +gint deja_dup_config_number_get_upper_bound (DejaDupConfigNumber* self); +GType deja_dup_config_period_get_type (void); +DejaDupConfigPeriod* deja_dup_config_period_new (const char* key); +DejaDupConfigPeriod* deja_dup_config_period_construct (GType object_type, const char* key); +void deja_dup_config_widget_watch_key (DejaDupConfigWidget* self, const char* key); +void deja_dup_config_widget_set_from_config (DejaDupConfigWidget* self); +const char* deja_dup_config_widget_get_key (DejaDupConfigWidget* self); +GType deja_dup_duplicity_get_type (void); +GType deja_dup_duplicity_state_get_type (void); +#define DEJA_DUP_DUPLICITY_ERROR_RESTORE_DIR_NOT_FOUND 19 +#define DEJA_DUP_DUPLICITY_ERROR_EXCEPTION 30 +#define DEJA_DUP_DUPLICITY_INFO_PROGRESS 2 +#define DEJA_DUP_DUPLICITY_INFO_COLLECTION_STATUS 3 +#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_NEW 4 +#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_CHANGED 5 +#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_DELETED 6 +#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_WRITING 7 +#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_PATCHING 8 +#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_SIG 2 +#define DEJA_DUP_DUPLICITY_WARNING_UNNECESSARY_SIG 3 +#define DEJA_DUP_DUPLICITY_WARNING_UNMATCHED_SIG 4 +#define DEJA_DUP_DUPLICITY_WARNING_INCOMPLETE_BACKUP 5 +#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_BACKUP 6 +DejaDupDuplicity* deja_dup_duplicity_new (DejaDupOperationMode mode, GtkWindow* win); +DejaDupDuplicity* deja_dup_duplicity_construct (GType object_type, DejaDupOperationMode mode, GtkWindow* win); +void deja_dup_duplicity_start (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp); +void deja_dup_duplicity_cancel (DejaDupDuplicity* self); +void deja_dup_duplicity_process_error (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); +void deja_dup_duplicity_process_info (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); +void deja_dup_duplicity_process_warning (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); +GtkWindow* deja_dup_duplicity_get_toplevel (DejaDupDuplicity* self); +DejaDupOperationMode deja_dup_duplicity_get_original_mode (DejaDupDuplicity* self); +DejaDupOperationMode deja_dup_duplicity_get_mode (DejaDupDuplicity* self); +gboolean deja_dup_duplicity_get_error_issued (DejaDupDuplicity* self); +const char* deja_dup_duplicity_get_local (DejaDupDuplicity* self); +void deja_dup_duplicity_set_local (DejaDupDuplicity* self, const char* value); +DejaDupBackend* deja_dup_duplicity_get_backend (DejaDupDuplicity* self); +void deja_dup_duplicity_set_backend (DejaDupDuplicity* self, DejaDupBackend* value); +GList* deja_dup_duplicity_get_restore_files (DejaDupDuplicity* self); +void deja_dup_duplicity_set_restore_files (DejaDupDuplicity* self, GList* value); +DejaDupDuplicityState deja_dup_duplicity_get_state (DejaDupDuplicity* self); +void deja_dup_duplicity_set_state (DejaDupDuplicity* self, DejaDupDuplicityState value); +GType deja_dup_duplicity_info_get_type (void); +#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MAJOR 0 +#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MINOR 5 +#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MICRO 3 +DejaDupDuplicityInfo* deja_dup_duplicity_info_get_default (void); +gboolean deja_dup_duplicity_info_check_duplicity_version (DejaDupDuplicityInfo* self, GtkWindow* parent); +DejaDupDuplicityInfo* deja_dup_duplicity_info_new (void); +DejaDupDuplicityInfo* deja_dup_duplicity_info_construct (GType object_type); +gboolean deja_dup_duplicity_info_get_has_broken_cleanup (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_has_backup_progress (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_has_restore_progress (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_has_collection_status (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_new_time_format (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_can_read_short_filenames (DejaDupDuplicityInfo* self); +GType deja_dup_duplicity_instance_get_type (void); +void deja_dup_duplicity_instance_start (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); +gboolean deja_dup_duplicity_instance_is_started (DejaDupDuplicityInstance* self); +void deja_dup_duplicity_instance_cancel (DejaDupDuplicityInstance* self); +DejaDupDuplicityInstance* deja_dup_duplicity_instance_new (void); +DejaDupDuplicityInstance* deja_dup_duplicity_instance_construct (GType object_type); +gboolean deja_dup_duplicity_instance_get_verbose (DejaDupDuplicityInstance* self); +GType deja_dup_operation_get_type (void); +char* deja_dup_operation_mode_to_string (DejaDupOperationMode mode); +void deja_dup_operation_start (DejaDupOperation* self, GError** error); +void deja_dup_operation_cancel (DejaDupOperation* self); +void deja_dup_operation_connect_to_dup (DejaDupOperation* self); +void deja_dup_operation_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); +GList* deja_dup_operation_make_argv (DejaDupOperation* self, GError** error); +void deja_dup_operation_ask_passphrase (DejaDupOperation* self, GError** error); +void deja_dup_operation_ask_backend_password (DejaDupOperation* self, GError** error); +GtkWindow* deja_dup_operation_get_toplevel (DejaDupOperation* self); +guint deja_dup_operation_get_uppermost_xid (DejaDupOperation* self); +DejaDupOperationMode deja_dup_operation_get_mode (DejaDupOperation* self); +GQuark deja_dup_backup_error_quark (void); +GType deja_dup_operation_backup_get_type (void); +DejaDupOperationBackup* deja_dup_operation_backup_new (GtkWindow* win, guint xid); +DejaDupOperationBackup* deja_dup_operation_backup_construct (GType object_type, GtkWindow* win, guint xid); +GType deja_dup_operation_restore_get_type (void); +DejaDupOperationRestore* deja_dup_operation_restore_new (GtkWindow* win, const char* dest_in, const char* time_in, GList* files_in, guint xid); +DejaDupOperationRestore* deja_dup_operation_restore_construct (GType object_type, GtkWindow* win, const char* dest_in, const char* time_in, GList* files_in, guint xid); +GList* deja_dup_operation_restore_get_restore_files (DejaDupOperationRestore* self); +void deja_dup_operation_restore_set_restore_files (DejaDupOperationRestore* self, GList* value); +GType deja_dup_operation_status_get_type (void); +DejaDupOperationStatus* deja_dup_operation_status_new (GtkWindow* win, guint xid); +DejaDupOperationStatus* deja_dup_operation_status_construct (GType object_type, GtkWindow* win, guint xid); +GType deja_dup_recursive_op_get_type (void); +GType deja_dup_recursive_delete_get_type (void); +DejaDupRecursiveDelete* deja_dup_recursive_delete_new (GFile* source); +DejaDupRecursiveDelete* deja_dup_recursive_delete_construct (GType object_type, GFile* source); +GType deja_dup_recursive_move_get_type (void); +DejaDupRecursiveMove* deja_dup_recursive_move_new (GFile* source, GFile* dest); +DejaDupRecursiveMove* deja_dup_recursive_move_construct (GType object_type, GFile* source, GFile* dest); +void deja_dup_recursive_op_handle_file (DejaDupRecursiveOp* self); +void deja_dup_recursive_op_handle_dir (DejaDupRecursiveOp* self); +void deja_dup_recursive_op_finish_dir (DejaDupRecursiveOp* self); +DejaDupRecursiveOp* deja_dup_recursive_op_clone_for_info (DejaDupRecursiveOp* self, GFileInfo* info); +void deja_dup_recursive_op_start (DejaDupRecursiveOp* self); +void deja_dup_recursive_op_start_async (DejaDupRecursiveOp* self); +GFile* deja_dup_recursive_op_get_src (DejaDupRecursiveOp* self); +GFile* deja_dup_recursive_op_get_dst (DejaDupRecursiveOp* self); +gboolean deja_dup_togglable_get_active (DejaDupTogglable* self); +GType deja_dup_toggle_group_get_type (void); +DejaDupToggleGroup* deja_dup_toggle_group_new (DejaDupTogglable* toggle); +DejaDupToggleGroup* deja_dup_toggle_group_construct (GType object_type, DejaDupTogglable* toggle); +void deja_dup_toggle_group_add_dependent (DejaDupToggleGroup* self, GtkWidget* w); +void deja_dup_toggle_group_check (DejaDupToggleGroup* self); +DejaDupTogglable* deja_dup_toggle_group_get_toggle (DejaDupToggleGroup* self); +#define DEJA_DUP_INCLUDE_LIST_KEY "/apps/deja-dup/include-list" +#define DEJA_DUP_EXCLUDE_LIST_KEY "/apps/deja-dup/exclude-list" +#define DEJA_DUP_BACKEND_KEY "/apps/deja-dup/backend" +#define DEJA_DUP_ENCRYPT_KEY "/apps/deja-dup/encrypt" +#define DEJA_DUP_LAST_RUN_KEY "/apps/deja-dup/last-run" +#define DEJA_DUP_PERIODIC_KEY "/apps/deja-dup/periodic" +#define DEJA_DUP_PERIODIC_PERIOD_KEY "/apps/deja-dup/periodic-period" +void deja_dup_update_last_run_timestamp (GError** error); +char* deja_dup_get_trash_path (void); +GFile* deja_dup_parse_dir (const char* dir); +GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1); +void deja_dup_show_uri (GtkWindow* parent, const char* link); +void deja_dup_show_about (GObject* owner, GtkWindow* parent); +GtkWindow* deja_dup_get_topwindow (GtkWidget* w); +gboolean deja_dup_set_bus_claimed (const char* busname, gboolean claim); +GConfClient* deja_dup_get_gconf_client (void); +void deja_dup_initialize (void); +char* deja_dup_get_file_desc (GFile* file); +char* deja_dup_get_location_desc (void); + + +G_END_DECLS + +#endif diff -Nru deja-dup-7.4/libdeja-dup/Duplicity.c deja-dup-10.0/libdeja-dup/Duplicity.c --- deja-dup-7.4/libdeja-dup/Duplicity.c 2009-02-11 20:35:26.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Duplicity.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,17 +1,102 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <Duplicity.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gtk/gtk.h> +#include <gio/gio.h> +#include <float.h> +#include <math.h> #include <glib/gi18n-lib.h> -#include <DuplicityInstance.h> -#include <DuplicityInfo.h> -#include <BackendS3.h> +#include <hacks.h> +#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ()) +#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity)) +#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) +#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) + +typedef struct _DejaDupDuplicity DejaDupDuplicity; +typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass; +typedef struct _DejaDupDuplicityPrivate DejaDupDuplicityPrivate; + +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +#define DEJA_DUP_DUPLICITY_TYPE_STATE (deja_dup_duplicity_state_get_type ()) + +#define DEJA_DUP_TYPE_DUPLICITY_INSTANCE (deja_dup_duplicity_instance_get_type ()) +#define DEJA_DUP_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstance)) +#define DEJA_DUP_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) +#define DEJA_DUP_IS_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) +#define DEJA_DUP_IS_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) +#define DEJA_DUP_DUPLICITY_INSTANCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) + +typedef struct _DejaDupDuplicityInstance DejaDupDuplicityInstance; +typedef struct _DejaDupDuplicityInstanceClass DejaDupDuplicityInstanceClass; + +#define DEJA_DUP_TYPE_DUPLICITY_INFO (deja_dup_duplicity_info_get_type ()) +#define DEJA_DUP_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfo)) +#define DEJA_DUP_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) +#define DEJA_DUP_IS_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO)) +#define DEJA_DUP_IS_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO)) +#define DEJA_DUP_DUPLICITY_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) + +typedef struct _DejaDupDuplicityInfo DejaDupDuplicityInfo; +typedef struct _DejaDupDuplicityInfoClass DejaDupDuplicityInfoClass; + +#define DEJA_DUP_TYPE_BACKEND_S3 (deja_dup_backend_s3_get_type ()) +#define DEJA_DUP_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3)) +#define DEJA_DUP_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) +#define DEJA_DUP_IS_BACKEND_S3(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_IS_BACKEND_S3_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND_S3)) +#define DEJA_DUP_BACKEND_S3_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND_S3, DejaDupBackendS3Class)) + +typedef struct _DejaDupBackendS3 DejaDupBackendS3; +typedef struct _DejaDupBackendS3Class DejaDupBackendS3Class; + +struct _DejaDupDuplicity { + GObject parent_instance; + DejaDupDuplicityPrivate * priv; +}; + +struct _DejaDupDuplicityClass { + GObjectClass parent_class; + void (*start) (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp); + void (*process_error) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); + void (*process_info) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); + void (*process_warning) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); +}; +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; + +typedef enum { + DEJA_DUP_DUPLICITY_STATE_NORMAL, + DEJA_DUP_DUPLICITY_STATE_DRY_RUN, + DEJA_DUP_DUPLICITY_STATE_STATUS, + DEJA_DUP_DUPLICITY_STATE_CLEANUP +} DejaDupDuplicityState; -static glong string_get_length (const char* self); struct _DejaDupDuplicityPrivate { GtkWindow* _toplevel; + DejaDupOperationMode _original_mode; DejaDupOperationMode _mode; gboolean _error_issued; char* _local; @@ -26,12 +111,24 @@ gboolean has_progress_total; double progress_total; double progress_count; + gboolean checked_collection_info; + gboolean got_collection_info; + GList* collection_info; + GFile* last_touched_file; }; + + +GType deja_dup_duplicity_get_type (void); +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_mode_get_type (void); +GType deja_dup_duplicity_state_get_type (void); +GType deja_dup_duplicity_instance_get_type (void); #define DEJA_DUP_DUPLICITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityPrivate)) enum { DEJA_DUP_DUPLICITY_DUMMY_PROPERTY, DEJA_DUP_DUPLICITY_TOPLEVEL, + DEJA_DUP_DUPLICITY_ORIGINAL_MODE, DEJA_DUP_DUPLICITY_MODE, DEJA_DUP_DUPLICITY_ERROR_ISSUED, DEJA_DUP_DUPLICITY_LOCAL, @@ -41,31 +138,88 @@ }; static void _g_list_free_g_object_unref (GList* self); static void _g_list_free_g_free (GList* self); +static GFile* deja_dup_duplicity_root; static GFile* deja_dup_duplicity_root = NULL; -static void deja_dup_duplicity_real_start (DejaDupDuplicity* self, DejaDupBackend* backend, const char* remote, gboolean encrypted, GList* argv, GList* envp); +#define DEJA_DUP_DUPLICITY_ERROR_RESTORE_DIR_NOT_FOUND 19 +#define DEJA_DUP_DUPLICITY_ERROR_EXCEPTION 30 +#define DEJA_DUP_DUPLICITY_INFO_PROGRESS 2 +#define DEJA_DUP_DUPLICITY_INFO_COLLECTION_STATUS 3 +#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_NEW 4 +#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_CHANGED 5 +#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_DELETED 6 +#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_WRITING 7 +#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_PATCHING 8 +#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_SIG 2 +#define DEJA_DUP_DUPLICITY_WARNING_UNNECESSARY_SIG 3 +#define DEJA_DUP_DUPLICITY_WARNING_UNMATCHED_SIG 4 +#define DEJA_DUP_DUPLICITY_WARNING_INCOMPLETE_BACKUP 5 +#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_BACKUP 6 +static void deja_dup_duplicity_set_mode (DejaDupDuplicity* self, DejaDupOperationMode value); +static void deja_dup_duplicity_set_original_mode (DejaDupDuplicity* self, DejaDupOperationMode value); +static void deja_dup_duplicity_set_toplevel (DejaDupDuplicity* self, GtkWindow* value); +DejaDupDuplicity* deja_dup_duplicity_new (DejaDupOperationMode mode, GtkWindow* win); +DejaDupDuplicity* deja_dup_duplicity_construct (GType object_type, DejaDupOperationMode mode, GtkWindow* win); +DejaDupDuplicity* deja_dup_duplicity_new (DejaDupOperationMode mode, GtkWindow* win); +char* deja_dup_backend_get_location (DejaDupBackend* self, GError** error); +void deja_dup_duplicity_set_backend (DejaDupDuplicity* self, DejaDupBackend* value); +void deja_dup_backend_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); static gboolean deja_dup_duplicity_restart (DejaDupDuplicity* self); +void deja_dup_duplicity_start (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp); +static void deja_dup_duplicity_real_start (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp); +DejaDupOperationMode deja_dup_duplicity_get_mode (DejaDupDuplicity* self); static gboolean deja_dup_duplicity_cleanup (DejaDupDuplicity* self); +void deja_dup_duplicity_instance_cancel (DejaDupDuplicityInstance* self); +void deja_dup_duplicity_cancel (DejaDupDuplicity* self); +void deja_dup_duplicity_set_state (DejaDupDuplicity* self, DejaDupDuplicityState value); +DejaDupOperationMode deja_dup_duplicity_get_original_mode (DejaDupDuplicity* self); +GType deja_dup_duplicity_info_get_type (void); +DejaDupDuplicityInfo* deja_dup_duplicity_info_get_default (void); +gboolean deja_dup_duplicity_info_get_has_collection_status (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_has_backup_progress (DejaDupDuplicityInfo* self); +GList* deja_dup_duplicity_get_restore_files (DejaDupDuplicity* self); +const char* deja_dup_duplicity_get_local (DejaDupDuplicity* self); +static void deja_dup_duplicity_show_error (DejaDupDuplicity* self, const char* errorstr, const char* detail); +gboolean deja_dup_duplicity_info_get_has_restore_progress (DejaDupDuplicityInfo* self); +char* deja_dup_operation_mode_to_string (DejaDupOperationMode mode); +static void deja_dup_duplicity_connect_and_start (DejaDupDuplicity* self, GList* argv_extra, GList* envp_extra, GList* argv_entire, const char* custom_local); +gboolean deja_dup_duplicity_info_get_has_broken_cleanup (DejaDupDuplicityInfo* self); +DejaDupDuplicityState deja_dup_duplicity_get_state (DejaDupDuplicity* self); +gboolean deja_dup_duplicity_get_error_issued (DejaDupDuplicity* self); static void deja_dup_duplicity_handle_done (DejaDupDuplicity* self, DejaDupDuplicityInstance* inst, gboolean success, gboolean cancelled); +gboolean deja_dup_duplicity_info_get_can_read_short_filenames (DejaDupDuplicityInfo* self); static gboolean deja_dup_duplicity_restart_with_short_filenames_if_needed (DejaDupDuplicity* self); +void deja_dup_duplicity_process_error (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); +void deja_dup_duplicity_process_info (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); +void deja_dup_duplicity_process_warning (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); static void deja_dup_duplicity_handle_message (DejaDupDuplicity* self, DejaDupDuplicityInstance* inst, char** control_line, int control_line_length1, GList* data_lines, const char* user_text); -static void deja_dup_duplicity_real_process_error (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); static void deja_dup_duplicity_process_exception (DejaDupDuplicity* self, const char* exception, const char* text); -static void deja_dup_duplicity_real_process_info (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); +static void deja_dup_duplicity_real_process_error (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); +DejaDupBackend* deja_dup_duplicity_get_backend (DejaDupDuplicity* self); +GType deja_dup_backend_s3_get_type (void); +gboolean deja_dup_backend_s3_bump_bucket (DejaDupBackendS3* self); +char* deja_dup_backend_get_location_pretty (DejaDupBackend* self, GError** error); +gboolean deja_dup_duplicity_info_get_new_time_format (DejaDupDuplicityInfo* self); static void deja_dup_duplicity_process_diff_file (DejaDupDuplicity* self, const char* file); static void deja_dup_duplicity_process_patch_file (DejaDupDuplicity* self, const char* file); static void deja_dup_duplicity_process_progress (DejaDupDuplicity* self, char** firstline, int firstline_length1); -static GFile* deja_dup_duplicity_make_file_obj (DejaDupDuplicity* self, const char* file); static void deja_dup_duplicity_process_collection_status (DejaDupDuplicity* self, GList* lines); +static void deja_dup_duplicity_real_process_info (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); +static GFile* deja_dup_duplicity_make_file_obj (DejaDupDuplicity* self, const char* file); static void deja_dup_duplicity_real_process_warning (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); -static void deja_dup_duplicity_show_error (DejaDupDuplicity* self, const char* errorstr); +static void deja_dup_duplicity_set_error_issued (DejaDupDuplicity* self, gboolean value); static void _deja_dup_duplicity_handle_done_deja_dup_duplicity_instance_done (DejaDupDuplicityInstance* _sender, gboolean success, gboolean cancelled, gpointer self); static void _deja_dup_duplicity_handle_message_deja_dup_duplicity_instance_message (DejaDupDuplicityInstance* _sender, char** control_line, int control_line_length1, GList* data_lines, const char* user_text, gpointer self); -static void deja_dup_duplicity_connect_and_start (DejaDupDuplicity* self, GList* argv_extra, GList* envp_extra, GList* argv_entire, const char* custom_local); -static void deja_dup_duplicity_set_toplevel (DejaDupDuplicity* self, GtkWindow* value); -static void deja_dup_duplicity_set_mode (DejaDupDuplicity* self, DejaDupOperationMode value); -static void deja_dup_duplicity_set_error_issued (DejaDupDuplicity* self, gboolean value); +DejaDupDuplicityInstance* deja_dup_duplicity_instance_new (void); +DejaDupDuplicityInstance* deja_dup_duplicity_instance_construct (GType object_type); +void deja_dup_duplicity_instance_start (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); +GtkWindow* deja_dup_duplicity_get_toplevel (DejaDupDuplicity* self); +void deja_dup_duplicity_set_local (DejaDupDuplicity* self, const char* value); +void deja_dup_duplicity_set_restore_files (DejaDupDuplicity* self, GList* value); static gpointer deja_dup_duplicity_parent_class = NULL; static void deja_dup_duplicity_finalize (GObject* obj); +static void deja_dup_duplicity_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_duplicity_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); static int _vala_strcmp0 (const char * str1, const char * str2); @@ -74,17 +228,11 @@ static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void g_cclosure_user_marshal_VOID__STRING_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); -static glong string_get_length (const char* self) { - g_return_val_if_fail (self != NULL, 0L); - return g_utf8_strlen (self, -1); -} - - GType deja_dup_duplicity_state_get_type (void) { static GType deja_dup_duplicity_state_type_id = 0; if (G_UNLIKELY (deja_dup_duplicity_state_type_id == 0)) { - static const GEnumValue values[] = {{DEJA_DUP_DUPLICITY_STATE_NORMAL, "DEJA_DUP_DUPLICITY_STATE_NORMAL", "normal"}, {DEJA_DUP_DUPLICITY_STATE_DRY_RUN, "DEJA_DUP_DUPLICITY_STATE_DRY_RUN", "dry-run"}, {DEJA_DUP_DUPLICITY_STATE_CLEANUP, "DEJA_DUP_DUPLICITY_STATE_CLEANUP", "cleanup"}, {0, NULL, NULL}}; + static const GEnumValue values[] = {{DEJA_DUP_DUPLICITY_STATE_NORMAL, "DEJA_DUP_DUPLICITY_STATE_NORMAL", "normal"}, {DEJA_DUP_DUPLICITY_STATE_DRY_RUN, "DEJA_DUP_DUPLICITY_STATE_DRY_RUN", "dry-run"}, {DEJA_DUP_DUPLICITY_STATE_STATUS, "DEJA_DUP_DUPLICITY_STATE_STATUS", "status"}, {DEJA_DUP_DUPLICITY_STATE_CLEANUP, "DEJA_DUP_DUPLICITY_STATE_CLEANUP", "cleanup"}, {0, NULL, NULL}}; deja_dup_duplicity_state_type_id = g_enum_register_static ("DejaDupDuplicityState", values); } return deja_dup_duplicity_state_type_id; @@ -103,7 +251,6 @@ } -/* count of how far we are along in the current instance*/ DejaDupDuplicity* deja_dup_duplicity_construct (GType object_type, DejaDupOperationMode mode, GtkWindow* win) { GParameter * __params; GParameter * __params_it; @@ -116,6 +263,7 @@ __params_it++; self = g_object_newv (object_type, __params_it - __params, __params); deja_dup_duplicity_set_mode (self, mode); + deja_dup_duplicity_set_original_mode (self, mode); while (__params_it > __params) { --__params_it; g_value_unset (&__params_it->value); @@ -130,39 +278,45 @@ } -static void deja_dup_duplicity_real_start (DejaDupDuplicity* self, DejaDupBackend* backend, const char* remote, gboolean encrypted, GList* argv, GList* envp) { - char* _tmp1; - const char* _tmp0; - GList* _tmp2; - GList* _tmp3; - GList* _tmp4; +static void deja_dup_duplicity_real_start (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp) { + GError * _inner_error_; + char* _tmp0_; + char* _tmp1_; + GList* _tmp2_; + GList* _tmp3_; + GList* _tmp4_; g_return_if_fail (self != NULL); g_return_if_fail (backend != NULL); - g_return_if_fail (remote != NULL); + _inner_error_ = NULL; + _tmp0_ = deja_dup_backend_get_location (backend, &_inner_error_); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } /* save arguments for calling duplicity again later*/ - _tmp1 = NULL; - _tmp0 = NULL; - self->priv->remote = (_tmp1 = (_tmp0 = remote, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)), self->priv->remote = (g_free (self->priv->remote), NULL), _tmp1); + _tmp1_ = NULL; + self->priv->remote = (_tmp1_ = _tmp0_, self->priv->remote = (g_free (self->priv->remote), NULL), _tmp1_); deja_dup_duplicity_set_backend (self, backend); - _tmp2 = NULL; - self->priv->saved_argv = (_tmp2 = NULL, (self->priv->saved_argv == NULL) ? NULL : (self->priv->saved_argv = (_g_list_free_g_free (self->priv->saved_argv), NULL)), _tmp2); - _tmp3 = NULL; - self->priv->saved_envp = (_tmp3 = NULL, (self->priv->saved_envp == NULL) ? NULL : (self->priv->saved_envp = (_g_list_free_g_free (self->priv->saved_envp), NULL)), _tmp3); - _tmp4 = NULL; - self->priv->backend_argv = (_tmp4 = NULL, (self->priv->backend_argv == NULL) ? NULL : (self->priv->backend_argv = (_g_list_free_g_free (self->priv->backend_argv), NULL)), _tmp4); + _tmp2_ = NULL; + self->priv->saved_argv = (_tmp2_ = NULL, (self->priv->saved_argv == NULL) ? NULL : (self->priv->saved_argv = (_g_list_free_g_free (self->priv->saved_argv), NULL)), _tmp2_); + _tmp3_ = NULL; + self->priv->saved_envp = (_tmp3_ = NULL, (self->priv->saved_envp == NULL) ? NULL : (self->priv->saved_envp = (_g_list_free_g_free (self->priv->saved_envp), NULL)), _tmp3_); + _tmp4_ = NULL; + self->priv->backend_argv = (_tmp4_ = NULL, (self->priv->backend_argv == NULL) ? NULL : (self->priv->backend_argv = (_g_list_free_g_free (self->priv->backend_argv), NULL)), _tmp4_); { GList* s_collection; GList* s_it; s_collection = argv; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp6; + const char* _tmp6_; char* s; - _tmp6 = NULL; - s = (_tmp6 = (const char*) s_it->data, (_tmp6 == NULL) ? NULL : g_strdup (_tmp6)); + _tmp6_ = NULL; + s = (_tmp6_ = (const char*) s_it->data, (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_)); { - const char* _tmp5; - _tmp5 = NULL; - self->priv->saved_argv = g_list_append (self->priv->saved_argv, (_tmp5 = s, (_tmp5 == NULL) ? NULL : g_strdup (_tmp5))); + const char* _tmp5_; + _tmp5_ = NULL; + self->priv->saved_argv = g_list_append (self->priv->saved_argv, (_tmp5_ = s, (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_))); s = (g_free (s), NULL); } } @@ -172,19 +326,19 @@ GList* s_it; s_collection = envp; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp8; + const char* _tmp8_; char* s; - _tmp8 = NULL; - s = (_tmp8 = (const char*) s_it->data, (_tmp8 == NULL) ? NULL : g_strdup (_tmp8)); + _tmp8_ = NULL; + s = (_tmp8_ = (const char*) s_it->data, (_tmp8_ == NULL) ? NULL : g_strdup (_tmp8_)); { - const char* _tmp7; - _tmp7 = NULL; - self->priv->saved_envp = g_list_append (self->priv->saved_envp, (_tmp7 = s, (_tmp7 == NULL) ? NULL : g_strdup (_tmp7))); + const char* _tmp7_; + _tmp7_ = NULL; + self->priv->saved_envp = g_list_append (self->priv->saved_envp, (_tmp7_ = s, (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_))); s = (g_free (s), NULL); } } } - deja_dup_backend_add_argv (backend, &self->priv->backend_argv); + deja_dup_backend_add_argv (backend, DEJA_DUP_OPERATION_MODE_INVALID, &self->priv->backend_argv); if (!encrypted) { self->priv->backend_argv = g_list_append (self->priv->backend_argv, g_strdup ("--no-encryption")); } @@ -194,17 +348,17 @@ } -void deja_dup_duplicity_start (DejaDupDuplicity* self, DejaDupBackend* backend, const char* remote, gboolean encrypted, GList* argv, GList* envp) { - DEJA_DUP_DUPLICITY_GET_CLASS (self)->start (self, backend, remote, encrypted, argv, envp); +void deja_dup_duplicity_start (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp) { + DEJA_DUP_DUPLICITY_GET_CLASS (self)->start (self, backend, encrypted, argv, envp); } void deja_dup_duplicity_cancel (DejaDupDuplicity* self) { - DejaDupOperationMode old_mode; + DejaDupOperationMode prev_mode; g_return_if_fail (self != NULL); - old_mode = self->priv->_mode; + prev_mode = self->priv->_mode; deja_dup_duplicity_set_mode (self, DEJA_DUP_OPERATION_MODE_INVALID); - if (old_mode == DEJA_DUP_OPERATION_MODE_BACKUP) { + if (prev_mode == DEJA_DUP_OPERATION_MODE_BACKUP) { if (deja_dup_duplicity_cleanup (self)) { return; } @@ -214,13 +368,13 @@ static gboolean deja_dup_duplicity_restart (DejaDupDuplicity* self) { - GError * inner_error; + GError * _inner_error_; GList* extra_argv; char* action_desc; char* custom_local; - gboolean _tmp10; + gboolean _tmp18_; g_return_val_if_fail (self != NULL, FALSE); - inner_error = NULL; + _inner_error_ = NULL; deja_dup_duplicity_set_state (self, DEJA_DUP_DUPLICITY_STATE_NORMAL); if (self->priv->_mode == DEJA_DUP_OPERATION_MODE_INVALID) { return FALSE; @@ -228,134 +382,167 @@ extra_argv = NULL; action_desc = NULL; custom_local = NULL; - switch (self->priv->_mode) { + switch (self->priv->_original_mode) { case DEJA_DUP_OPERATION_MODE_BACKUP: { - gboolean _tmp1; - DejaDupDuplicityInfo* _tmp2; - gboolean _tmp3; - _tmp1 = FALSE; - _tmp2 = NULL; - if ((_tmp3 = deja_dup_duplicity_info_get_has_backup_progress (_tmp2 = deja_dup_duplicity_info_get_default ()), (_tmp2 == NULL) ? NULL : (_tmp2 = (g_object_unref (_tmp2), NULL)), _tmp3)) { - _tmp1 = !self->priv->has_progress_total; + gboolean _tmp1_; + _tmp1_ = FALSE; + if (!self->priv->checked_collection_info) { + DejaDupDuplicityInfo* _tmp2_; + _tmp2_ = NULL; + _tmp1_ = deja_dup_duplicity_info_get_has_collection_status (_tmp2_ = deja_dup_duplicity_info_get_default ()); + (_tmp2_ == NULL) ? NULL : (_tmp2_ = (g_object_unref (_tmp2_), NULL)); } else { - _tmp1 = FALSE; + _tmp1_ = FALSE; } - if (_tmp1) { - char* _tmp5; - const char* _tmp4; - deja_dup_duplicity_set_state (self, DEJA_DUP_DUPLICITY_STATE_DRY_RUN); - _tmp5 = NULL; - _tmp4 = NULL; - action_desc = (_tmp5 = (_tmp4 = _ ("Preparing..."), (_tmp4 == NULL) ? NULL : g_strdup (_tmp4)), action_desc = (g_free (action_desc), NULL), _tmp5); - extra_argv = g_list_append (extra_argv, g_strdup ("--dry-run")); + if (_tmp1_) { + char* _tmp4_; + const char* _tmp3_; + deja_dup_duplicity_set_mode (self, DEJA_DUP_OPERATION_MODE_STATUS); + deja_dup_duplicity_set_state (self, DEJA_DUP_DUPLICITY_STATE_STATUS); + _tmp4_ = NULL; + _tmp3_ = NULL; + action_desc = (_tmp4_ = (_tmp3_ = _ ("Preparing..."), (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)), action_desc = (g_free (action_desc), NULL), _tmp4_); + } else { + gboolean _tmp5_; + DejaDupDuplicityInfo* _tmp6_; + gboolean _tmp7_; + _tmp5_ = FALSE; + _tmp6_ = NULL; + if ((_tmp7_ = deja_dup_duplicity_info_get_has_backup_progress (_tmp6_ = deja_dup_duplicity_info_get_default ()), (_tmp6_ == NULL) ? NULL : (_tmp6_ = (g_object_unref (_tmp6_), NULL)), _tmp7_)) { + _tmp5_ = !self->priv->has_progress_total; + } else { + _tmp5_ = FALSE; + } + if (_tmp5_) { + char* _tmp9_; + const char* _tmp8_; + deja_dup_duplicity_set_state (self, DEJA_DUP_DUPLICITY_STATE_DRY_RUN); + _tmp9_ = NULL; + _tmp8_ = NULL; + action_desc = (_tmp9_ = (_tmp8_ = _ ("Preparing..."), (_tmp8_ == NULL) ? NULL : g_strdup (_tmp8_)), action_desc = (g_free (action_desc), NULL), _tmp9_); + extra_argv = g_list_append (extra_argv, g_strdup ("--dry-run")); + } else { + DejaDupDuplicityInfo* _tmp10_; + gboolean _tmp11_; + _tmp10_ = NULL; + if ((_tmp11_ = deja_dup_duplicity_info_get_has_backup_progress (_tmp10_ = deja_dup_duplicity_info_get_default ()), (_tmp10_ == NULL) ? NULL : (_tmp10_ = (g_object_unref (_tmp10_), NULL)), _tmp11_)) { + g_signal_emit_by_name (self, "progress", (double) 0.f); + } + } } break; } case DEJA_DUP_OPERATION_MODE_RESTORE: { + DejaDupDuplicityInfo* _tmp15_; + gboolean _tmp16_; if (deja_dup_duplicity_get_restore_files (self) != NULL) { GFile* local_file; GFile* root; char* rel_file_path; - GFile* _tmp6; - char* _tmp8; + GFile* _tmp12_; + char* _tmp14_; /* Just do first one. Others will come when we're done make path to specific restore file, since duplicity will just drop the file exactly where you ask it*/ local_file = g_file_new_for_path (self->priv->_local); root = g_file_new_for_path ("/"); rel_file_path = g_file_get_relative_path (root, (GFile*) deja_dup_duplicity_get_restore_files (self)->data); - _tmp6 = NULL; - local_file = (_tmp6 = g_file_resolve_relative_path (local_file, rel_file_path), (local_file == NULL) ? NULL : (local_file = (g_object_unref (local_file), NULL)), _tmp6); + _tmp12_ = NULL; + local_file = (_tmp12_ = g_file_resolve_relative_path (local_file, rel_file_path), (local_file == NULL) ? NULL : (local_file = (g_object_unref (local_file), NULL)), _tmp12_); { /* won't have correct permissions...*/ - g_file_make_directory_with_parents (local_file, NULL, &inner_error); - if (inner_error != NULL) { - goto __catch3_g_error; - goto __finally3; + hacks_file_make_directory_with_parents (local_file, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch36_g_error; + goto __finally36; } } - goto __finally3; - __catch3_g_error: + goto __finally36; + __catch36_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - gboolean _tmp7; - deja_dup_duplicity_show_error (self, e->message); - return (_tmp7 = FALSE, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (local_file == NULL) ? NULL : (local_file = (g_object_unref (local_file), NULL)), (root == NULL) ? NULL : (root = (g_object_unref (root), NULL)), rel_file_path = (g_free (rel_file_path), NULL), (extra_argv == NULL) ? NULL : (extra_argv = (_g_list_free_g_free (extra_argv), NULL)), action_desc = (g_free (action_desc), NULL), custom_local = (g_free (custom_local), NULL), _tmp7); + gboolean _tmp13_; + deja_dup_duplicity_show_error (self, e->message, NULL); + return (_tmp13_ = FALSE, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (local_file == NULL) ? NULL : (local_file = (g_object_unref (local_file), NULL)), (root == NULL) ? NULL : (root = (g_object_unref (root), NULL)), rel_file_path = (g_free (rel_file_path), NULL), (extra_argv == NULL) ? NULL : (extra_argv = (_g_list_free_g_free (extra_argv), NULL)), action_desc = (g_free (action_desc), NULL), custom_local = (g_free (custom_local), NULL), _tmp13_); } } - __finally3: - if (inner_error != NULL) { + __finally36: + if (_inner_error_ != NULL) { (local_file == NULL) ? NULL : (local_file = (g_object_unref (local_file), NULL)); (root == NULL) ? NULL : (root = (g_object_unref (root), NULL)); rel_file_path = (g_free (rel_file_path), NULL); (extra_argv == NULL) ? NULL : (extra_argv = (_g_list_free_g_free (extra_argv), NULL)); action_desc = (g_free (action_desc), NULL); custom_local = (g_free (custom_local), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } - _tmp8 = NULL; - custom_local = (_tmp8 = g_file_get_path (local_file), custom_local = (g_free (custom_local), NULL), _tmp8); + _tmp14_ = NULL; + custom_local = (_tmp14_ = g_file_get_path (local_file), custom_local = (g_free (custom_local), NULL), _tmp14_); extra_argv = g_list_append (extra_argv, g_strdup_printf ("--file-to-restore=%s", rel_file_path)); (local_file == NULL) ? NULL : (local_file = (g_object_unref (local_file), NULL)); (root == NULL) ? NULL : (root = (g_object_unref (root), NULL)); rel_file_path = (g_free (rel_file_path), NULL); } + _tmp15_ = NULL; + if ((_tmp16_ = deja_dup_duplicity_info_get_has_restore_progress (_tmp15_ = deja_dup_duplicity_info_get_default ()), (_tmp15_ == NULL) ? NULL : (_tmp15_ = (g_object_unref (_tmp15_), NULL)), _tmp16_)) { + g_signal_emit_by_name (self, "progress", (double) 0.f); + } break; } } /* Send appropriate description for what we're about to do. Is often very quickly overridden by a message like "Backing up file X"*/ if (action_desc == NULL) { - char* _tmp9; - _tmp9 = NULL; - action_desc = (_tmp9 = deja_dup_operation_mode_to_string (self->priv->_mode), action_desc = (g_free (action_desc), NULL), _tmp9); + char* _tmp17_; + _tmp17_ = NULL; + action_desc = (_tmp17_ = deja_dup_operation_mode_to_string (self->priv->_mode), action_desc = (g_free (action_desc), NULL), _tmp17_); } g_signal_emit_by_name (self, "action-desc-changed", action_desc); deja_dup_duplicity_connect_and_start (self, extra_argv, NULL, NULL, custom_local); - return (_tmp10 = TRUE, (extra_argv == NULL) ? NULL : (extra_argv = (_g_list_free_g_free (extra_argv), NULL)), action_desc = (g_free (action_desc), NULL), custom_local = (g_free (custom_local), NULL), _tmp10); + return (_tmp18_ = TRUE, (extra_argv == NULL) ? NULL : (extra_argv = (_g_list_free_g_free (extra_argv), NULL)), action_desc = (g_free (action_desc), NULL), custom_local = (g_free (custom_local), NULL), _tmp18_); } static gboolean deja_dup_duplicity_cleanup (DejaDupDuplicity* self) { - gboolean _tmp0; - DejaDupDuplicityInfo* _tmp1; - gboolean _tmp2; + gboolean _tmp0_; + DejaDupDuplicityInfo* _tmp1_; + gboolean _tmp2_; GList* cleanup_argv; - const char* _tmp4; - gboolean _tmp5; + const char* _tmp4_; + gboolean _tmp5_; g_return_val_if_fail (self != NULL, FALSE); - _tmp0 = FALSE; - _tmp1 = NULL; - if ((_tmp2 = deja_dup_duplicity_info_get_has_broken_cleanup (_tmp1 = deja_dup_duplicity_info_get_default ()), (_tmp1 == NULL) ? NULL : (_tmp1 = (g_object_unref (_tmp1), NULL)), _tmp2)) { - _tmp0 = TRUE; + _tmp0_ = FALSE; + _tmp1_ = NULL; + if ((_tmp2_ = deja_dup_duplicity_info_get_has_broken_cleanup (_tmp1_ = deja_dup_duplicity_info_get_default ()), (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL)), _tmp2_)) { + _tmp0_ = TRUE; } else { - _tmp0 = self->priv->_state == DEJA_DUP_DUPLICITY_STATE_CLEANUP; + _tmp0_ = self->priv->_state == DEJA_DUP_DUPLICITY_STATE_CLEANUP; } - if (_tmp0) { + if (_tmp0_) { return FALSE; } deja_dup_duplicity_set_state (self, DEJA_DUP_DUPLICITY_STATE_CLEANUP); cleanup_argv = NULL; cleanup_argv = g_list_append (cleanup_argv, g_strdup ("cleanup")); cleanup_argv = g_list_append (cleanup_argv, g_strdup ("--force")); - _tmp4 = NULL; - cleanup_argv = g_list_append (cleanup_argv, (_tmp4 = self->priv->remote, (_tmp4 == NULL) ? NULL : g_strdup (_tmp4))); + _tmp4_ = NULL; + cleanup_argv = g_list_append (cleanup_argv, (_tmp4_ = self->priv->remote, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_))); g_signal_emit_by_name (self, "action-desc-changed", _ ("Cleaning up...")); deja_dup_duplicity_connect_and_start (self, NULL, NULL, cleanup_argv, NULL); - return (_tmp5 = TRUE, (cleanup_argv == NULL) ? NULL : (cleanup_argv = (_g_list_free_g_free (cleanup_argv), NULL)), _tmp5); + return (_tmp5_ = TRUE, (cleanup_argv == NULL) ? NULL : (cleanup_argv = (_g_list_free_g_free (cleanup_argv), NULL)), _tmp5_); } static void deja_dup_duplicity_handle_done (DejaDupDuplicity* self, DejaDupDuplicityInstance* inst, gboolean success, gboolean cancelled) { - gboolean _tmp2; - gboolean _tmp3; + gboolean _tmp4_; + gboolean _tmp5_; g_return_if_fail (self != NULL); g_return_if_fail (inst != NULL); if (!cancelled) { @@ -374,30 +561,76 @@ } case DEJA_DUP_DUPLICITY_STATE_CLEANUP: { - if (deja_dup_duplicity_restart (self)) { + gboolean _tmp0_; + _tmp0_ = FALSE; + if (success) { + _tmp0_ = deja_dup_duplicity_restart (self); + } else { + _tmp0_ = FALSE; + } + if (_tmp0_) { return; } success = FALSE; cancelled = TRUE; break; } + case DEJA_DUP_DUPLICITY_STATE_STATUS: + { + if (success) { + gboolean _tmp1_; + self->priv->checked_collection_info = TRUE; + deja_dup_duplicity_set_mode (self, DEJA_DUP_OPERATION_MODE_BACKUP); + _tmp1_ = FALSE; + if (!self->priv->got_collection_info) { + _tmp1_ = TRUE; + } else { + _tmp1_ = self->priv->collection_info == NULL; + } + if (_tmp1_) { + /* Checking for backup files added the short-filename parameter. + If there were no files, we want to take it out again and + proceed with a normal filename backup.*/ + { + GList* s_collection; + GList* s_it; + s_collection = self->priv->backend_argv; + for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { + const char* s; + s = (const char*) s_it->data; + { + if (_vala_strcmp0 (s, "--short-filenames") == 0) { + self->priv->backend_argv = g_list_remove (self->priv->backend_argv, s); + } + } + } + } + } + if (deja_dup_duplicity_restart (self)) { + return; + } else { + success = FALSE; + } + } + break; + } case DEJA_DUP_DUPLICITY_STATE_NORMAL: { - gboolean _tmp0; - gboolean _tmp1; - _tmp0 = FALSE; - _tmp1 = FALSE; + gboolean _tmp2_; + gboolean _tmp3_; + _tmp2_ = FALSE; + _tmp3_ = FALSE; if (success) { - _tmp1 = self->priv->_mode == DEJA_DUP_OPERATION_MODE_RESTORE; + _tmp3_ = self->priv->_mode == DEJA_DUP_OPERATION_MODE_RESTORE; } else { - _tmp1 = FALSE; + _tmp3_ = FALSE; } - if (_tmp1) { - _tmp0 = deja_dup_duplicity_get_restore_files (self) != NULL; + if (_tmp3_) { + _tmp2_ = deja_dup_duplicity_get_restore_files (self) != NULL; } else { - _tmp0 = FALSE; + _tmp2_ = FALSE; } - if (_tmp0) { + if (_tmp2_) { self->priv->_restore_files = g_list_delete_link (self->priv->_restore_files, self->priv->_restore_files); if (deja_dup_duplicity_get_restore_files (self) != NULL) { if (deja_dup_duplicity_restart (self)) { @@ -412,20 +645,20 @@ if (self->priv->_error_issued) { success = FALSE; } - _tmp2 = FALSE; - _tmp3 = FALSE; + _tmp4_ = FALSE; + _tmp5_ = FALSE; if (!success) { - _tmp3 = !cancelled; + _tmp5_ = !cancelled; } else { - _tmp3 = FALSE; + _tmp5_ = FALSE; } - if (_tmp3) { - _tmp2 = !self->priv->_error_issued; + if (_tmp5_) { + _tmp4_ = !self->priv->_error_issued; } else { - _tmp2 = FALSE; + _tmp4_ = FALSE; } - if (_tmp2) { - deja_dup_duplicity_show_error (self, _ ("Failed with an unknown error.")); + if (_tmp4_) { + deja_dup_duplicity_show_error (self, _ ("Failed with an unknown error."), NULL); } inst = NULL; g_signal_emit_by_name (self, "done", success, cancelled); @@ -433,20 +666,26 @@ static gboolean deja_dup_duplicity_restart_with_short_filenames_if_needed (DejaDupDuplicity* self) { + DejaDupDuplicityInfo* _tmp0_; + gboolean _tmp1_; g_return_val_if_fail (self != NULL, FALSE); + _tmp0_ = NULL; + if ((_tmp1_ = deja_dup_duplicity_info_get_can_read_short_filenames (_tmp0_ = deja_dup_duplicity_info_get_default ()), (_tmp0_ == NULL) ? NULL : (_tmp0_ = (g_object_unref (_tmp0_), NULL)), _tmp1_)) { + return FALSE; + } { GList* s_collection; GList* s_it; s_collection = self->priv->backend_argv; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp1; + const char* _tmp4_; char* s; - _tmp1 = NULL; - s = (_tmp1 = (const char*) s_it->data, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); + _tmp4_ = NULL; + s = (_tmp4_ = (const char*) s_it->data, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)); { if (_vala_strcmp0 (s, "--short-filenames") == 0) { - gboolean _tmp0; - return (_tmp0 = FALSE, s = (g_free (s), NULL), _tmp0); + gboolean _tmp3_; + return (_tmp3_ = FALSE, s = (g_free (s), NULL), _tmp3_); } s = (g_free (s), NULL); } @@ -462,33 +701,33 @@ static void deja_dup_duplicity_handle_message (DejaDupDuplicity* self, DejaDupDuplicityInstance* inst, char** control_line, int control_line_length1, GList* data_lines, const char* user_text) { - const char* _tmp0; + const char* _tmp0_; char* keyword; - GQuark _tmp2; - char* _tmp1; + GQuark _tmp2_; + const char* _tmp1_; g_return_if_fail (self != NULL); g_return_if_fail (inst != NULL); g_return_if_fail (user_text != NULL); if (control_line_length1 == 0) { return; } - _tmp0 = NULL; - keyword = (_tmp0 = control_line[0], (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); - _tmp1 = NULL; - static GQuark _tmp2_label0 = 0; - static GQuark _tmp2_label1 = 0; - static GQuark _tmp2_label2 = 0; - _tmp1 = keyword; - _tmp2 = (NULL == _tmp1) ? 0 : g_quark_from_string (_tmp1); - if (_tmp2 == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("ERROR")))) + _tmp0_ = NULL; + keyword = (_tmp0_ = control_line[0], (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + _tmp1_ = NULL; + static GQuark _tmp2__label0 = 0; + static GQuark _tmp2__label1 = 0; + static GQuark _tmp2__label2 = 0; + _tmp1_ = keyword; + _tmp2_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_); + if (_tmp2_ == ((0 != _tmp2__label0) ? _tmp2__label0 : (_tmp2__label0 = g_quark_from_static_string ("ERROR")))) do { deja_dup_duplicity_process_error (self, control_line, control_line_length1, data_lines, user_text); break; - } while (0); else if (_tmp2 == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("INFO")))) + } while (0); else if (_tmp2_ == ((0 != _tmp2__label1) ? _tmp2__label1 : (_tmp2__label1 = g_quark_from_static_string ("INFO")))) do { deja_dup_duplicity_process_info (self, control_line, control_line_length1, data_lines, user_text); break; - } while (0); else if (_tmp2 == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("WARNING")))) + } while (0); else if (_tmp2_ == ((0 != _tmp2__label2) ? _tmp2__label2 : (_tmp2__label2 = g_quark_from_static_string ("WARNING")))) do { deja_dup_duplicity_process_warning (self, control_line, control_line_length1, data_lines, user_text); break; @@ -498,42 +737,42 @@ static void deja_dup_duplicity_real_process_error (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in) { - const char* _tmp0; + const char* _tmp0_; char* text; g_return_if_fail (self != NULL); g_return_if_fail (text_in != NULL); - _tmp0 = NULL; - text = (_tmp0 = text_in, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + text = (_tmp0_ = text_in, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); if (firstline_length1 > 1) { switch (atoi (firstline[1])) { case DEJA_DUP_DUPLICITY_ERROR_EXCEPTION: { - const char* _tmp1; - _tmp1 = NULL; + const char* _tmp1_; + _tmp1_ = NULL; if (firstline_length1 > 2) { - _tmp1 = firstline[2]; + _tmp1_ = firstline[2]; } else { - _tmp1 = ""; + _tmp1_ = ""; } - deja_dup_duplicity_process_exception (self, _tmp1, text); + deja_dup_duplicity_process_exception (self, _tmp1_, text); text = (g_free (text), NULL); return; } case DEJA_DUP_DUPLICITY_ERROR_RESTORE_DIR_NOT_FOUND: { if (deja_dup_duplicity_get_restore_files (self) != NULL) { - char* _tmp3; - char* _tmp2; - _tmp3 = NULL; - _tmp2 = NULL; - text = (_tmp3 = g_strdup_printf (_ ("Could not restore '%s': File not found in backup"), _tmp2 = g_file_get_parse_name ((GFile*) deja_dup_duplicity_get_restore_files (self)->data)), text = (g_free (text), NULL), _tmp3); - _tmp2 = (g_free (_tmp2), NULL); + char* _tmp3_; + char* _tmp2_; + _tmp3_ = NULL; + _tmp2_ = NULL; + text = (_tmp3_ = g_strdup_printf (_ ("Could not restore '%s': File not found in backup"), _tmp2_ = g_file_get_parse_name ((GFile*) deja_dup_duplicity_get_restore_files (self)->data)), text = (g_free (text), NULL), _tmp3_); + _tmp2_ = (g_free (_tmp2_), NULL); } break; } } } - deja_dup_duplicity_show_error (self, text); + deja_dup_duplicity_show_error (self, text, NULL); text = (g_free (text), NULL); } @@ -544,78 +783,145 @@ static void deja_dup_duplicity_process_exception (DejaDupDuplicity* self, const char* exception, const char* text) { - GError * inner_error; - GQuark _tmp3; - char* _tmp2; + GError * _inner_error_; + GQuark _tmp15_; + const char* _tmp14_; g_return_if_fail (self != NULL); g_return_if_fail (exception != NULL); g_return_if_fail (text != NULL); - inner_error = NULL; - _tmp2 = NULL; - static GQuark _tmp3_label0 = 0; - static GQuark _tmp3_label1 = 0; - static GQuark _tmp3_label2 = 0; - static GQuark _tmp3_label3 = 0; - _tmp2 = exception; - _tmp3 = (NULL == _tmp2) ? 0 : g_quark_from_string (_tmp2); - if (_tmp3 == ((0 != _tmp3_label0) ? _tmp3_label0 : (_tmp3_label0 = g_quark_from_static_string ("S3ResponseError")))) + _inner_error_ = NULL; + _tmp14_ = NULL; + static GQuark _tmp15__label0 = 0; + static GQuark _tmp15__label1 = 0; + static GQuark _tmp15__label2 = 0; + static GQuark _tmp15__label3 = 0; + _tmp14_ = exception; + _tmp15_ = (NULL == _tmp14_) ? 0 : g_quark_from_string (_tmp14_); + if (_tmp15_ == ((0 != _tmp15__label0) ? _tmp15__label0 : (_tmp15__label0 = g_quark_from_static_string ("S3ResponseError")))) do { if (strstr (text, "<Code>InvalidAccessKeyId</Code>") != NULL) { - deja_dup_duplicity_show_error (self, _ ("Invalid ID.")); + deja_dup_duplicity_show_error (self, _ ("Invalid ID."), NULL); } else { if (strstr (text, "<Code>SignatureDoesNotMatch</Code>") != NULL) { - deja_dup_duplicity_show_error (self, _ ("Invalid secret key.")); + deja_dup_duplicity_show_error (self, _ ("Invalid secret key."), NULL); } else { if (strstr (text, "<Code>NotSignedUp</Code>") != NULL) { - deja_dup_duplicity_show_error (self, _ ("Your Amazon Web Services account is not signed up for the S3 service.")); + deja_dup_duplicity_show_error (self, _ ("Your Amazon Web Services account is not signed up for the S3 service."), NULL); } } } break; - } while (0); else if (_tmp3 == ((0 != _tmp3_label1) ? _tmp3_label1 : (_tmp3_label1 = g_quark_from_static_string ("S3CreateError")))) + } while (0); else if (_tmp15_ == ((0 != _tmp15__label1) ? _tmp15__label1 : (_tmp15__label1 = g_quark_from_static_string ("S3CreateError")))) do { if (strstr (text, "<Code>BucketAlreadyExists</Code>") != NULL) { - if (deja_dup_backend_s3_bump_bucket ((DEJA_DUP_BACKEND_S3 (self->priv->_backend)))) { - char* _tmp0; - char* _tmp1; - _tmp0 = deja_dup_backend_get_location (self->priv->_backend, &inner_error); - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (deja_dup_backend_s3_bump_bucket (DEJA_DUP_BACKEND_S3 (self->priv->_backend))) { + char* _tmp0_; + char* _tmp1_; + _tmp0_ = deja_dup_backend_get_location (self->priv->_backend, &_inner_error_); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } - _tmp1 = NULL; - self->priv->remote = (_tmp1 = _tmp0, self->priv->remote = (g_free (self->priv->remote), NULL), _tmp1); + _tmp1_ = NULL; + self->priv->remote = (_tmp1_ = _tmp0_, self->priv->remote = (g_free (self->priv->remote), NULL), _tmp1_); deja_dup_duplicity_restart (self); } else { - deja_dup_duplicity_show_error (self, _ ("S3 bucket name is not available.")); + deja_dup_duplicity_show_error (self, _ ("S3 bucket name is not available."), NULL); } } break; - } while (0); else if (_tmp3 == ((0 != _tmp3_label2) ? _tmp3_label2 : (_tmp3_label2 = g_quark_from_static_string ("IOError")))) + } while (0); else if (_tmp15_ == ((0 != _tmp15__label2) ? _tmp15__label2 : (_tmp15__label2 = g_quark_from_static_string ("IOError")))) do { if (strstr (text, "GnuPG") != NULL) { - deja_dup_duplicity_show_error (self, _ ("Bad encryption password.")); + deja_dup_duplicity_show_error (self, _ ("Bad encryption password."), NULL); } else { - /* Very possibly a FAT file system that can't handle the colons that - duplicity likes to use. Try again with --short-filenames - But first make sure we aren't already doing that.*/ - deja_dup_duplicity_restart_with_short_filenames_if_needed (self); + gboolean _tmp2_; + _tmp2_ = FALSE; + if (strstr (text, "[Errno 5]") != NULL) { + _tmp2_ = self->priv->last_touched_file != NULL; + } else { + _tmp2_ = FALSE; + } + if (_tmp2_) { + /* I/O Error*/ + if (self->priv->_mode == DEJA_DUP_OPERATION_MODE_BACKUP) { + char* _tmp4_; + char* _tmp3_; + _tmp4_ = NULL; + _tmp3_ = NULL; + deja_dup_duplicity_show_error (self, _tmp4_ = g_strdup_printf (_ ("Error reading file '%s'."), _tmp3_ = g_file_get_parse_name (self->priv->last_touched_file)), NULL); + _tmp4_ = (g_free (_tmp4_), NULL); + _tmp3_ = (g_free (_tmp3_), NULL); + } else { + char* _tmp6_; + char* _tmp5_; + _tmp6_ = NULL; + _tmp5_ = NULL; + deja_dup_duplicity_show_error (self, _tmp6_ = g_strdup_printf (_ ("Error writing file '%s'."), _tmp5_ = g_file_get_parse_name (self->priv->last_touched_file)), NULL); + _tmp6_ = (g_free (_tmp6_), NULL); + _tmp5_ = (g_free (_tmp5_), NULL); + } + } else { + if (strstr (text, "[Errno 28]") != NULL) { + char* where; + char* _tmp11_; + /* No space left on device*/ + where = NULL; + if (self->priv->_mode == DEJA_DUP_OPERATION_MODE_BACKUP) { + char* _tmp7_; + char* _tmp8_; + _tmp7_ = deja_dup_backend_get_location_pretty (self->priv->_backend, &_inner_error_); + if (_inner_error_ != NULL) { + where = (g_free (where), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + _tmp8_ = NULL; + where = (_tmp8_ = _tmp7_, where = (g_free (where), NULL), _tmp8_); + } else { + char* _tmp10_; + const char* _tmp9_; + _tmp10_ = NULL; + _tmp9_ = NULL; + where = (_tmp10_ = (_tmp9_ = self->priv->_local, (_tmp9_ == NULL) ? NULL : g_strdup (_tmp9_)), where = (g_free (where), NULL), _tmp10_); + } + _tmp11_ = NULL; + deja_dup_duplicity_show_error (self, _tmp11_ = g_strdup_printf (_ ("No space left in %s"), where), NULL); + _tmp11_ = (g_free (_tmp11_), NULL); + where = (g_free (where), NULL); + } else { + DejaDupDuplicityInfo* _tmp12_; + gboolean _tmp13_; + /* Very possibly a FAT file system that can't handle the colons that + duplicity likes to use. Try again with --short-filenames + But first make sure we aren't already doing that. + Happens on backup only.*/ + _tmp12_ = NULL; + if ((_tmp13_ = !deja_dup_duplicity_info_get_new_time_format (_tmp12_ = deja_dup_duplicity_info_get_default ()), (_tmp12_ == NULL) ? NULL : (_tmp12_ = (g_object_unref (_tmp12_), NULL)), _tmp13_)) { + deja_dup_duplicity_restart_with_short_filenames_if_needed (self); + } + } + } } break; - } while (0); else if (_tmp3 == ((0 != _tmp3_label3) ? _tmp3_label3 : (_tmp3_label3 = g_quark_from_static_string ("CollectionsError")))) + } while (0); else if (_tmp15_ == ((0 != _tmp15__label3) ? _tmp15__label3 : (_tmp15__label3 = g_quark_from_static_string ("CollectionsError")))) do { if (deja_dup_duplicity_restart_with_short_filenames_if_needed (self)) { - deja_dup_duplicity_show_error (self, _ ("No backup files found")); + deja_dup_duplicity_show_error (self, _ ("No backup files found"), NULL); } break; } while (0); + /* For most, don't do anything special. Show generic 'unknown error' + message, but provide the exception text for better bug reports. + Plus, sometimes it may clue the user in to what's wrong.*/ + if (!self->priv->_error_issued) { + deja_dup_duplicity_show_error (self, _ ("Failed with an unknown error."), text); + } } -/* For most, don't do anything. Error string won't be useful to humans, and - by not raising it, we'll eventually hit the 'unknown error' - message which is slightly better than a giant exception string.*/ static void deja_dup_duplicity_real_process_info (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text) { g_return_if_fail (self != NULL); g_return_if_fail (text != NULL); @@ -659,44 +965,68 @@ static void deja_dup_duplicity_process_diff_file (DejaDupDuplicity* self, const char* file) { + GFile* gfile; + GFile* _tmp1_; + GFile* _tmp0_; + gboolean _tmp2_; g_return_if_fail (self != NULL); g_return_if_fail (file != NULL); + gfile = deja_dup_duplicity_make_file_obj (self, file); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->priv->last_touched_file = (_tmp1_ = (_tmp0_ = gfile, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->last_touched_file == NULL) ? NULL : (self->priv->last_touched_file = (g_object_unref (self->priv->last_touched_file), NULL)), _tmp1_); + _tmp2_ = FALSE; if (self->priv->_state != DEJA_DUP_DUPLICITY_STATE_DRY_RUN) { - GFile* _tmp0; - _tmp0 = NULL; - g_signal_emit_by_name (self, "action-file-changed", _tmp0 = deja_dup_duplicity_make_file_obj (self, file)); - (_tmp0 == NULL) ? NULL : (_tmp0 = (g_object_unref (_tmp0), NULL)); + _tmp2_ = hacks_file_query_file_type (gfile, G_FILE_QUERY_INFO_NONE) != G_FILE_TYPE_DIRECTORY; + } else { + _tmp2_ = FALSE; + } + if (_tmp2_) { + g_signal_emit_by_name (self, "action-file-changed", gfile); } + (gfile == NULL) ? NULL : (gfile = (g_object_unref (gfile), NULL)); } static void deja_dup_duplicity_process_patch_file (DejaDupDuplicity* self, const char* file) { + GFile* gfile; + GFile* _tmp1_; + GFile* _tmp0_; + gboolean _tmp2_; g_return_if_fail (self != NULL); g_return_if_fail (file != NULL); + gfile = deja_dup_duplicity_make_file_obj (self, file); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->priv->last_touched_file = (_tmp1_ = (_tmp0_ = gfile, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (self->priv->last_touched_file == NULL) ? NULL : (self->priv->last_touched_file = (g_object_unref (self->priv->last_touched_file), NULL)), _tmp1_); + _tmp2_ = FALSE; if (self->priv->_state != DEJA_DUP_DUPLICITY_STATE_DRY_RUN) { - GFile* _tmp0; - _tmp0 = NULL; - g_signal_emit_by_name (self, "action-file-changed", _tmp0 = deja_dup_duplicity_make_file_obj (self, file)); - (_tmp0 == NULL) ? NULL : (_tmp0 = (g_object_unref (_tmp0), NULL)); + _tmp2_ = hacks_file_query_file_type (gfile, G_FILE_QUERY_INFO_NONE) != G_FILE_TYPE_DIRECTORY; + } else { + _tmp2_ = FALSE; } + if (_tmp2_) { + g_signal_emit_by_name (self, "action-file-changed", gfile); + } + (gfile == NULL) ? NULL : (gfile = (g_object_unref (gfile), NULL)); } static void deja_dup_duplicity_process_progress (DejaDupDuplicity* self, char** firstline, int firstline_length1) { - gboolean _tmp0; - DejaDupDuplicityInfo* _tmp1; - gboolean _tmp2; + gboolean _tmp0_; + DejaDupDuplicityInfo* _tmp1_; + gboolean _tmp2_; double total; double percent; g_return_if_fail (self != NULL); - _tmp0 = FALSE; - _tmp1 = NULL; - if ((_tmp2 = !deja_dup_duplicity_info_get_has_restore_progress (_tmp1 = deja_dup_duplicity_info_get_default ()), (_tmp1 == NULL) ? NULL : (_tmp1 = (g_object_unref (_tmp1), NULL)), _tmp2)) { - _tmp0 = self->priv->_mode == DEJA_DUP_OPERATION_MODE_RESTORE; + _tmp0_ = FALSE; + _tmp1_ = NULL; + if ((_tmp2_ = !deja_dup_duplicity_info_get_has_restore_progress (_tmp1_ = deja_dup_duplicity_info_get_default ()), (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL)), _tmp2_)) { + _tmp0_ = self->priv->_mode == DEJA_DUP_OPERATION_MODE_RESTORE; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - if (_tmp0) { + if (_tmp0_) { return; } total = 0.0; @@ -731,27 +1061,34 @@ g_return_val_if_fail (file != NULL, NULL); /* All files are relative to root.*/ if (deja_dup_duplicity_root == NULL) { - GFile* _tmp0; - _tmp0 = NULL; - deja_dup_duplicity_root = (_tmp0 = g_file_new_for_path ("/"), (deja_dup_duplicity_root == NULL) ? NULL : (deja_dup_duplicity_root = (g_object_unref (deja_dup_duplicity_root), NULL)), _tmp0); + GFile* _tmp0_; + _tmp0_ = NULL; + deja_dup_duplicity_root = (_tmp0_ = g_file_new_for_path ("/"), (deja_dup_duplicity_root == NULL) ? NULL : (deja_dup_duplicity_root = (g_object_unref (deja_dup_duplicity_root), NULL)), _tmp0_); } return g_file_resolve_relative_path (deja_dup_duplicity_root, file); } +static glong string_get_length (const char* self) { + g_return_val_if_fail (self != NULL, 0L); + return g_utf8_strlen (self, -1); +} + + static void deja_dup_duplicity_process_collection_status (DejaDupDuplicity* self, GList* lines) { - GTimeVal _tmp0 = {0}; + GTimeVal _tmp0_ = {0}; GTimeVal timeval; GList* dates; gboolean in_chain; - gboolean _tmp8; + gboolean _tmp8_; + GList* _tmp9_; g_return_if_fail (self != NULL); /* Collection status is a bunch of lines, some of which are indented, which contain information about specific chains. We gather this all up and report back to caller via a signal. We're really only interested in the list of entries in the complete chain, though.*/ - timeval = (g_get_current_time (&_tmp0), _tmp0); + timeval = (g_get_current_time (&_tmp0_), _tmp0_); dates = NULL; in_chain = FALSE; { @@ -759,51 +1096,51 @@ GList* line_it; line_collection = lines; for (line_it = line_collection; line_it != NULL; line_it = line_it->next) { - const char* _tmp7; + const char* _tmp7_; char* line; - _tmp7 = NULL; - line = (_tmp7 = (const char*) line_it->data, (_tmp7 == NULL) ? NULL : g_strdup (_tmp7)); + _tmp7_ = NULL; + line = (_tmp7_ = (const char*) line_it->data, (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_)); { if (_vala_strcmp0 (line, "chain-complete") == 0) { in_chain = TRUE; } else { - gboolean _tmp1; - gboolean _tmp2; - _tmp1 = FALSE; - _tmp2 = FALSE; + gboolean _tmp1_; + gboolean _tmp2_; + _tmp1_ = FALSE; + _tmp2_ = FALSE; if (in_chain) { - _tmp2 = string_get_length (line) > 0; + _tmp2_ = string_get_length (line) > 0; } else { - _tmp2 = FALSE; + _tmp2_ = FALSE; } - if (_tmp2) { - _tmp1 = g_utf8_get_char (g_utf8_offset_to_pointer (line, 0)) == ' '; + if (_tmp2_) { + _tmp1_ = g_utf8_get_char (g_utf8_offset_to_pointer (line, 0)) == ' '; } else { - _tmp1 = FALSE; + _tmp1_ = FALSE; } - if (_tmp1) { - char** _tmp4; + if (_tmp1_) { + char** _tmp4_; gint tokens_size; gint tokens_length1; - char** _tmp3; + char** _tmp3_; char** tokens; - gboolean _tmp5; + gboolean _tmp5_; /* OK, appears to be a date line. Try to parse. Should look like: - ' inc TIMESTR NUMVOLS'. Since there's a space at the beginnning, + ' inc TIMESTR NUMVOLS'. Since there's a space at the beginning, when we tokenize it, we should expect an extra token at the front.*/ - _tmp4 = NULL; - _tmp3 = NULL; - tokens = (_tmp4 = _tmp3 = g_strsplit (line, " ", 0), tokens_length1 = _vala_array_length (_tmp3), tokens_size = tokens_length1, _tmp4); - _tmp5 = FALSE; + _tmp4_ = NULL; + _tmp3_ = NULL; + tokens = (_tmp4_ = _tmp3_ = g_strsplit (line, " ", 0), tokens_length1 = _vala_array_length (_tmp3_), tokens_size = tokens_length1, _tmp4_); + _tmp5_ = FALSE; if (tokens_length1 > 2) { - _tmp5 = g_time_val_from_iso8601 (tokens[2], &timeval); + _tmp5_ = g_time_val_from_iso8601 (tokens[2], &timeval); } else { - _tmp5 = FALSE; + _tmp5_ = FALSE; } - if (_tmp5) { - const char* _tmp6; - _tmp6 = NULL; - dates = g_list_append (dates, (_tmp6 = tokens[2], (_tmp6 == NULL) ? NULL : g_strdup (_tmp6))); + if (_tmp5_) { + const char* _tmp6_; + _tmp6_ = NULL; + dates = g_list_append (dates, (_tmp6_ = tokens[2], (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_))); } tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL); } else { @@ -816,19 +1153,40 @@ } } } - _tmp8 = FALSE; + _tmp8_ = FALSE; if (self->priv->_mode == DEJA_DUP_OPERATION_MODE_STATUS) { - _tmp8 = g_list_length (dates) == 0; + _tmp8_ = g_list_length (dates) == 0; } else { - _tmp8 = FALSE; + _tmp8_ = FALSE; } - if (_tmp8) { + if (_tmp8_) { /* may not have found short-filenamed-backups*/ if (deja_dup_duplicity_restart_with_short_filenames_if_needed (self)) { (dates == NULL) ? NULL : (dates = (_g_list_free_g_free (dates), NULL)); return; } } + self->priv->got_collection_info = TRUE; + _tmp9_ = NULL; + self->priv->collection_info = (_tmp9_ = NULL, (self->priv->collection_info == NULL) ? NULL : (self->priv->collection_info = (_g_list_free_g_free (self->priv->collection_info), NULL)), _tmp9_); + { + GList* s_collection; + GList* s_it; + s_collection = dates; + for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { + const char* _tmp11_; + char* s; + _tmp11_ = NULL; + s = (_tmp11_ = (const char*) s_it->data, (_tmp11_ == NULL) ? NULL : g_strdup (_tmp11_)); + { + const char* _tmp10_; + _tmp10_ = NULL; + self->priv->collection_info = g_list_append (self->priv->collection_info, (_tmp10_ = s, (_tmp10_ == NULL) ? NULL : g_strdup (_tmp10_))); + s = (g_free (s), NULL); + } + } + } + /* we want to keep our own copy too*/ g_signal_emit_by_name (self, "collection-dates", dates); (dates == NULL) ? NULL : (dates = (_g_list_free_g_free (dates), NULL)); } @@ -858,11 +1216,13 @@ } -static void deja_dup_duplicity_show_error (DejaDupDuplicity* self, const char* errorstr) { +static void deja_dup_duplicity_show_error (DejaDupDuplicity* self, const char* errorstr, const char* detail) { g_return_if_fail (self != NULL); g_return_if_fail (errorstr != NULL); - deja_dup_duplicity_set_error_issued (self, TRUE); - g_signal_emit_by_name (self, "raise-error", errorstr, NULL); + if (self->priv->_error_issued == FALSE) { + deja_dup_duplicity_set_error_issued (self, TRUE); + g_signal_emit_by_name (self, "raise-error", errorstr, detail); + } } @@ -877,55 +1237,55 @@ static void deja_dup_duplicity_connect_and_start (DejaDupDuplicity* self, GList* argv_extra, GList* envp_extra, GList* argv_entire, const char* custom_local) { - GError * inner_error; - DejaDupDuplicityInstance* _tmp2; - GList* _tmp3; + GError * _inner_error_; + DejaDupDuplicityInstance* _tmp2_; + GList* _tmp3_; GList* master_argv; - const char* _tmp4; + const char* _tmp4_; const char* local_arg; GList* argv; GList* envp; g_return_if_fail (self != NULL); - inner_error = NULL; + _inner_error_ = NULL; if (self->priv->inst != NULL) { - guint _tmp0; - guint _tmp1; - g_signal_handlers_disconnect_matched (self->priv->inst, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_DUPLICITY_INSTANCE, &_tmp0, NULL, FALSE), _tmp0), 0, NULL, (GCallback) _deja_dup_duplicity_handle_done_deja_dup_duplicity_instance_done, self); - g_signal_handlers_disconnect_matched (self->priv->inst, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("message", DEJA_DUP_TYPE_DUPLICITY_INSTANCE, &_tmp1, NULL, FALSE), _tmp1), 0, NULL, (GCallback) _deja_dup_duplicity_handle_message_deja_dup_duplicity_instance_message, self); + guint _tmp0_; + guint _tmp1_; + g_signal_handlers_disconnect_matched (self->priv->inst, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("done", DEJA_DUP_TYPE_DUPLICITY_INSTANCE, &_tmp0_, NULL, FALSE), _tmp0_), 0, NULL, (GCallback) _deja_dup_duplicity_handle_done_deja_dup_duplicity_instance_done, self); + g_signal_handlers_disconnect_matched (self->priv->inst, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, (g_signal_parse_name ("message", DEJA_DUP_TYPE_DUPLICITY_INSTANCE, &_tmp1_, NULL, FALSE), _tmp1_), 0, NULL, (GCallback) _deja_dup_duplicity_handle_message_deja_dup_duplicity_instance_message, self); deja_dup_duplicity_instance_cancel (self->priv->inst); } - _tmp2 = NULL; - self->priv->inst = (_tmp2 = deja_dup_duplicity_instance_new (), (self->priv->inst == NULL) ? NULL : (self->priv->inst = (g_object_unref (self->priv->inst), NULL)), _tmp2); + _tmp2_ = NULL; + self->priv->inst = (_tmp2_ = deja_dup_duplicity_instance_new (), (self->priv->inst == NULL) ? NULL : (self->priv->inst = (g_object_unref (self->priv->inst), NULL)), _tmp2_); g_signal_connect_object (self->priv->inst, "done", (GCallback) _deja_dup_duplicity_handle_done_deja_dup_duplicity_instance_done, self, 0); g_signal_connect_object (self->priv->inst, "message", (GCallback) _deja_dup_duplicity_handle_message_deja_dup_duplicity_instance_message, self, 0); - _tmp3 = NULL; + _tmp3_ = NULL; if (argv_entire == NULL) { - _tmp3 = self->priv->saved_argv; + _tmp3_ = self->priv->saved_argv; } else { - _tmp3 = argv_entire; + _tmp3_ = argv_entire; } - master_argv = _tmp3; - _tmp4 = NULL; + master_argv = _tmp3_; + _tmp4_ = NULL; if (custom_local == NULL) { - _tmp4 = self->priv->_local; + _tmp4_ = self->priv->_local; } else { - _tmp4 = custom_local; + _tmp4_ = custom_local; } - local_arg = _tmp4; + local_arg = _tmp4_; argv = NULL; { GList* s_collection; GList* s_it; s_collection = master_argv; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp6; + const char* _tmp6_; char* s; - _tmp6 = NULL; - s = (_tmp6 = (const char*) s_it->data, (_tmp6 == NULL) ? NULL : g_strdup (_tmp6)); + _tmp6_ = NULL; + s = (_tmp6_ = (const char*) s_it->data, (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_)); { - const char* _tmp5; - _tmp5 = NULL; - argv = g_list_append (argv, (_tmp5 = s, (_tmp5 == NULL) ? NULL : g_strdup (_tmp5))); + const char* _tmp5_; + _tmp5_ = NULL; + argv = g_list_append (argv, (_tmp5_ = s, (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_))); s = (g_free (s), NULL); } } @@ -935,14 +1295,14 @@ GList* s_it; s_collection = argv_extra; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp8; + const char* _tmp8_; char* s; - _tmp8 = NULL; - s = (_tmp8 = (const char*) s_it->data, (_tmp8 == NULL) ? NULL : g_strdup (_tmp8)); + _tmp8_ = NULL; + s = (_tmp8_ = (const char*) s_it->data, (_tmp8_ == NULL) ? NULL : g_strdup (_tmp8_)); { - const char* _tmp7; - _tmp7 = NULL; - argv = g_list_append (argv, (_tmp7 = s, (_tmp7 == NULL) ? NULL : g_strdup (_tmp7))); + const char* _tmp7_; + _tmp7_ = NULL; + argv = g_list_append (argv, (_tmp7_ = s, (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_))); s = (g_free (s), NULL); } } @@ -952,14 +1312,14 @@ GList* s_it; s_collection = self->priv->backend_argv; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp10; + const char* _tmp10_; char* s; - _tmp10 = NULL; - s = (_tmp10 = (const char*) s_it->data, (_tmp10 == NULL) ? NULL : g_strdup (_tmp10)); + _tmp10_ = NULL; + s = (_tmp10_ = (const char*) s_it->data, (_tmp10_ == NULL) ? NULL : g_strdup (_tmp10_)); { - const char* _tmp9; - _tmp9 = NULL; - argv = g_list_append (argv, (_tmp9 = s, (_tmp9 == NULL) ? NULL : g_strdup (_tmp9))); + const char* _tmp9_; + _tmp9_ = NULL; + argv = g_list_append (argv, (_tmp9_ = s, (_tmp9_ == NULL) ? NULL : g_strdup (_tmp9_))); s = (g_free (s), NULL); } } @@ -969,31 +1329,31 @@ switch (self->priv->_mode) { case DEJA_DUP_OPERATION_MODE_BACKUP: { - const char* _tmp11; - const char* _tmp12; - _tmp11 = NULL; - argv = g_list_append (argv, (_tmp11 = local_arg, (_tmp11 == NULL) ? NULL : g_strdup (_tmp11))); - _tmp12 = NULL; - argv = g_list_append (argv, (_tmp12 = self->priv->remote, (_tmp12 == NULL) ? NULL : g_strdup (_tmp12))); + const char* _tmp11_; + const char* _tmp12_; + _tmp11_ = NULL; + argv = g_list_append (argv, (_tmp11_ = local_arg, (_tmp11_ == NULL) ? NULL : g_strdup (_tmp11_))); + _tmp12_ = NULL; + argv = g_list_append (argv, (_tmp12_ = self->priv->remote, (_tmp12_ == NULL) ? NULL : g_strdup (_tmp12_))); break; } case DEJA_DUP_OPERATION_MODE_RESTORE: { - const char* _tmp13; - const char* _tmp14; + const char* _tmp13_; + const char* _tmp14_; argv = g_list_prepend (argv, g_strdup ("restore")); - _tmp13 = NULL; - argv = g_list_append (argv, (_tmp13 = self->priv->remote, (_tmp13 == NULL) ? NULL : g_strdup (_tmp13))); - _tmp14 = NULL; - argv = g_list_append (argv, (_tmp14 = local_arg, (_tmp14 == NULL) ? NULL : g_strdup (_tmp14))); + _tmp13_ = NULL; + argv = g_list_append (argv, (_tmp13_ = self->priv->remote, (_tmp13_ == NULL) ? NULL : g_strdup (_tmp13_))); + _tmp14_ = NULL; + argv = g_list_append (argv, (_tmp14_ = local_arg, (_tmp14_ == NULL) ? NULL : g_strdup (_tmp14_))); break; } case DEJA_DUP_OPERATION_MODE_STATUS: { - const char* _tmp15; + const char* _tmp15_; argv = g_list_prepend (argv, g_strdup ("collection-status")); - _tmp15 = NULL; - argv = g_list_append (argv, (_tmp15 = self->priv->remote, (_tmp15 == NULL) ? NULL : g_strdup (_tmp15))); + _tmp15_ = NULL; + argv = g_list_append (argv, (_tmp15_ = self->priv->remote, (_tmp15_ == NULL) ? NULL : g_strdup (_tmp15_))); break; } } @@ -1004,14 +1364,14 @@ GList* s_it; s_collection = self->priv->saved_envp; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp17; + const char* _tmp17_; char* s; - _tmp17 = NULL; - s = (_tmp17 = (const char*) s_it->data, (_tmp17 == NULL) ? NULL : g_strdup (_tmp17)); + _tmp17_ = NULL; + s = (_tmp17_ = (const char*) s_it->data, (_tmp17_ == NULL) ? NULL : g_strdup (_tmp17_)); { - const char* _tmp16; - _tmp16 = NULL; - envp = g_list_append (envp, (_tmp16 = s, (_tmp16 == NULL) ? NULL : g_strdup (_tmp16))); + const char* _tmp16_; + _tmp16_ = NULL; + envp = g_list_append (envp, (_tmp16_ = s, (_tmp16_ == NULL) ? NULL : g_strdup (_tmp16_))); s = (g_free (s), NULL); } } @@ -1021,43 +1381,43 @@ GList* s_it; s_collection = envp_extra; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp19; + const char* _tmp19_; char* s; - _tmp19 = NULL; - s = (_tmp19 = (const char*) s_it->data, (_tmp19 == NULL) ? NULL : g_strdup (_tmp19)); + _tmp19_ = NULL; + s = (_tmp19_ = (const char*) s_it->data, (_tmp19_ == NULL) ? NULL : g_strdup (_tmp19_)); { - const char* _tmp18; - _tmp18 = NULL; - envp = g_list_append (envp, (_tmp18 = s, (_tmp18 == NULL) ? NULL : g_strdup (_tmp18))); + const char* _tmp18_; + _tmp18_ = NULL; + envp = g_list_append (envp, (_tmp18_ = s, (_tmp18_ == NULL) ? NULL : g_strdup (_tmp18_))); s = (g_free (s), NULL); } } } { - deja_dup_duplicity_instance_start (self->priv->inst, argv, envp, &inner_error); - if (inner_error != NULL) { - goto __catch4_g_error; - goto __finally4; + deja_dup_duplicity_instance_start (self->priv->inst, argv, envp, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch37_g_error; + goto __finally37; } } - goto __finally4; - __catch4_g_error: + goto __finally37; + __catch37_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - deja_dup_duplicity_show_error (self, e->message); + deja_dup_duplicity_show_error (self, e->message, NULL); g_signal_emit_by_name (self, "done", FALSE, FALSE); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally4: - if (inner_error != NULL) { + __finally37: + if (_inner_error_ != NULL) { (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); (envp == NULL) ? NULL : (envp = (_g_list_free_g_free (envp), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); @@ -1072,16 +1432,29 @@ static void deja_dup_duplicity_set_toplevel (DejaDupDuplicity* self, GtkWindow* value) { - GtkWindow* _tmp2; - GtkWindow* _tmp1; + GtkWindow* _tmp2_; + GtkWindow* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_toplevel = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_toplevel = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)), _tmp2_); g_object_notify ((GObject *) self, "toplevel"); } +DejaDupOperationMode deja_dup_duplicity_get_original_mode (DejaDupDuplicity* self) { + g_return_val_if_fail (self != NULL, 0); + return self->priv->_original_mode; +} + + +static void deja_dup_duplicity_set_original_mode (DejaDupDuplicity* self, DejaDupOperationMode value) { + g_return_if_fail (self != NULL); + self->priv->_original_mode = value; + g_object_notify ((GObject *) self, "original-mode"); +} + + DejaDupOperationMode deja_dup_duplicity_get_mode (DejaDupDuplicity* self) { g_return_val_if_fail (self != NULL, 0); return self->priv->_mode; @@ -1115,12 +1488,12 @@ void deja_dup_duplicity_set_local (DejaDupDuplicity* self, const char* value) { - char* _tmp2; - const char* _tmp1; + char* _tmp2_; + const char* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_local = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), self->priv->_local = (g_free (self->priv->_local), NULL), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_local = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->_local = (g_free (self->priv->_local), NULL), _tmp2_); g_object_notify ((GObject *) self, "local"); } @@ -1132,12 +1505,12 @@ void deja_dup_duplicity_set_backend (DejaDupDuplicity* self, DejaDupBackend* value) { - DejaDupBackend* _tmp2; - DejaDupBackend* _tmp1; + DejaDupBackend* _tmp2_; + DejaDupBackend* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_backend = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_backend == NULL) ? NULL : (self->priv->_backend = (g_object_unref (self->priv->_backend), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_backend = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_backend == NULL) ? NULL : (self->priv->_backend = (g_object_unref (self->priv->_backend), NULL)), _tmp2_); g_object_notify ((GObject *) self, "backend"); } @@ -1149,34 +1522,34 @@ void deja_dup_duplicity_set_restore_files (DejaDupDuplicity* self, GList* value) { - GList* _tmp2; + GList* _tmp2_; g_return_if_fail (self != NULL); { GList* f_collection; GList* f_it; f_collection = self->priv->_restore_files; for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp1; + GFile* _tmp1_; GFile* f; - _tmp1 = NULL; - f = (_tmp1 = (GFile*) f_it->data, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); + _tmp1_ = NULL; + f = (_tmp1_ = (GFile*) f_it->data, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); { g_object_unref ((GObject*) f); (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); } } } - _tmp2 = NULL; - self->priv->_restore_files = (_tmp2 = g_list_copy (value), (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)), _tmp2); + _tmp2_ = NULL; + self->priv->_restore_files = (_tmp2_ = g_list_copy (value), (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)), _tmp2_); { GList* f_collection; GList* f_it; f_collection = self->priv->_restore_files; for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp3; + GFile* _tmp3_; GFile* f; - _tmp3 = NULL; - f = (_tmp3 = (GFile*) f_it->data, (_tmp3 == NULL) ? NULL : g_object_ref (_tmp3)); + _tmp3_ = NULL; + f = (_tmp3_ = (GFile*) f_it->data, (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); { g_object_ref ((GObject*) f); (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); @@ -1200,6 +1573,72 @@ } +static void deja_dup_duplicity_class_init (DejaDupDuplicityClass * klass) { + deja_dup_duplicity_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupDuplicityPrivate)); + DEJA_DUP_DUPLICITY_CLASS (klass)->start = deja_dup_duplicity_real_start; + DEJA_DUP_DUPLICITY_CLASS (klass)->process_error = deja_dup_duplicity_real_process_error; + DEJA_DUP_DUPLICITY_CLASS (klass)->process_info = deja_dup_duplicity_real_process_info; + DEJA_DUP_DUPLICITY_CLASS (klass)->process_warning = deja_dup_duplicity_real_process_warning; + G_OBJECT_CLASS (klass)->get_property = deja_dup_duplicity_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_duplicity_set_property; + G_OBJECT_CLASS (klass)->finalize = deja_dup_duplicity_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_TOPLEVEL, g_param_spec_object ("toplevel", "toplevel", "toplevel", GTK_TYPE_WINDOW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_ORIGINAL_MODE, g_param_spec_enum ("original-mode", "original-mode", "original-mode", DEJA_DUP_OPERATION_TYPE_MODE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_MODE, g_param_spec_enum ("mode", "mode", "mode", DEJA_DUP_OPERATION_TYPE_MODE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_ERROR_ISSUED, g_param_spec_boolean ("error-issued", "error-issued", "error-issued", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_LOCAL, g_param_spec_string ("local", "local", "local", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_BACKEND, g_param_spec_object ("backend", "backend", "backend", DEJA_DUP_TYPE_BACKEND, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_RESTORE_FILES, g_param_spec_pointer ("restore-files", "restore-files", "restore-files", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_STATE, g_param_spec_enum ("state", "state", "state", DEJA_DUP_DUPLICITY_TYPE_STATE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_signal_new ("done", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); + g_signal_new ("raise_error", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); + g_signal_new ("action_desc_changed", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); + g_signal_new ("action_file_changed", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE); + g_signal_new ("progress", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); + g_signal_new ("collection_dates", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); +} + + +static void deja_dup_duplicity_instance_init (DejaDupDuplicity * self) { + self->priv = DEJA_DUP_DUPLICITY_GET_PRIVATE (self); + self->priv->_error_issued = FALSE; + self->priv->has_progress_total = FALSE; + self->priv->checked_collection_info = FALSE; + self->priv->got_collection_info = FALSE; + self->priv->collection_info = NULL; + self->priv->last_touched_file = NULL; +} + + +static void deja_dup_duplicity_finalize (GObject* obj) { + DejaDupDuplicity * self; + self = DEJA_DUP_DUPLICITY (obj); + (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)); + self->priv->_local = (g_free (self->priv->_local), NULL); + (self->priv->_backend == NULL) ? NULL : (self->priv->_backend = (g_object_unref (self->priv->_backend), NULL)); + (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)); + (self->priv->inst == NULL) ? NULL : (self->priv->inst = (g_object_unref (self->priv->inst), NULL)); + self->priv->remote = (g_free (self->priv->remote), NULL); + (self->priv->backend_argv == NULL) ? NULL : (self->priv->backend_argv = (_g_list_free_g_free (self->priv->backend_argv), NULL)); + (self->priv->saved_argv == NULL) ? NULL : (self->priv->saved_argv = (_g_list_free_g_free (self->priv->saved_argv), NULL)); + (self->priv->saved_envp == NULL) ? NULL : (self->priv->saved_envp = (_g_list_free_g_free (self->priv->saved_envp), NULL)); + (self->priv->collection_info == NULL) ? NULL : (self->priv->collection_info = (_g_list_free_g_free (self->priv->collection_info), NULL)); + (self->priv->last_touched_file == NULL) ? NULL : (self->priv->last_touched_file = (g_object_unref (self->priv->last_touched_file), NULL)); + G_OBJECT_CLASS (deja_dup_duplicity_parent_class)->finalize (obj); +} + + +GType deja_dup_duplicity_get_type (void) { + static GType deja_dup_duplicity_type_id = 0; + if (deja_dup_duplicity_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupDuplicityClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_duplicity_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupDuplicity), 0, (GInstanceInitFunc) deja_dup_duplicity_instance_init, NULL }; + deja_dup_duplicity_type_id = g_type_register_static (G_TYPE_OBJECT, "DejaDupDuplicity", &g_define_type_info, 0); + } + return deja_dup_duplicity_type_id; +} + + static void deja_dup_duplicity_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { DejaDupDuplicity * self; gpointer boxed; @@ -1208,6 +1647,9 @@ case DEJA_DUP_DUPLICITY_TOPLEVEL: g_value_set_object (value, deja_dup_duplicity_get_toplevel (self)); break; + case DEJA_DUP_DUPLICITY_ORIGINAL_MODE: + g_value_set_enum (value, deja_dup_duplicity_get_original_mode (self)); + break; case DEJA_DUP_DUPLICITY_MODE: g_value_set_enum (value, deja_dup_duplicity_get_mode (self)); break; @@ -1240,6 +1682,9 @@ case DEJA_DUP_DUPLICITY_TOPLEVEL: deja_dup_duplicity_set_toplevel (self, g_value_get_object (value)); break; + case DEJA_DUP_DUPLICITY_ORIGINAL_MODE: + deja_dup_duplicity_set_original_mode (self, g_value_get_enum (value)); + break; case DEJA_DUP_DUPLICITY_MODE: deja_dup_duplicity_set_mode (self, g_value_get_enum (value)); break; @@ -1265,66 +1710,7 @@ } -static void deja_dup_duplicity_class_init (DejaDupDuplicityClass * klass) { - deja_dup_duplicity_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (DejaDupDuplicityPrivate)); - G_OBJECT_CLASS (klass)->get_property = deja_dup_duplicity_get_property; - G_OBJECT_CLASS (klass)->set_property = deja_dup_duplicity_set_property; - G_OBJECT_CLASS (klass)->finalize = deja_dup_duplicity_finalize; - DEJA_DUP_DUPLICITY_CLASS (klass)->start = deja_dup_duplicity_real_start; - DEJA_DUP_DUPLICITY_CLASS (klass)->process_error = deja_dup_duplicity_real_process_error; - DEJA_DUP_DUPLICITY_CLASS (klass)->process_info = deja_dup_duplicity_real_process_info; - DEJA_DUP_DUPLICITY_CLASS (klass)->process_warning = deja_dup_duplicity_real_process_warning; - g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_TOPLEVEL, g_param_spec_object ("toplevel", "toplevel", "toplevel", GTK_TYPE_WINDOW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); - g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_MODE, g_param_spec_enum ("mode", "mode", "mode", DEJA_DUP_OPERATION_TYPE_MODE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_ERROR_ISSUED, g_param_spec_boolean ("error-issued", "error-issued", "error-issued", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_LOCAL, g_param_spec_string ("local", "local", "local", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_BACKEND, g_param_spec_object ("backend", "backend", "backend", DEJA_DUP_TYPE_BACKEND, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_RESTORE_FILES, g_param_spec_pointer ("restore-files", "restore-files", "restore-files", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_STATE, g_param_spec_enum ("state", "state", "state", DEJA_DUP_DUPLICITY_TYPE_STATE, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); - g_signal_new ("done", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); - g_signal_new ("raise_error", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); - g_signal_new ("action_desc_changed", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); - g_signal_new ("action_file_changed", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, G_TYPE_FILE); - g_signal_new ("progress", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); - g_signal_new ("collection_dates", DEJA_DUP_TYPE_DUPLICITY, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); -} - - -static void deja_dup_duplicity_instance_init (DejaDupDuplicity * self) { - self->priv = DEJA_DUP_DUPLICITY_GET_PRIVATE (self); - self->priv->_error_issued = FALSE; - self->priv->has_progress_total = FALSE; -} - - -static void deja_dup_duplicity_finalize (GObject* obj) { - DejaDupDuplicity * self; - self = DEJA_DUP_DUPLICITY (obj); - (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)); - self->priv->_local = (g_free (self->priv->_local), NULL); - (self->priv->_backend == NULL) ? NULL : (self->priv->_backend = (g_object_unref (self->priv->_backend), NULL)); - (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)); - (self->priv->inst == NULL) ? NULL : (self->priv->inst = (g_object_unref (self->priv->inst), NULL)); - self->priv->remote = (g_free (self->priv->remote), NULL); - (self->priv->backend_argv == NULL) ? NULL : (self->priv->backend_argv = (_g_list_free_g_free (self->priv->backend_argv), NULL)); - (self->priv->saved_argv == NULL) ? NULL : (self->priv->saved_argv = (_g_list_free_g_free (self->priv->saved_argv), NULL)); - (self->priv->saved_envp == NULL) ? NULL : (self->priv->saved_envp = (_g_list_free_g_free (self->priv->saved_envp), NULL)); - G_OBJECT_CLASS (deja_dup_duplicity_parent_class)->finalize (obj); -} - - -GType deja_dup_duplicity_get_type (void) { - static GType deja_dup_duplicity_type_id = 0; - if (deja_dup_duplicity_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (DejaDupDuplicityClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_duplicity_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupDuplicity), 0, (GInstanceInitFunc) deja_dup_duplicity_instance_init, NULL }; - deja_dup_duplicity_type_id = g_type_register_static (G_TYPE_OBJECT, "DejaDupDuplicity", &g_define_type_info, 0); - } - return deja_dup_duplicity_type_id; -} - - -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -1333,6 +1719,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/libdeja-dup/Duplicity.h deja-dup-10.0/libdeja-dup/Duplicity.h --- deja-dup-7.4/libdeja-dup/Duplicity.h 2009-02-11 20:35:26.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Duplicity.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,89 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __DUPLICITY_H__ -#define __DUPLICITY_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <string.h> -#include <gio/gio.h> -#include <float.h> -#include <math.h> -#include <Operation.h> -#include <Backend.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ()) -#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity)) -#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) -#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY)) -#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY)) -#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) - -typedef struct _DejaDupDuplicityPrivate DejaDupDuplicityPrivate; - -#define DEJA_DUP_DUPLICITY_TYPE_STATE (deja_dup_duplicity_state_get_type ()) - -struct _DejaDupDuplicity { - GObject parent_instance; - DejaDupDuplicityPrivate * priv; -}; - -struct _DejaDupDuplicityClass { - GObjectClass parent_class; - void (*start) (DejaDupDuplicity* self, DejaDupBackend* backend, const char* remote, gboolean encrypted, GList* argv, GList* envp); - void (*process_error) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); - void (*process_info) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); - void (*process_warning) (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); -}; - -typedef enum { - DEJA_DUP_DUPLICITY_STATE_NORMAL, - DEJA_DUP_DUPLICITY_STATE_DRY_RUN, - DEJA_DUP_DUPLICITY_STATE_CLEANUP -} DejaDupDuplicityState; - - -GType deja_dup_duplicity_state_get_type (void); -#define DEJA_DUP_DUPLICITY_ERROR_RESTORE_DIR_NOT_FOUND 19 -#define DEJA_DUP_DUPLICITY_ERROR_EXCEPTION 30 -#define DEJA_DUP_DUPLICITY_INFO_PROGRESS 2 -#define DEJA_DUP_DUPLICITY_INFO_COLLECTION_STATUS 3 -#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_NEW 4 -#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_CHANGED 5 -#define DEJA_DUP_DUPLICITY_INFO_DIFF_FILE_DELETED 6 -#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_WRITING 7 -#define DEJA_DUP_DUPLICITY_INFO_PATCH_FILE_PATCHING 8 -#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_SIG 2 -#define DEJA_DUP_DUPLICITY_WARNING_UNNECESSARY_SIG 3 -#define DEJA_DUP_DUPLICITY_WARNING_UNMATCHED_SIG 4 -#define DEJA_DUP_DUPLICITY_WARNING_INCOMPLETE_BACKUP 5 -#define DEJA_DUP_DUPLICITY_WARNING_ORPHANED_BACKUP 6 -DejaDupDuplicity* deja_dup_duplicity_construct (GType object_type, DejaDupOperationMode mode, GtkWindow* win); -DejaDupDuplicity* deja_dup_duplicity_new (DejaDupOperationMode mode, GtkWindow* win); -void deja_dup_duplicity_start (DejaDupDuplicity* self, DejaDupBackend* backend, const char* remote, gboolean encrypted, GList* argv, GList* envp); -void deja_dup_duplicity_cancel (DejaDupDuplicity* self); -void deja_dup_duplicity_process_error (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text_in); -void deja_dup_duplicity_process_info (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); -void deja_dup_duplicity_process_warning (DejaDupDuplicity* self, char** firstline, int firstline_length1, GList* data, const char* text); -GtkWindow* deja_dup_duplicity_get_toplevel (DejaDupDuplicity* self); -DejaDupOperationMode deja_dup_duplicity_get_mode (DejaDupDuplicity* self); -gboolean deja_dup_duplicity_get_error_issued (DejaDupDuplicity* self); -const char* deja_dup_duplicity_get_local (DejaDupDuplicity* self); -void deja_dup_duplicity_set_local (DejaDupDuplicity* self, const char* value); -DejaDupBackend* deja_dup_duplicity_get_backend (DejaDupDuplicity* self); -void deja_dup_duplicity_set_backend (DejaDupDuplicity* self, DejaDupBackend* value); -GList* deja_dup_duplicity_get_restore_files (DejaDupDuplicity* self); -void deja_dup_duplicity_set_restore_files (DejaDupDuplicity* self, GList* value); -DejaDupDuplicityState deja_dup_duplicity_get_state (DejaDupDuplicity* self); -void deja_dup_duplicity_set_state (DejaDupDuplicity* self, DejaDupDuplicityState value); -GType deja_dup_duplicity_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/DuplicityInfo.c deja-dup-10.0/libdeja-dup/DuplicityInfo.c --- deja-dup-7.4/libdeja-dup/DuplicityInfo.c 2009-02-09 21:27:40.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/DuplicityInfo.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,248 +1,303 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <DuplicityInfo.h> +#include <glib.h> +#include <glib-object.h> #include <stdlib.h> #include <string.h> +#include <gtk/gtk.h> #include <glib/gi18n-lib.h> +#define DEJA_DUP_TYPE_DUPLICITY_INFO (deja_dup_duplicity_info_get_type ()) +#define DEJA_DUP_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfo)) +#define DEJA_DUP_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) +#define DEJA_DUP_IS_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO)) +#define DEJA_DUP_IS_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO)) +#define DEJA_DUP_DUPLICITY_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) + +typedef struct _DejaDupDuplicityInfo DejaDupDuplicityInfo; +typedef struct _DejaDupDuplicityInfoClass DejaDupDuplicityInfoClass; +typedef struct _DejaDupDuplicityInfoPrivate DejaDupDuplicityInfoPrivate; + +struct _DejaDupDuplicityInfo { + GObject parent_instance; + DejaDupDuplicityInfoPrivate * priv; +}; +struct _DejaDupDuplicityInfoClass { + GObjectClass parent_class; +}; struct _DejaDupDuplicityInfoPrivate { gboolean _has_broken_cleanup; gboolean _has_backup_progress; gboolean _has_restore_progress; + gboolean _has_collection_status; + gboolean _new_time_format; + gboolean _can_read_short_filenames; char* version_string; gint major; gint minor; gint micro; }; + + +GType deja_dup_duplicity_info_get_type (void); #define DEJA_DUP_DUPLICITY_INFO_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoPrivate)) enum { DEJA_DUP_DUPLICITY_INFO_DUMMY_PROPERTY, DEJA_DUP_DUPLICITY_INFO_HAS_BROKEN_CLEANUP, DEJA_DUP_DUPLICITY_INFO_HAS_BACKUP_PROGRESS, - DEJA_DUP_DUPLICITY_INFO_HAS_RESTORE_PROGRESS + DEJA_DUP_DUPLICITY_INFO_HAS_RESTORE_PROGRESS, + DEJA_DUP_DUPLICITY_INFO_HAS_COLLECTION_STATUS, + DEJA_DUP_DUPLICITY_INFO_NEW_TIME_FORMAT, + DEJA_DUP_DUPLICITY_INFO_CAN_READ_SHORT_FILENAMES }; +static DejaDupDuplicityInfo* deja_dup_duplicity_info_info; static DejaDupDuplicityInfo* deja_dup_duplicity_info_info = NULL; -static gboolean deja_dup_duplicity_info_meets_version (DejaDupDuplicityInfo* self, gint vmaj, gint vmin, gint vmic); -static gboolean deja_dup_duplicity_info_equals_version (DejaDupDuplicityInfo* self, gint vmaj, gint vmin, gint vmic); -static gboolean deja_dup_duplicity_info_meets_requirements (DejaDupDuplicityInfo* self); +#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MAJOR 0 +#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MINOR 5 +#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MICRO 3 +DejaDupDuplicityInfo* deja_dup_duplicity_info_new (void); +DejaDupDuplicityInfo* deja_dup_duplicity_info_construct (GType object_type); +DejaDupDuplicityInfo* deja_dup_duplicity_info_get_default (void); static void deja_dup_duplicity_info_show_missing_duplicity_error (DejaDupDuplicityInfo* self, GtkWindow* parent, const char* msg_in); +static gboolean deja_dup_duplicity_info_meets_requirements (DejaDupDuplicityInfo* self); static void deja_dup_duplicity_info_show_bad_version_error (DejaDupDuplicityInfo* self, GtkWindow* parent); -static void deja_dup_duplicity_info_set_has_broken_cleanup (DejaDupDuplicityInfo* self, gboolean value); +static gboolean deja_dup_duplicity_info_meets_version (DejaDupDuplicityInfo* self, gint vmaj, gint vmin, gint vmic); static void deja_dup_duplicity_info_set_has_backup_progress (DejaDupDuplicityInfo* self, gboolean value); +static void deja_dup_duplicity_info_set_has_collection_status (DejaDupDuplicityInfo* self, gboolean value); +static gboolean deja_dup_duplicity_info_equals_version (DejaDupDuplicityInfo* self, gint vmaj, gint vmin, gint vmic); +static void deja_dup_duplicity_info_set_has_broken_cleanup (DejaDupDuplicityInfo* self, gboolean value); static void deja_dup_duplicity_info_set_has_restore_progress (DejaDupDuplicityInfo* self, gboolean value); +static void deja_dup_duplicity_info_set_new_time_format (DejaDupDuplicityInfo* self, gboolean value); +static void deja_dup_duplicity_info_set_can_read_short_filenames (DejaDupDuplicityInfo* self, gboolean value); +gboolean deja_dup_duplicity_info_check_duplicity_version (DejaDupDuplicityInfo* self, GtkWindow* parent); +DejaDupDuplicityInfo* deja_dup_duplicity_info_new (void); +gboolean deja_dup_duplicity_info_get_has_broken_cleanup (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_has_backup_progress (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_has_restore_progress (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_has_collection_status (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_new_time_format (DejaDupDuplicityInfo* self); +gboolean deja_dup_duplicity_info_get_can_read_short_filenames (DejaDupDuplicityInfo* self); static gpointer deja_dup_duplicity_info_parent_class = NULL; static void deja_dup_duplicity_info_finalize (GObject* obj); +static void deja_dup_duplicity_info_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_duplicity_info_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); DejaDupDuplicityInfo* deja_dup_duplicity_info_get_default (void) { - DejaDupDuplicityInfo* _tmp1; + DejaDupDuplicityInfo* _tmp1_; if (deja_dup_duplicity_info_info == NULL) { - DejaDupDuplicityInfo* _tmp0; - _tmp0 = NULL; - deja_dup_duplicity_info_info = (_tmp0 = deja_dup_duplicity_info_new (), (deja_dup_duplicity_info_info == NULL) ? NULL : (deja_dup_duplicity_info_info = (g_object_unref (deja_dup_duplicity_info_info), NULL)), _tmp0); + DejaDupDuplicityInfo* _tmp0_; + _tmp0_ = NULL; + deja_dup_duplicity_info_info = (_tmp0_ = deja_dup_duplicity_info_new (), (deja_dup_duplicity_info_info == NULL) ? NULL : (deja_dup_duplicity_info_info = (g_object_unref (deja_dup_duplicity_info_info), NULL)), _tmp0_); } - _tmp1 = NULL; - return (_tmp1 = deja_dup_duplicity_info_info, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); + _tmp1_ = NULL; + return (_tmp1_ = deja_dup_duplicity_info_info, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); } /* Returns true if everything is OK. If false, program will close. A dialog will already have been thrown up.*/ gboolean deja_dup_duplicity_info_check_duplicity_version (DejaDupDuplicityInfo* self, GtkWindow* parent) { - GError * inner_error; + GError * _inner_error_; char* output; - char** _tmp5; + char** _tmp5_; gint tokens_size; gint tokens_length1; - char** _tmp4; + char** _tmp4_; char** tokens; - gboolean _tmp6; - gboolean _tmp7; - char* _tmp10; - const char* _tmp9; - char** _tmp12; + gboolean _tmp6_; + gboolean _tmp7_; + char* _tmp10_; + const char* _tmp9_; + char** _tmp12_; gint ver_tokens_size; gint ver_tokens_length1; - char** _tmp11; + char** _tmp11_; char** ver_tokens; - gboolean _tmp13; + gboolean _tmp13_; gboolean good_enough; - gboolean _tmp17; - gboolean _tmp18; + gboolean _tmp16_; + gboolean _tmp17_; g_return_val_if_fail (self != NULL, FALSE); - inner_error = NULL; + _inner_error_ = NULL; output = NULL; { - char* _tmp2; - gboolean _tmp1; - char* _tmp0; - _tmp2 = NULL; - _tmp0 = NULL; - _tmp1 = g_spawn_command_line_sync ("duplicity --version", &_tmp0, NULL, NULL, &inner_error); - output = (_tmp2 = _tmp0, output = (g_free (output), NULL), _tmp2); - _tmp1; - if (inner_error != NULL) { - goto __catch5_g_error; - goto __finally5; + char* _tmp2_; + gboolean _tmp1_; + char* _tmp0_; + _tmp2_ = NULL; + _tmp0_ = NULL; + _tmp1_ = g_spawn_command_line_sync ("duplicity --version", &_tmp0_, NULL, NULL, &_inner_error_); + output = (_tmp2_ = _tmp0_, output = (g_free (output), NULL), _tmp2_); + _tmp1_; + if (_inner_error_ != NULL) { + goto __catch38_g_error; + goto __finally38; } } - goto __finally5; - __catch5_g_error: + goto __finally38; + __catch38_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - gboolean _tmp3; + gboolean _tmp3_; deja_dup_duplicity_info_show_missing_duplicity_error (self, parent, e->message); - return (_tmp3 = FALSE, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), output = (g_free (output), NULL), _tmp3); + return (_tmp3_ = FALSE, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), output = (g_free (output), NULL), _tmp3_); } } - __finally5: - if (inner_error != NULL) { + __finally38: + if (_inner_error_ != NULL) { output = (g_free (output), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } - _tmp5 = NULL; - _tmp4 = NULL; - tokens = (_tmp5 = _tmp4 = g_strsplit (output, " ", 2), tokens_length1 = _vala_array_length (_tmp4), tokens_size = tokens_length1, _tmp5); - _tmp6 = FALSE; - _tmp7 = FALSE; + _tmp5_ = NULL; + _tmp4_ = NULL; + tokens = (_tmp5_ = _tmp4_ = g_strsplit (output, " ", 2), tokens_length1 = _vala_array_length (_tmp4_), tokens_size = tokens_length1, _tmp5_); + _tmp6_ = FALSE; + _tmp7_ = FALSE; if (tokens == NULL) { - _tmp7 = TRUE; + _tmp7_ = TRUE; } else { - _tmp7 = tokens[0] == NULL; + _tmp7_ = tokens[0] == NULL; } - if (_tmp7) { - _tmp6 = TRUE; + if (_tmp7_) { + _tmp6_ = TRUE; } else { - _tmp6 = tokens[1] == NULL; + _tmp6_ = tokens[1] == NULL; } - if (_tmp6) { - gboolean _tmp8; + if (_tmp6_) { + gboolean _tmp8_; deja_dup_duplicity_info_show_missing_duplicity_error (self, parent, NULL); - return (_tmp8 = FALSE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), _tmp8); + return (_tmp8_ = FALSE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), _tmp8_); } /* First token is 'duplicity' and is ignorable. Second looks like '0.5.03'*/ - _tmp10 = NULL; - _tmp9 = NULL; - self->priv->version_string = (_tmp10 = (_tmp9 = g_strstrip (tokens[1]), (_tmp9 == NULL) ? NULL : g_strdup (_tmp9)), self->priv->version_string = (g_free (self->priv->version_string), NULL), _tmp10); - _tmp12 = NULL; - _tmp11 = NULL; - ver_tokens = (_tmp12 = _tmp11 = g_strsplit (self->priv->version_string, ".", 0), ver_tokens_length1 = _vala_array_length (_tmp11), ver_tokens_size = ver_tokens_length1, _tmp12); - _tmp13 = FALSE; + _tmp10_ = NULL; + _tmp9_ = NULL; + self->priv->version_string = (_tmp10_ = (_tmp9_ = g_strstrip (tokens[1]), (_tmp9_ == NULL) ? NULL : g_strdup (_tmp9_)), self->priv->version_string = (g_free (self->priv->version_string), NULL), _tmp10_); + _tmp12_ = NULL; + _tmp11_ = NULL; + ver_tokens = (_tmp12_ = _tmp11_ = g_strsplit (self->priv->version_string, ".", 0), ver_tokens_length1 = _vala_array_length (_tmp11_), ver_tokens_size = ver_tokens_length1, _tmp12_); + _tmp13_ = FALSE; if (ver_tokens == NULL) { - _tmp13 = TRUE; + _tmp13_ = TRUE; } else { - _tmp13 = ver_tokens[0] == NULL; + _tmp13_ = ver_tokens[0] == NULL; } - if (_tmp13) { - gboolean _tmp14; + if (_tmp13_) { + gboolean _tmp14_; deja_dup_duplicity_info_show_missing_duplicity_error (self, parent, NULL); - return (_tmp14 = FALSE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), ver_tokens = (_vala_array_free (ver_tokens, ver_tokens_length1, (GDestroyNotify) g_free), NULL), _tmp14); + return (_tmp14_ = FALSE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), ver_tokens = (_vala_array_free (ver_tokens, ver_tokens_length1, (GDestroyNotify) g_free), NULL), _tmp14_); } self->priv->major = atoi (ver_tokens[0]); - if (ver_tokens[1] == NULL) { - gboolean _tmp15; - deja_dup_duplicity_info_show_missing_duplicity_error (self, parent, NULL); - return (_tmp15 = FALSE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), ver_tokens = (_vala_array_free (ver_tokens, ver_tokens_length1, (GDestroyNotify) g_free), NULL), _tmp15); - } - self->priv->minor = atoi (ver_tokens[1]); - if (ver_tokens[2] != NULL) { - self->priv->micro = atoi (ver_tokens[2]); + /* Don't error out if no minor or micro. Duplicity might not have them?*/ + if (ver_tokens[1] != NULL) { + self->priv->minor = atoi (ver_tokens[1]); + if (ver_tokens[2] != NULL) { + self->priv->micro = atoi (ver_tokens[2]); + } } good_enough = deja_dup_duplicity_info_meets_requirements (self); if (!good_enough) { - gboolean _tmp16; + gboolean _tmp15_; deja_dup_duplicity_info_show_bad_version_error (self, parent); - return (_tmp16 = FALSE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), ver_tokens = (_vala_array_free (ver_tokens, ver_tokens_length1, (GDestroyNotify) g_free), NULL), _tmp16); + return (_tmp15_ = FALSE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), ver_tokens = (_vala_array_free (ver_tokens, ver_tokens_length1, (GDestroyNotify) g_free), NULL), _tmp15_); } if (deja_dup_duplicity_info_meets_version (self, 0, 5, 4)) { deja_dup_duplicity_info_set_has_backup_progress (self, TRUE); + deja_dup_duplicity_info_set_has_collection_status (self, TRUE); } - _tmp17 = FALSE; + _tmp16_ = FALSE; if (deja_dup_duplicity_info_equals_version (self, 0, 5, 4)) { - _tmp17 = TRUE; + _tmp16_ = TRUE; } else { - _tmp17 = deja_dup_duplicity_info_equals_version (self, 0, 5, 5); + _tmp16_ = deja_dup_duplicity_info_equals_version (self, 0, 5, 5); } - if (_tmp17) { + if (_tmp16_) { deja_dup_duplicity_info_set_has_broken_cleanup (self, TRUE); } if (deja_dup_duplicity_info_meets_version (self, 0, 5, 6)) { deja_dup_duplicity_info_set_has_restore_progress (self, TRUE); } - return (_tmp18 = TRUE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), ver_tokens = (_vala_array_free (ver_tokens, ver_tokens_length1, (GDestroyNotify) g_free), NULL), _tmp18); + if (deja_dup_duplicity_info_meets_version (self, 0, 5, 10)) { + deja_dup_duplicity_info_set_new_time_format (self, TRUE); + } + if (deja_dup_duplicity_info_meets_version (self, 0, 5, 16)) { + deja_dup_duplicity_info_set_can_read_short_filenames (self, TRUE); + } + return (_tmp17_ = TRUE, output = (g_free (output), NULL), tokens = (_vala_array_free (tokens, tokens_length1, (GDestroyNotify) g_free), NULL), ver_tokens = (_vala_array_free (ver_tokens, ver_tokens_length1, (GDestroyNotify) g_free), NULL), _tmp17_); } static gboolean deja_dup_duplicity_info_meets_version (DejaDupDuplicityInfo* self, gint vmaj, gint vmin, gint vmic) { - gboolean _tmp0; - gboolean _tmp1; + gboolean _tmp0_; + gboolean _tmp1_; g_return_val_if_fail (self != NULL, FALSE); - _tmp0 = FALSE; - _tmp1 = FALSE; - if ((self->priv->major > vmaj)) { - _tmp1 = TRUE; + _tmp0_ = FALSE; + _tmp1_ = FALSE; + if (self->priv->major > vmaj) { + _tmp1_ = TRUE; } else { - gboolean _tmp2; - _tmp2 = FALSE; + gboolean _tmp2_; + _tmp2_ = FALSE; if (self->priv->major == vmaj) { - _tmp2 = self->priv->minor > vmin; + _tmp2_ = self->priv->minor > vmin; } else { - _tmp2 = FALSE; + _tmp2_ = FALSE; } - _tmp1 = (_tmp2); + _tmp1_ = _tmp2_; } - if (_tmp1) { - _tmp0 = TRUE; + if (_tmp1_) { + _tmp0_ = TRUE; } else { - gboolean _tmp3; - gboolean _tmp4; - _tmp3 = FALSE; - _tmp4 = FALSE; + gboolean _tmp3_; + gboolean _tmp4_; + _tmp3_ = FALSE; + _tmp4_ = FALSE; if (self->priv->major == vmaj) { - _tmp4 = self->priv->minor == vmin; + _tmp4_ = self->priv->minor == vmin; } else { - _tmp4 = FALSE; + _tmp4_ = FALSE; } - if (_tmp4) { - _tmp3 = self->priv->micro >= vmic; + if (_tmp4_) { + _tmp3_ = self->priv->micro >= vmic; } else { - _tmp3 = FALSE; + _tmp3_ = FALSE; } - _tmp0 = (_tmp3); + _tmp0_ = _tmp3_; } - return _tmp0; + return _tmp0_; } static gboolean deja_dup_duplicity_info_equals_version (DejaDupDuplicityInfo* self, gint vmaj, gint vmin, gint vmic) { - gboolean _tmp0; - gboolean _tmp1; + gboolean _tmp0_; + gboolean _tmp1_; g_return_val_if_fail (self != NULL, FALSE); - _tmp0 = FALSE; - _tmp1 = FALSE; + _tmp0_ = FALSE; + _tmp1_ = FALSE; if (self->priv->major == vmaj) { - _tmp1 = self->priv->minor == vmin; + _tmp1_ = self->priv->minor == vmin; } else { - _tmp1 = FALSE; + _tmp1_ = FALSE; } - if (_tmp1) { - _tmp0 = self->priv->micro == vmic; + if (_tmp1_) { + _tmp0_ = self->priv->micro == vmic; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - return _tmp0; + return _tmp0_; } @@ -255,28 +310,28 @@ static void deja_dup_duplicity_info_show_missing_duplicity_error (DejaDupDuplicityInfo* self, GtkWindow* parent, const char* msg_in) { GtkMessageDialog* dlg; - const char* _tmp0; + const char* _tmp0_; char* msg; g_return_if_fail (self != NULL); g_return_if_fail (parent != NULL); dlg = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (parent, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("Could not run duplicity"), NULL)); - _tmp0 = NULL; - msg = (_tmp0 = msg_in, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + msg = (_tmp0_ = msg_in, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); if (msg != NULL) { - char* _tmp1; - _tmp1 = NULL; - msg = (_tmp1 = g_strconcat (g_strchomp (msg), "\n\n", NULL), msg = (g_free (msg), NULL), _tmp1); + char* _tmp1_; + _tmp1_ = NULL; + msg = (_tmp1_ = g_strconcat (g_strchomp (msg), "\n\n", NULL), msg = (g_free (msg), NULL), _tmp1_); } else { if (self->priv->version_string == NULL) { - char* _tmp3; - const char* _tmp2; - _tmp3 = NULL; - _tmp2 = NULL; - msg = (_tmp3 = (_tmp2 = _ ("Could not understand duplicity version.\n\n"), (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)), msg = (g_free (msg), NULL), _tmp3); + char* _tmp3_; + const char* _tmp2_; + _tmp3_ = NULL; + _tmp2_ = NULL; + msg = (_tmp3_ = (_tmp2_ = _ ("Could not understand duplicity version.\n\n"), (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)), msg = (g_free (msg), NULL), _tmp3_); } else { - char* _tmp4; - _tmp4 = NULL; - msg = (_tmp4 = g_strdup_printf (_ ("Could not understand duplicity version '%s'.\n\n"), self->priv->version_string), msg = (g_free (msg), NULL), _tmp4); + char* _tmp4_; + _tmp4_ = NULL; + msg = (_tmp4_ = g_strdup_printf (_ ("Could not understand duplicity version '%s'.\n\n"), self->priv->version_string), msg = (g_free (msg), NULL), _tmp4_); } } gtk_message_dialog_format_secondary_text (dlg, "%s%s", msg, _ ("Without duplicity, Déjà Dup cannot function. It will close now."), NULL); @@ -352,44 +407,42 @@ } -static void deja_dup_duplicity_info_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - DejaDupDuplicityInfo * self; - gpointer boxed; - self = DEJA_DUP_DUPLICITY_INFO (object); - switch (property_id) { - case DEJA_DUP_DUPLICITY_INFO_HAS_BROKEN_CLEANUP: - g_value_set_boolean (value, deja_dup_duplicity_info_get_has_broken_cleanup (self)); - break; - case DEJA_DUP_DUPLICITY_INFO_HAS_BACKUP_PROGRESS: - g_value_set_boolean (value, deja_dup_duplicity_info_get_has_backup_progress (self)); - break; - case DEJA_DUP_DUPLICITY_INFO_HAS_RESTORE_PROGRESS: - g_value_set_boolean (value, deja_dup_duplicity_info_get_has_restore_progress (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } +gboolean deja_dup_duplicity_info_get_has_collection_status (DejaDupDuplicityInfo* self) { + g_return_val_if_fail (self != NULL, FALSE); + return self->priv->_has_collection_status; } -static void deja_dup_duplicity_info_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - DejaDupDuplicityInfo * self; - self = DEJA_DUP_DUPLICITY_INFO (object); - switch (property_id) { - case DEJA_DUP_DUPLICITY_INFO_HAS_BROKEN_CLEANUP: - deja_dup_duplicity_info_set_has_broken_cleanup (self, g_value_get_boolean (value)); - break; - case DEJA_DUP_DUPLICITY_INFO_HAS_BACKUP_PROGRESS: - deja_dup_duplicity_info_set_has_backup_progress (self, g_value_get_boolean (value)); - break; - case DEJA_DUP_DUPLICITY_INFO_HAS_RESTORE_PROGRESS: - deja_dup_duplicity_info_set_has_restore_progress (self, g_value_get_boolean (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } +static void deja_dup_duplicity_info_set_has_collection_status (DejaDupDuplicityInfo* self, gboolean value) { + g_return_if_fail (self != NULL); + self->priv->_has_collection_status = value; + g_object_notify ((GObject *) self, "has-collection-status"); +} + + +gboolean deja_dup_duplicity_info_get_new_time_format (DejaDupDuplicityInfo* self) { + g_return_val_if_fail (self != NULL, FALSE); + return self->priv->_new_time_format; +} + + +static void deja_dup_duplicity_info_set_new_time_format (DejaDupDuplicityInfo* self, gboolean value) { + g_return_if_fail (self != NULL); + self->priv->_new_time_format = value; + g_object_notify ((GObject *) self, "new-time-format"); +} + + +gboolean deja_dup_duplicity_info_get_can_read_short_filenames (DejaDupDuplicityInfo* self) { + g_return_val_if_fail (self != NULL, FALSE); + return self->priv->_can_read_short_filenames; +} + + +static void deja_dup_duplicity_info_set_can_read_short_filenames (DejaDupDuplicityInfo* self, gboolean value) { + g_return_if_fail (self != NULL); + self->priv->_can_read_short_filenames = value; + g_object_notify ((GObject *) self, "can-read-short-filenames"); } @@ -402,6 +455,9 @@ g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_INFO_HAS_BROKEN_CLEANUP, g_param_spec_boolean ("has-broken-cleanup", "has-broken-cleanup", "has-broken-cleanup", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_INFO_HAS_BACKUP_PROGRESS, g_param_spec_boolean ("has-backup-progress", "has-backup-progress", "has-backup-progress", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_INFO_HAS_RESTORE_PROGRESS, g_param_spec_boolean ("has-restore-progress", "has-restore-progress", "has-restore-progress", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_INFO_HAS_COLLECTION_STATUS, g_param_spec_boolean ("has-collection-status", "has-collection-status", "has-collection-status", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_INFO_NEW_TIME_FORMAT, g_param_spec_boolean ("new-time-format", "new-time-format", "new-time-format", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_INFO_CAN_READ_SHORT_FILENAMES, g_param_spec_boolean ("can-read-short-filenames", "can-read-short-filenames", "can-read-short-filenames", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); } @@ -410,6 +466,9 @@ self->priv->_has_broken_cleanup = FALSE; self->priv->_has_backup_progress = FALSE; self->priv->_has_restore_progress = FALSE; + self->priv->_has_collection_status = FALSE; + self->priv->_new_time_format = FALSE; + self->priv->_can_read_short_filenames = FALSE; self->priv->version_string = NULL; self->priv->major = 0; self->priv->minor = 0; @@ -435,7 +494,66 @@ } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void deja_dup_duplicity_info_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupDuplicityInfo * self; + gpointer boxed; + self = DEJA_DUP_DUPLICITY_INFO (object); + switch (property_id) { + case DEJA_DUP_DUPLICITY_INFO_HAS_BROKEN_CLEANUP: + g_value_set_boolean (value, deja_dup_duplicity_info_get_has_broken_cleanup (self)); + break; + case DEJA_DUP_DUPLICITY_INFO_HAS_BACKUP_PROGRESS: + g_value_set_boolean (value, deja_dup_duplicity_info_get_has_backup_progress (self)); + break; + case DEJA_DUP_DUPLICITY_INFO_HAS_RESTORE_PROGRESS: + g_value_set_boolean (value, deja_dup_duplicity_info_get_has_restore_progress (self)); + break; + case DEJA_DUP_DUPLICITY_INFO_HAS_COLLECTION_STATUS: + g_value_set_boolean (value, deja_dup_duplicity_info_get_has_collection_status (self)); + break; + case DEJA_DUP_DUPLICITY_INFO_NEW_TIME_FORMAT: + g_value_set_boolean (value, deja_dup_duplicity_info_get_new_time_format (self)); + break; + case DEJA_DUP_DUPLICITY_INFO_CAN_READ_SHORT_FILENAMES: + g_value_set_boolean (value, deja_dup_duplicity_info_get_can_read_short_filenames (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_duplicity_info_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupDuplicityInfo * self; + self = DEJA_DUP_DUPLICITY_INFO (object); + switch (property_id) { + case DEJA_DUP_DUPLICITY_INFO_HAS_BROKEN_CLEANUP: + deja_dup_duplicity_info_set_has_broken_cleanup (self, g_value_get_boolean (value)); + break; + case DEJA_DUP_DUPLICITY_INFO_HAS_BACKUP_PROGRESS: + deja_dup_duplicity_info_set_has_backup_progress (self, g_value_get_boolean (value)); + break; + case DEJA_DUP_DUPLICITY_INFO_HAS_RESTORE_PROGRESS: + deja_dup_duplicity_info_set_has_restore_progress (self, g_value_get_boolean (value)); + break; + case DEJA_DUP_DUPLICITY_INFO_HAS_COLLECTION_STATUS: + deja_dup_duplicity_info_set_has_collection_status (self, g_value_get_boolean (value)); + break; + case DEJA_DUP_DUPLICITY_INFO_NEW_TIME_FORMAT: + deja_dup_duplicity_info_set_new_time_format (self, g_value_get_boolean (value)); + break; + case DEJA_DUP_DUPLICITY_INFO_CAN_READ_SHORT_FILENAMES: + deja_dup_duplicity_info_set_can_read_short_filenames (self, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -444,6 +562,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/libdeja-dup/DuplicityInfo.h deja-dup-10.0/libdeja-dup/DuplicityInfo.h --- deja-dup-7.4/libdeja-dup/DuplicityInfo.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/DuplicityInfo.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,49 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __DUPLICITYINFO_H__ -#define __DUPLICITYINFO_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_DUPLICITY_INFO (deja_dup_duplicity_info_get_type ()) -#define DEJA_DUP_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfo)) -#define DEJA_DUP_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) -#define DEJA_DUP_IS_DUPLICITY_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO)) -#define DEJA_DUP_IS_DUPLICITY_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INFO)) -#define DEJA_DUP_DUPLICITY_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INFO, DejaDupDuplicityInfoClass)) - -typedef struct _DejaDupDuplicityInfo DejaDupDuplicityInfo; -typedef struct _DejaDupDuplicityInfoClass DejaDupDuplicityInfoClass; -typedef struct _DejaDupDuplicityInfoPrivate DejaDupDuplicityInfoPrivate; - -struct _DejaDupDuplicityInfo { - GObject parent_instance; - DejaDupDuplicityInfoPrivate * priv; -}; - -struct _DejaDupDuplicityInfoClass { - GObjectClass parent_class; -}; - - -#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MAJOR 0 -#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MINOR 5 -#define DEJA_DUP_DUPLICITY_INFO_REQUIRED_MICRO 3 -DejaDupDuplicityInfo* deja_dup_duplicity_info_get_default (void); -gboolean deja_dup_duplicity_info_check_duplicity_version (DejaDupDuplicityInfo* self, GtkWindow* parent); -DejaDupDuplicityInfo* deja_dup_duplicity_info_construct (GType object_type); -DejaDupDuplicityInfo* deja_dup_duplicity_info_new (void); -gboolean deja_dup_duplicity_info_get_has_broken_cleanup (DejaDupDuplicityInfo* self); -gboolean deja_dup_duplicity_info_get_has_backup_progress (DejaDupDuplicityInfo* self); -gboolean deja_dup_duplicity_info_get_has_restore_progress (DejaDupDuplicityInfo* self); -GType deja_dup_duplicity_info_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/DuplicityInfo.vala deja-dup-10.0/libdeja-dup/DuplicityInfo.vala --- deja-dup-7.4/libdeja-dup/DuplicityInfo.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/DuplicityInfo.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -30,6 +30,9 @@ public bool has_broken_cleanup {get; private set; default = false; } public bool has_backup_progress {get; private set; default = false; } public bool has_restore_progress {get; private set; default = false; } + public bool has_collection_status {get; private set; default = false; } + public bool new_time_format {get; private set; default = false; } + public bool can_read_short_filenames {get; private set; default = false; } static DuplicityInfo info = null; public static DuplicityInfo get_default() { @@ -65,13 +68,12 @@ return false; } major = ver_tokens[0].to_int(); - if (ver_tokens[1] == null) { - show_missing_duplicity_error(parent, null); - return false; + // Don't error out if no minor or micro. Duplicity might not have them? + if (ver_tokens[1] != null) { + minor = ver_tokens[1].to_int(); + if (ver_tokens[2] != null) + micro = ver_tokens[2].to_int(); } - minor = ver_tokens[1].to_int(); - if (ver_tokens[2] != null) // Don't error out if no micro. Duplicity might not have one? - micro = ver_tokens[2].to_int(); var good_enough = meets_requirements(); if (!good_enough) { @@ -79,12 +81,18 @@ return false; } - if (meets_version(0, 5, 4)) + if (meets_version(0, 5, 4)) { has_backup_progress = true; + has_collection_status = true; + } if (equals_version(0, 5, 4) || equals_version(0, 5, 5)) has_broken_cleanup = true; if (meets_version(0, 5, 6)) has_restore_progress = true; + if (meets_version(0, 5, 10)) + new_time_format = true; + if (meets_version(0, 5, 16)) + can_read_short_filenames = true; return true; } diff -Nru deja-dup-7.4/libdeja-dup/DuplicityInstance.c deja-dup-10.0/libdeja-dup/DuplicityInstance.c --- deja-dup-7.4/libdeja-dup/DuplicityInstance.c 2009-02-09 21:27:40.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/DuplicityInstance.c 2009-06-02 17:51:31.000000000 -0400 @@ -1,15 +1,35 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <DuplicityInstance.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> #include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> #include <signal.h> +#include <sys/wait.h> +#define DEJA_DUP_TYPE_DUPLICITY_INSTANCE (deja_dup_duplicity_instance_get_type ()) +#define DEJA_DUP_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstance)) +#define DEJA_DUP_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) +#define DEJA_DUP_IS_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) +#define DEJA_DUP_IS_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) +#define DEJA_DUP_DUPLICITY_INSTANCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) + +typedef struct _DejaDupDuplicityInstance DejaDupDuplicityInstance; +typedef struct _DejaDupDuplicityInstanceClass DejaDupDuplicityInstanceClass; +typedef struct _DejaDupDuplicityInstancePrivate DejaDupDuplicityInstancePrivate; + +struct _DejaDupDuplicityInstance { + GObject parent_instance; + DejaDupDuplicityInstancePrivate * priv; +}; +struct _DejaDupDuplicityInstanceClass { + GObjectClass parent_class; + void (*start) (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); +}; -static char* string_substring (const char* self, glong offset, glong len); struct _DejaDupDuplicityInstancePrivate { gboolean _verbose; guint stanza_id; @@ -21,29 +41,42 @@ GIOChannel* reader; }; + + +GType deja_dup_duplicity_instance_get_type (void); #define DEJA_DUP_DUPLICITY_INSTANCE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstancePrivate)) enum { DEJA_DUP_DUPLICITY_INSTANCE_DUMMY_PROPERTY, DEJA_DUP_DUPLICITY_INSTANCE_VERBOSE }; +static void deja_dup_duplicity_instance_set_verbose (DejaDupDuplicityInstance* self, gboolean value); static void _g_list_free_g_free (GList* self); +static gboolean deja_dup_duplicity_instance_read_stanza (DejaDupDuplicityInstance* self, GIOChannel* channel, GIOCondition cond); static gboolean _deja_dup_duplicity_instance_read_stanza_gio_func (GIOChannel* source, GIOCondition condition, gpointer self); +static void deja_dup_duplicity_instance_spawn_finished (DejaDupDuplicityInstance* self, GPid pid, gint status); static void _deja_dup_duplicity_instance_spawn_finished_gchild_watch_func (GPid pid, gint status, gpointer self); +void deja_dup_duplicity_instance_start (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); static void deja_dup_duplicity_instance_real_start (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); +gboolean deja_dup_duplicity_instance_is_started (DejaDupDuplicityInstance* self); static void deja_dup_duplicity_instance_kill_child (DejaDupDuplicityInstance* self); -static gboolean deja_dup_duplicity_instance_read_stanza (DejaDupDuplicityInstance* self, GIOChannel* channel, GIOCondition cond); +void deja_dup_duplicity_instance_cancel (DejaDupDuplicityInstance* self); +gboolean deja_dup_duplicity_instance_get_verbose (DejaDupDuplicityInstance* self); +static void deja_dup_duplicity_instance_process_stanza (DejaDupDuplicityInstance* self, GList* stanza); static gint deja_dup_duplicity_instance_num_suffix (const char* word, gchar ch, glong start); static char* deja_dup_duplicity_instance_validated_string (const char* s); static char* deja_dup_duplicity_instance_compress_string (const char* s_in); static void deja_dup_duplicity_instance_split_line (const char* line, char*** split, int* split_length1); -static void deja_dup_duplicity_instance_process_stanza (DejaDupDuplicityInstance* self, GList* stanza); static GList* deja_dup_duplicity_instance_grab_stanza_data (DejaDupDuplicityInstance* self, GList* stanza); static char* deja_dup_duplicity_instance_grab_stanza_text (DejaDupDuplicityInstance* self, GList* stanza); -static void deja_dup_duplicity_instance_spawn_finished (DejaDupDuplicityInstance* self, GPid pid, gint status); -static void deja_dup_duplicity_instance_set_verbose (DejaDupDuplicityInstance* self, gboolean value); +DejaDupDuplicityInstance* deja_dup_duplicity_instance_new (void); +DejaDupDuplicityInstance* deja_dup_duplicity_instance_construct (GType object_type); +DejaDupDuplicityInstance* deja_dup_duplicity_instance_new (void); static GObject * deja_dup_duplicity_instance_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer deja_dup_duplicity_instance_parent_class = NULL; static void deja_dup_duplicity_instance_finalize (GObject* obj); +static void deja_dup_duplicity_instance_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_duplicity_instance_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static gint _vala_array_length (gpointer array); static int _vala_strcmp0 (const char * str1, const char * str2); @@ -52,26 +85,6 @@ static void g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void g_cclosure_user_marshal_VOID__BOXED_INT_POINTER_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); -static char* string_substring (const char* self, glong offset, glong len) { - glong string_length; - const char* start; - g_return_val_if_fail (self != NULL, NULL); - string_length = g_utf8_strlen (self, -1); - if (offset < 0) { - offset = string_length + offset; - g_return_val_if_fail (offset >= 0, NULL); - } else { - g_return_val_if_fail (offset <= string_length, NULL); - } - if (len < 0) { - len = string_length - offset; - } - g_return_val_if_fail ((offset + len) <= string_length, NULL); - start = g_utf8_offset_to_pointer (self, offset); - return g_strndup (start, ((gchar*) g_utf8_offset_to_pointer (start, len)) - ((gchar*) start)); -} - - static void _g_list_free_g_free (GList* self) { g_list_foreach (self, (GFunc) g_free, NULL); g_list_free (self); @@ -89,45 +102,46 @@ static void deja_dup_duplicity_instance_real_start (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error) { - GError * inner_error; - const char* _tmp0; + GError * _inner_error_; + const char* _tmp0_; char* verbose_str; - gboolean _tmp1; - char** _tmp3; + gboolean _tmp1_; + char** _tmp3_; gint myenv_size; gint myenv_length1; - char** _tmp2; + char** _tmp2_; char** myenv; gint myenv_len; guint env_len; - char** _tmp4; + char** _tmp4_; gint real_envp_size; gint real_envp_length1; char** real_envp; gint i; - char* _tmp10; + char* _tmp10_; GList* argv; - char* _tmp13; - gboolean _tmp14; + char* _tmp13_; + gboolean _tmp14_; + char* _tmp15_; + gboolean _tmp16_; char* cmd; - char** _tmp16; + char** _tmp18_; gint real_argv_size; gint real_argv_length1; - gint _tmp15; + gint _tmp17_; char** real_argv; - GIOChannel* _tmp24; + GIOChannel* _tmp26_; g_return_if_fail (self != NULL); - g_return_if_fail (argv_in != NULL); - inner_error = NULL; - _tmp0 = NULL; - verbose_str = (_tmp0 = g_getenv ("DEJA_DUP_DEBUG"), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); - _tmp1 = FALSE; + _inner_error_ = NULL; + _tmp0_ = NULL; + verbose_str = (_tmp0_ = g_getenv ("DEJA_DUP_DEBUG"), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + _tmp1_ = FALSE; if (verbose_str != NULL) { - _tmp1 = atoi (verbose_str) > 0; + _tmp1_ = atoi (verbose_str) > 0; } else { - _tmp1 = FALSE; + _tmp1_ = FALSE; } - if (_tmp1) { + if (_tmp1_) { deja_dup_duplicity_instance_set_verbose (self, TRUE); } /* Open pipes to communicate with subprocess*/ @@ -137,59 +151,59 @@ return; } /* Copy current environment, add custom variables*/ - _tmp3 = NULL; - _tmp2 = NULL; - myenv = (_tmp3 = _tmp2 = g_listenv (), myenv_length1 = _vala_array_length (_tmp2), myenv_size = myenv_length1, _tmp3); + _tmp3_ = NULL; + _tmp2_ = NULL; + myenv = (_tmp3_ = _tmp2_ = g_listenv (), myenv_length1 = _vala_array_length (_tmp2_), myenv_size = myenv_length1, _tmp3_); myenv_len = 0; while (myenv[myenv_len] != NULL) { myenv_len = myenv_len + 1; } env_len = myenv_len + g_list_length (envp_in); - _tmp4 = NULL; - real_envp = (_tmp4 = g_new0 (char*, (env_len + 1) + 1), real_envp_length1 = env_len + 1, real_envp_size = real_envp_length1, _tmp4); + _tmp4_ = NULL; + real_envp = (_tmp4_ = g_new0 (char*, (env_len + 1) + 1), real_envp_length1 = env_len + 1, real_envp_size = real_envp_length1, _tmp4_); i = 0; - for (; i < myenv_len; (i = i + 1)) { - char* _tmp5; - _tmp5 = NULL; - real_envp[i] = (_tmp5 = g_strdup_printf ("%s=%s", myenv[i], g_getenv (myenv[i])), real_envp[i] = (g_free (real_envp[i]), NULL), _tmp5); + for (; i < myenv_len; i = i + 1) { + char* _tmp5_; + _tmp5_ = NULL; + real_envp[i] = (_tmp5_ = g_strdup_printf ("%s=%s", myenv[i], g_getenv (myenv[i])), real_envp[i] = (g_free (real_envp[i]), NULL), _tmp5_); } { GList* env_collection; GList* env_it; env_collection = envp_in; for (env_it = env_collection; env_it != NULL; env_it = env_it->next) { - const char* _tmp9; + const char* _tmp9_; char* env; - _tmp9 = NULL; - env = (_tmp9 = (const char*) env_it->data, (_tmp9 == NULL) ? NULL : g_strdup (_tmp9)); + _tmp9_ = NULL; + env = (_tmp9_ = (const char*) env_it->data, (_tmp9_ == NULL) ? NULL : g_strdup (_tmp9_)); { - gint _tmp8; - char* _tmp7; - const char* _tmp6; - _tmp7 = NULL; - _tmp6 = NULL; - _tmp8 = i++; - real_envp[_tmp8] = (_tmp7 = (_tmp6 = env, (_tmp6 == NULL) ? NULL : g_strdup (_tmp6)), real_envp[_tmp8] = (g_free (real_envp[_tmp8]), NULL), _tmp7); + char* _tmp8_; + char* *_tmp7_; + const char* _tmp6_; + _tmp8_ = NULL; + _tmp6_ = NULL; + _tmp7_ = &real_envp[i++]; + (*_tmp7_) = (_tmp8_ = (_tmp6_ = env, (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_)), (*_tmp7_) = (g_free ((*_tmp7_)), NULL), _tmp8_); env = (g_free (env), NULL); } } } - _tmp10 = NULL; - real_envp[i] = (_tmp10 = NULL, real_envp[i] = (g_free (real_envp[i]), NULL), _tmp10); + _tmp10_ = NULL; + real_envp[i] = (_tmp10_ = NULL, real_envp[i] = (g_free (real_envp[i]), NULL), _tmp10_); argv = NULL; { GList* arg_collection; GList* arg_it; arg_collection = argv_in; for (arg_it = arg_collection; arg_it != NULL; arg_it = arg_it->next) { - const char* _tmp12; + const char* _tmp12_; char* arg; - _tmp12 = NULL; - arg = (_tmp12 = (const char*) arg_it->data, (_tmp12 == NULL) ? NULL : g_strdup (_tmp12)); + _tmp12_ = NULL; + arg = (_tmp12_ = (const char*) arg_it->data, (_tmp12_ == NULL) ? NULL : g_strdup (_tmp12_)); { - const char* _tmp11; - _tmp11 = NULL; - argv = g_list_append (argv, (_tmp11 = arg, (_tmp11 == NULL) ? NULL : g_strdup (_tmp11))); + const char* _tmp11_; + _tmp11_ = NULL; + argv = g_list_append (argv, (_tmp11_ = arg, (_tmp11_ == NULL) ? NULL : g_strdup (_tmp11_))); arg = (g_free (arg), NULL); } } @@ -215,98 +229,151 @@ ever solves the 'too many files' problem, we should go down to volsize 1 or 2. For now, we'll keep with the default.*/ argv = g_list_append (argv, g_strdup ("--volsize=5")); - /* Add always-there arguments*/ + /* Duplicity can't gracefully start using archive dir in the middle of a + backup series, so we don't turn this on yet. I'll have to submit a + a patch to make that work. + // Cache signature files + var cache_dir = Environment.get_user_cache_dir(); + if (cache_dir != null) { + bool add_dir = false; + var cache_file = File.new_for_path(cache_dir); + cache_file = cache_file.get_child(Config.PACKAGE); + try { + if (hacks_file_make_directory_with_parents(cache_file)) + add_dir = true; + } + catch (IOError.EXISTS e) { + add_dir = true; // ignore + } + catch (IOError e) { + warning("%s\n", e.message); + } + if (add_dir) + argv.append("--archive-dir=" + cache_file.get_path()); + } + + Add always-there arguments*/ argv = g_list_append (argv, g_strdup_printf ("--log-fd=%d", self->priv->pipes[1])); argv = g_list_prepend (argv, g_strdup ("duplicity")); /* Check for ionice to be a good disk citizen*/ - _tmp13 = NULL; - if ((_tmp14 = (_tmp13 = g_find_program_in_path ("ionice")) != NULL, _tmp13 = (g_free (_tmp13), NULL), _tmp14)) { - argv = g_list_prepend (argv, g_strdup ("-c3")); - /* idle class*/ + _tmp13_ = NULL; + if ((_tmp14_ = (_tmp13_ = g_find_program_in_path ("ionice")) != NULL, _tmp13_ = (g_free (_tmp13_), NULL), _tmp14_)) { + argv = g_list_prepend (argv, g_strdup ("-n7")); + /* lowest priority*/ + argv = g_list_prepend (argv, g_strdup ("-c2")); + /* best-effort class (can't use idle as normal user on <2.6.25)*/ argv = g_list_prepend (argv, g_strdup ("ionice")); } + _tmp15_ = NULL; + if ((_tmp16_ = (_tmp15_ = g_find_program_in_path ("nice")) != NULL, _tmp15_ = (g_free (_tmp15_), NULL), _tmp16_)) { + argv = g_list_prepend (argv, g_strdup ("nice")); + } cmd = NULL; - _tmp16 = NULL; - real_argv = (_tmp16 = g_new0 (char*, (_tmp15 = g_list_length (argv)) + 1), real_argv_length1 = _tmp15, real_argv_size = real_argv_length1, _tmp16); + _tmp18_ = NULL; + real_argv = (_tmp18_ = g_new0 (char*, (_tmp17_ = g_list_length (argv)) + 1), real_argv_length1 = _tmp17_, real_argv_size = real_argv_length1, _tmp18_); i = 0; { GList* a_collection; GList* a_it; a_collection = argv; for (a_it = a_collection; a_it != NULL; a_it = a_it->next) { - const char* _tmp23; + const char* _tmp25_; char* a; - _tmp23 = NULL; - a = (_tmp23 = (const char*) a_it->data, (_tmp23 == NULL) ? NULL : g_strdup (_tmp23)); + _tmp25_ = NULL; + a = (_tmp25_ = (const char*) a_it->data, (_tmp25_ == NULL) ? NULL : g_strdup (_tmp25_)); { - gint _tmp19; - char* _tmp18; - const char* _tmp17; - _tmp18 = NULL; - _tmp17 = NULL; - _tmp19 = i++; - real_argv[_tmp19] = (_tmp18 = (_tmp17 = a, (_tmp17 == NULL) ? NULL : g_strdup (_tmp17)), real_argv[_tmp19] = (g_free (real_argv[_tmp19]), NULL), _tmp18); + char* _tmp21_; + char* *_tmp20_; + const char* _tmp19_; + _tmp21_ = NULL; + _tmp19_ = NULL; + _tmp20_ = &real_argv[i++]; + (*_tmp20_) = (_tmp21_ = (_tmp19_ = a, (_tmp19_ == NULL) ? NULL : g_strdup (_tmp19_)), (*_tmp20_) = (g_free ((*_tmp20_)), NULL), _tmp21_); if (cmd == NULL) { - char* _tmp21; - const char* _tmp20; - _tmp21 = NULL; - _tmp20 = NULL; - cmd = (_tmp21 = (_tmp20 = a, (_tmp20 == NULL) ? NULL : g_strdup (_tmp20)), cmd = (g_free (cmd), NULL), _tmp21); + char* _tmp23_; + const char* _tmp22_; + _tmp23_ = NULL; + _tmp22_ = NULL; + cmd = (_tmp23_ = (_tmp22_ = a, (_tmp22_ == NULL) ? NULL : g_strdup (_tmp22_)), cmd = (g_free (cmd), NULL), _tmp23_); } else { if (a != NULL) { - char* _tmp22; - _tmp22 = NULL; - cmd = (_tmp22 = g_strdup_printf ("%s %s", cmd, a), cmd = (g_free (cmd), NULL), _tmp22); + char* _tmp24_; + _tmp24_ = NULL; + cmd = (_tmp24_ = g_strdup_printf ("%s %s", cmd, a), cmd = (g_free (cmd), NULL), _tmp24_); } } a = (g_free (a), NULL); } } } - g_spawn_async_with_pipes (NULL, real_argv, real_envp, (((G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD) | G_SPAWN_LEAVE_DESCRIPTORS_OPEN) | G_SPAWN_STDOUT_TO_DEV_NULL) | G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &self->priv->child_pid, NULL, NULL, NULL, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - verbose_str = (g_free (verbose_str), NULL); - myenv = (_vala_array_free (myenv, myenv_length1, (GDestroyNotify) g_free), NULL); - real_envp = (_vala_array_free (real_envp, real_envp_length1, (GDestroyNotify) g_free), NULL); - (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); - cmd = (g_free (cmd), NULL); - real_argv = (_vala_array_free (real_argv, real_argv_length1, (GDestroyNotify) g_free), NULL); - return; + g_spawn_async_with_pipes (NULL, real_argv, real_envp, (((G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD) | G_SPAWN_LEAVE_DESCRIPTORS_OPEN) | G_SPAWN_STDOUT_TO_DEV_NULL) | G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &self->priv->child_pid, NULL, NULL, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_SPAWN_ERROR) { + g_propagate_error (error, _inner_error_); + verbose_str = (g_free (verbose_str), NULL); + myenv = (_vala_array_free (myenv, myenv_length1, (GDestroyNotify) g_free), NULL); + real_envp = (_vala_array_free (real_envp, real_envp_length1, (GDestroyNotify) g_free), NULL); + (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); + cmd = (g_free (cmd), NULL); + real_argv = (_vala_array_free (real_argv, real_argv_length1, (GDestroyNotify) g_free), NULL); + return; + } else { + verbose_str = (g_free (verbose_str), NULL); + myenv = (_vala_array_free (myenv, myenv_length1, (GDestroyNotify) g_free), NULL); + real_envp = (_vala_array_free (real_envp, real_envp_length1, (GDestroyNotify) g_free), NULL); + (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); + cmd = (g_free (cmd), NULL); + real_argv = (_vala_array_free (real_argv, real_argv_length1, (GDestroyNotify) g_free), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } } - g_debug ("DuplicityInstance.vala:115: Running the following duplicity (%i) command: %s\n", (gint) self->priv->child_pid, cmd); - _tmp24 = NULL; - self->priv->reader = (_tmp24 = g_io_channel_unix_new (self->priv->pipes[0]), (self->priv->reader == NULL) ? NULL : (self->priv->reader = (g_io_channel_unref (self->priv->reader), NULL)), _tmp24); + g_debug ("DuplicityInstance.vala:142: Running the following duplicity (%i) command: %s\n", (gint) self->priv->child_pid, cmd); + _tmp26_ = NULL; + self->priv->reader = (_tmp26_ = g_io_channel_unix_new (self->priv->pipes[0]), (self->priv->reader == NULL) ? NULL : (self->priv->reader = (g_io_channel_unref (self->priv->reader), NULL)), _tmp26_); { /* Don't use an encoding, filenames may have any old bytes in them*/ - g_io_channel_set_encoding (self->priv->reader, NULL, &inner_error); - if (inner_error != NULL) { - if (inner_error->domain == G_IO_CHANNEL_ERROR) { - goto __catch6_g_io_channel_error; + g_io_channel_set_encoding (self->priv->reader, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_IO_CHANNEL_ERROR) { + goto __catch39_g_io_channel_error; } - goto __finally6; + goto __finally39; } } - goto __finally6; - __catch6_g_io_channel_error: + goto __finally39; + __catch39_g_io_channel_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally6: - if (inner_error != NULL) { - g_propagate_error (error, inner_error); - verbose_str = (g_free (verbose_str), NULL); - myenv = (_vala_array_free (myenv, myenv_length1, (GDestroyNotify) g_free), NULL); - real_envp = (_vala_array_free (real_envp, real_envp_length1, (GDestroyNotify) g_free), NULL); - (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); - cmd = (g_free (cmd), NULL); - real_argv = (_vala_array_free (real_argv, real_argv_length1, (GDestroyNotify) g_free), NULL); - return; + __finally39: + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_SPAWN_ERROR) { + g_propagate_error (error, _inner_error_); + verbose_str = (g_free (verbose_str), NULL); + myenv = (_vala_array_free (myenv, myenv_length1, (GDestroyNotify) g_free), NULL); + real_envp = (_vala_array_free (real_envp, real_envp_length1, (GDestroyNotify) g_free), NULL); + (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); + cmd = (g_free (cmd), NULL); + real_argv = (_vala_array_free (real_argv, real_argv_length1, (GDestroyNotify) g_free), NULL); + return; + } else { + verbose_str = (g_free (verbose_str), NULL); + myenv = (_vala_array_free (myenv, myenv_length1, (GDestroyNotify) g_free), NULL); + real_envp = (_vala_array_free (real_envp, real_envp_length1, (GDestroyNotify) g_free), NULL); + (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); + cmd = (g_free (cmd), NULL); + real_argv = (_vala_array_free (real_argv, real_argv_length1, (GDestroyNotify) g_free), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } } /* ignore*/ self->priv->stanza_id = g_io_add_watch (self->priv->reader, G_IO_IN, _deja_dup_duplicity_instance_read_stanza_gio_func, self); @@ -344,17 +411,17 @@ static void deja_dup_duplicity_instance_kill_child (DejaDupDuplicityInstance* self) { g_return_if_fail (self != NULL); - kill ((gint) self->priv->child_pid, 9); + kill ((pid_t) self->priv->child_pid, SIGKILL); } static gboolean deja_dup_duplicity_instance_read_stanza (DejaDupDuplicityInstance* self, GIOChannel* channel, GIOCondition cond) { - GError * inner_error; + GError * _inner_error_; char* line; - gboolean _tmp6; + gboolean _tmp6_; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (channel != NULL, FALSE); - inner_error = NULL; + _inner_error_ = NULL; line = NULL; { GIOStatus status; @@ -362,34 +429,34 @@ status = 0; stanza = NULL; while (TRUE) { - char* _tmp2; - GIOStatus _tmp1; - char* _tmp0; - GIOStatus _tmp3; - gboolean _tmp4; - _tmp2 = NULL; - _tmp0 = NULL; - _tmp3 = (_tmp1 = g_io_channel_read_line (channel, &_tmp0, NULL, NULL, &inner_error), line = (_tmp2 = _tmp0, line = (g_free (line), NULL), _tmp2), _tmp1); - if (inner_error != NULL) { + char* _tmp2_; + GIOStatus _tmp1_; + char* _tmp0_; + GIOStatus _tmp3_; + gboolean _tmp4_; + _tmp2_ = NULL; + _tmp0_ = NULL; + _tmp3_ = (_tmp1_ = g_io_channel_read_line (channel, &_tmp0_, NULL, NULL, &_inner_error_), line = (_tmp2_ = _tmp0_, line = (g_free (line), NULL), _tmp2_), _tmp1_); + if (_inner_error_ != NULL) { (stanza == NULL) ? NULL : (stanza = (_g_list_free_g_free (stanza), NULL)); - goto __catch7_g_error; - goto __finally7; + goto __catch40_g_error; + goto __finally40; } - status = _tmp3; - _tmp4 = FALSE; + status = _tmp3_; + _tmp4_ = FALSE; if (status == G_IO_STATUS_NORMAL) { - _tmp4 = _vala_strcmp0 (line, "\n") != 0; + _tmp4_ = _vala_strcmp0 (line, "\n") != 0; } else { - _tmp4 = FALSE; + _tmp4_ = FALSE; } - if (_tmp4) { - const char* _tmp5; + if (_tmp4_) { + const char* _tmp5_; if (self->priv->_verbose) { g_print ("DUPLICITY: %s", line); } /* line has line ending*/ - _tmp5 = NULL; - stanza = g_list_append (stanza, (_tmp5 = line, (_tmp5 == NULL) ? NULL : g_strdup (_tmp5))); + _tmp5_ = NULL; + stanza = g_list_append (stanza, (_tmp5_ = line, (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_))); } else { break; } @@ -401,25 +468,25 @@ deja_dup_duplicity_instance_process_stanza (self, stanza); (stanza == NULL) ? NULL : (stanza = (_g_list_free_g_free (stanza), NULL)); } - goto __finally7; - __catch7_g_error: + goto __finally40; + __catch40_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("DuplicityInstance.vala:194: %s\n", e->message); + g_warning ("DuplicityInstance.vala:221: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally7: - if (inner_error != NULL) { + __finally40: + if (_inner_error_ != NULL) { line = (g_free (line), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } - return (_tmp6 = TRUE, line = (g_free (line), NULL), _tmp6); + return (_tmp6_ = TRUE, line = (g_free (line), NULL), _tmp6_); } @@ -434,7 +501,7 @@ { glong i; i = start; - for (; i >= 0; (i = i - 1), (rv = rv + 1)) { + for (; i >= 0; i = i - 1, rv = rv + 1) { if (g_utf8_get_char (g_utf8_offset_to_pointer (word, i)) != ch) { break; } @@ -447,142 +514,142 @@ static char* deja_dup_duplicity_instance_validated_string (const char* s) { char* rv; const char* p; - gchar* _tmp0; + gchar* _tmp0_; gint charstr_size; gint charstr_length1; gchar* charstr; - char* _tmp4; + char* _tmp4_; g_return_val_if_fail (s != NULL, NULL); rv = g_strdup (""); p = s; - _tmp0 = NULL; - charstr = (_tmp0 = g_new0 (gchar, 6), charstr_length1 = 6, charstr_size = charstr_length1, _tmp0); + _tmp0_ = NULL; + charstr = (_tmp0_ = g_new0 (gchar, 6), charstr_length1 = 6, charstr_size = charstr_length1, _tmp0_); while (g_utf8_get_char (g_utf8_offset_to_pointer (p, 0)) != 0) { gunichar ch; - gboolean _tmp1; + gboolean _tmp1_; ch = g_utf8_get_char_validated (p, -1); - _tmp1 = FALSE; + _tmp1_ = FALSE; if (ch == ((guint) (-1))) { - _tmp1 = TRUE; + _tmp1_ = TRUE; } else { - _tmp1 = ch == ((guint) (-2)); + _tmp1_ = ch == ((guint) (-2)); } - if (_tmp1) { - char* _tmp2; - _tmp2 = NULL; - rv = (_tmp2 = g_strconcat (rv, ("\xef\xbf\xbd"), NULL), rv = (g_free (rv), NULL), _tmp2); + if (_tmp1_) { + char* _tmp2_; + _tmp2_ = NULL; + rv = (_tmp2_ = g_strconcat (rv, "\xef\xbf\xbd", NULL), rv = (g_free (rv), NULL), _tmp2_); /* the 'unknown character' character in utf-8*/ p = g_utf8_offset_to_pointer (p, (glong) 1); } else { - char* _tmp3; + char* _tmp3_; g_unichar_to_utf8 (ch, (const char*) charstr); - _tmp3 = NULL; - rv = (_tmp3 = g_strconcat (rv, ((const char*) charstr), NULL), rv = (g_free (rv), NULL), _tmp3); + _tmp3_ = NULL; + rv = (_tmp3_ = g_strconcat (rv, (const char*) charstr, NULL), rv = (g_free (rv), NULL), _tmp3_); p = g_utf8_next_char (p); } } - _tmp4 = NULL; - return (_tmp4 = rv, charstr = (g_free (charstr), NULL), _tmp4); + _tmp4_ = NULL; + return (_tmp4_ = rv, charstr = (g_free (charstr), NULL), _tmp4_); } static char* deja_dup_duplicity_instance_compress_string (const char* s_in) { - gchar* _tmp1; + gchar* _tmp1_; gint rv_size; gint rv_length1; - gint _tmp0; + gint _tmp0_; gchar* rv; - gchar* _tmp2; + gchar* _tmp2_; gint s_size; gint s_length1; gchar* s; gint i; gint j; - const char* _tmp9; - char* _tmp10; + const char* _tmp9_; + char* _tmp10_; g_return_val_if_fail (s_in != NULL, NULL); - _tmp1 = NULL; - rv = (_tmp1 = g_new0 (gchar, _tmp0 = strlen (s_in)), rv_length1 = _tmp0, rv_size = rv_length1, _tmp1); - _tmp2 = NULL; - s = (_tmp2 = (gchar*) s_in, s_length1 = -1, s_size = s_length1, _tmp2); + _tmp1_ = NULL; + rv = (_tmp1_ = g_new0 (gchar, _tmp0_ = strlen (s_in) + 1), rv_length1 = _tmp0_, rv_size = rv_length1, _tmp1_); + _tmp2_ = NULL; + s = (_tmp2_ = (gchar*) s_in, s_length1 = -1, s_size = s_length1, _tmp2_); i = 0; j = 0; while (s[i] != 0) { - gboolean _tmp3; - _tmp3 = FALSE; + gboolean _tmp3_; + _tmp3_ = FALSE; if (s[i] == '\\') { - _tmp3 = s[i + 1] != 0; + _tmp3_ = s[i + 1] != 0; } else { - _tmp3 = FALSE; + _tmp3_ = FALSE; } - if (_tmp3) { + if (_tmp3_) { gboolean bare_escape; bare_escape = FALSE; switch (s[i + 1]) { case 'b': { rv[j++] = '\b'; - i = i + (2); + i = i + 2; break; } case 'f': { rv[j++] = '\014'; - i = i + (2); + i = i + 2; break; } case 't': { rv[j++] = '\t'; - i = i + (2); + i = i + 2; break; } case 'n': { rv[j++] = '\n'; - i = i + (2); + i = i + 2; break; } case 'r': { rv[j++] = '\r'; - i = i + (2); + i = i + 2; break; } case 'v': { rv[j++] = '\013'; - i = i + (2); + i = i + 2; break; } case 'a': { rv[j++] = '\007'; - i = i + (2); + i = i + 2; break; } case 'x': { - gboolean _tmp4; - _tmp4 = FALSE; + gboolean _tmp4_; + _tmp4_ = FALSE; if (s[i + 2] != 0) { - _tmp4 = s[i + 3] != 0; + _tmp4_ = s[i + 3] != 0; } else { - _tmp4 = FALSE; + _tmp4_ = FALSE; } - if (_tmp4) { - gchar* _tmp5; + if (_tmp4_) { + gchar* _tmp5_; gint tmpstr_size; gint tmpstr_length1; gchar* tmpstr; gulong val; - _tmp5 = NULL; - tmpstr = (_tmp5 = g_new0 (gchar, 3), tmpstr_length1 = 3, tmpstr_size = tmpstr_length1, _tmp5); + _tmp5_ = NULL; + tmpstr = (_tmp5_ = g_new0 (gchar, 3), tmpstr_length1 = 3, tmpstr_size = tmpstr_length1, _tmp5_); tmpstr[0] = s[i + 2]; tmpstr[1] = s[i + 3]; - val = strtoul (((const char*) tmpstr), NULL, 16); + val = strtoul ((const char*) tmpstr, NULL, 16); rv[j++] = (gchar) val; - i = i + (4); + i = i + 4; tmpstr = (g_free (tmpstr), NULL); } else { bare_escape = TRUE; @@ -598,34 +665,34 @@ case '6': case '7': { - gboolean _tmp6; - gboolean _tmp7; - _tmp6 = FALSE; - _tmp7 = FALSE; + gboolean _tmp6_; + gboolean _tmp7_; + _tmp6_ = FALSE; + _tmp7_ = FALSE; if (s[i + 2] != 0) { - _tmp7 = s[i + 3] != 0; + _tmp7_ = s[i + 3] != 0; } else { - _tmp7 = FALSE; + _tmp7_ = FALSE; } - if (_tmp7) { - _tmp6 = s[i + 4] != 0; + if (_tmp7_) { + _tmp6_ = s[i + 4] != 0; } else { - _tmp6 = FALSE; + _tmp6_ = FALSE; } - if (_tmp6) { - gchar* _tmp8; + if (_tmp6_) { + gchar* _tmp8_; gint tmpstr_size; gint tmpstr_length1; gchar* tmpstr; gulong val; - _tmp8 = NULL; - tmpstr = (_tmp8 = g_new0 (gchar, 4), tmpstr_length1 = 4, tmpstr_size = tmpstr_length1, _tmp8); + _tmp8_ = NULL; + tmpstr = (_tmp8_ = g_new0 (gchar, 4), tmpstr_length1 = 4, tmpstr_size = tmpstr_length1, _tmp8_); tmpstr[0] = s[i + 2]; tmpstr[1] = s[i + 3]; tmpstr[2] = s[i + 4]; - val = strtoul (((const char*) tmpstr), NULL, 8); + val = strtoul ((const char*) tmpstr, NULL, 8); rv[j++] = (gchar) val; - i = i + (5); + i = i + 5; tmpstr = (g_free (tmpstr), NULL); } else { bare_escape = TRUE; @@ -640,131 +707,151 @@ } if (bare_escape) { rv[j++] = s[i + 1]; - i = i + (2); + i = i + 2; } } else { rv[j++] = s[i++]; } } - _tmp9 = NULL; - _tmp10 = NULL; - return (_tmp10 = (_tmp9 = (const char*) rv, (_tmp9 == NULL) ? NULL : g_strdup (_tmp9)), rv = (g_free (rv), NULL), _tmp10); + _tmp9_ = NULL; + _tmp10_ = NULL; + return (_tmp10_ = (_tmp9_ = (const char*) rv, (_tmp9_ == NULL) ? NULL : g_strdup (_tmp9_)), rv = (g_free (rv), NULL), _tmp10_); +} + + +static char* string_substring (const char* self, glong offset, glong len) { + glong string_length; + const char* start; + g_return_val_if_fail (self != NULL, NULL); + string_length = g_utf8_strlen (self, -1); + if (offset < 0) { + offset = string_length + offset; + g_return_val_if_fail (offset >= 0, NULL); + } else { + g_return_val_if_fail (offset <= string_length, NULL); + } + if (len < 0) { + len = string_length - offset; + } + g_return_val_if_fail ((offset + len) <= string_length, NULL); + start = g_utf8_offset_to_pointer (self, offset); + return g_strndup (start, ((gchar*) g_utf8_offset_to_pointer (start, len)) - ((gchar*) start)); } static void deja_dup_duplicity_instance_split_line (const char* line, char*** split, int* split_length1) { - char** _tmp1; + char** _tmp1_; gint firstsplit_size; gint firstsplit_length1; - char** _tmp0; + char** _tmp0_; char** firstsplit; GList* splitlist; gint i; gboolean in_group; char* group_word; - char** _tmp14; - gint _tmp13; + char** _tmp14_; + gint _tmp13_; g_return_if_fail (line != NULL); - _tmp1 = NULL; - _tmp0 = NULL; - firstsplit = (_tmp1 = _tmp0 = g_strsplit (line, " ", 0), firstsplit_length1 = _vala_array_length (_tmp0), firstsplit_size = firstsplit_length1, _tmp1); + _tmp1_ = NULL; + _tmp0_ = NULL; + firstsplit = (_tmp1_ = _tmp0_ = g_strsplit (line, " ", 0), firstsplit_length1 = _vala_array_length (_tmp0_), firstsplit_size = firstsplit_length1, _tmp1_); splitlist = NULL; i = 0; in_group = FALSE; group_word = g_strdup (""); - for (i = 0; firstsplit[i] != NULL; (i = i + 1)) { - const char* _tmp2; + for (i = 0; firstsplit[i] != NULL; i = i + 1) { + const char* _tmp2_; char* word; - gboolean _tmp3; - _tmp2 = NULL; - word = (_tmp2 = firstsplit[i], (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)); + gboolean _tmp3_; + _tmp2_ = NULL; + word = (_tmp2_ = firstsplit[i], (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)); if (firstsplit[i + 1] == NULL) { g_strchomp (word); } - _tmp3 = FALSE; + _tmp3_ = FALSE; if (!in_group) { - _tmp3 = g_str_has_prefix (word, "\'"); + _tmp3_ = g_str_has_prefix (word, "\'"); } else { - _tmp3 = FALSE; + _tmp3_ = FALSE; } /* Merge word groupings like 'hello \'goodbye' as one word. Assumes that duplicity isn't a dick and gives us well formed groupings so we only check for apostrophe at beginning and end of words. We won't crash if duplicity is a dick, but we won't correctly group words.*/ - if (_tmp3) { + if (_tmp3_) { in_group = TRUE; } if (in_group) { - gboolean _tmp4; - char* _tmp6; - _tmp4 = FALSE; + gboolean _tmp4_; + char* _tmp6_; + _tmp4_ = FALSE; if (g_str_has_suffix (word, "\'")) { - _tmp4 = (deja_dup_duplicity_instance_num_suffix (word, '\\', strlen (word) - 2) % 2) == 0; + _tmp4_ = (deja_dup_duplicity_instance_num_suffix (word, '\\', strlen (word) - 2) % 2) == 0; } else { - _tmp4 = FALSE; + _tmp4_ = FALSE; } - if (_tmp4) { + if (_tmp4_) { in_group = FALSE; } else { if ((deja_dup_duplicity_instance_num_suffix (word, '\\', -1) % 2) == 1) { - char* _tmp5; - _tmp5 = NULL; - word = (_tmp5 = string_substring (word, (glong) 0, g_utf8_strlen (word, -1) - 2), word = (g_free (word), NULL), _tmp5); + char* _tmp5_; + _tmp5_ = NULL; + word = (_tmp5_ = string_substring (word, (glong) 0, g_utf8_strlen (word, -1) - 2), word = (g_free (word), NULL), _tmp5_); } } /* get rid of any other escaping backslashes and translate octals*/ - _tmp6 = NULL; - word = (_tmp6 = deja_dup_duplicity_instance_compress_string (word), word = (g_free (word), NULL), _tmp6); + _tmp6_ = NULL; + word = (_tmp6_ = deja_dup_duplicity_instance_compress_string (word), word = (g_free (word), NULL), _tmp6_); /* Now join to rest of group.*/ if (_vala_strcmp0 (group_word, "") == 0) { - char* _tmp8; - const char* _tmp7; - _tmp8 = NULL; - _tmp7 = NULL; - group_word = (_tmp8 = (_tmp7 = word, (_tmp7 == NULL) ? NULL : g_strdup (_tmp7)), group_word = (g_free (group_word), NULL), _tmp8); + char* _tmp8_; + const char* _tmp7_; + _tmp8_ = NULL; + _tmp7_ = NULL; + group_word = (_tmp8_ = (_tmp7_ = word, (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_)), group_word = (g_free (group_word), NULL), _tmp8_); } else { - char* _tmp10; - char* _tmp9; - _tmp10 = NULL; - _tmp9 = NULL; - group_word = (_tmp10 = g_strconcat (group_word, _tmp9 = (g_strconcat (" ", word, NULL)), NULL), group_word = (g_free (group_word), NULL), _tmp10); - _tmp9 = (g_free (_tmp9), NULL); + char* _tmp10_; + char* _tmp9_; + _tmp10_ = NULL; + _tmp9_ = NULL; + group_word = (_tmp10_ = g_strconcat (group_word, _tmp9_ = g_strconcat (" ", word, NULL), NULL), group_word = (g_free (group_word), NULL), _tmp10_); + _tmp9_ = (g_free (_tmp9_), NULL); } if (!in_group) { - char* _tmp11; + char* _tmp11_; /* add to list, but drop single quotes*/ splitlist = g_list_append (splitlist, string_substring (group_word, (glong) 1, g_utf8_strlen (group_word, -1) - 2)); - _tmp11 = NULL; - group_word = (_tmp11 = g_strdup (""), group_word = (g_free (group_word), NULL), _tmp11); + _tmp11_ = NULL; + group_word = (_tmp11_ = g_strdup (""), group_word = (g_free (group_word), NULL), _tmp11_); } } else { - const char* _tmp12; - _tmp12 = NULL; - splitlist = g_list_append (splitlist, (_tmp12 = word, (_tmp12 == NULL) ? NULL : g_strdup (_tmp12))); + const char* _tmp12_; + _tmp12_ = NULL; + splitlist = g_list_append (splitlist, (_tmp12_ = word, (_tmp12_ == NULL) ? NULL : g_strdup (_tmp12_))); } word = (g_free (word), NULL); } /* Now make it nice array for ease of random access*/ - _tmp14 = NULL; - (*split) = (_tmp14 = g_new0 (char*, (_tmp13 = g_list_length (splitlist)) + 1), (*split) = (_vala_array_free ((*split), *split_length1, (GDestroyNotify) g_free), NULL), *split_length1 = _tmp13, _tmp14); + _tmp14_ = NULL; + (*split) = (_tmp14_ = g_new0 (char*, (_tmp13_ = g_list_length (splitlist)) + 1), (*split) = (_vala_array_free ((*split), *split_length1, (GDestroyNotify) g_free), NULL), *split_length1 = _tmp13_, _tmp14_); i = 0; { GList* s_collection; GList* s_it; s_collection = splitlist; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp18; + const char* _tmp18_; char* s; - _tmp18 = NULL; - s = (_tmp18 = (const char*) s_it->data, (_tmp18 == NULL) ? NULL : g_strdup (_tmp18)); + _tmp18_ = NULL; + s = (_tmp18_ = (const char*) s_it->data, (_tmp18_ == NULL) ? NULL : g_strdup (_tmp18_)); { - gint _tmp17; - char* _tmp16; - const char* _tmp15; - _tmp16 = NULL; - _tmp15 = NULL; - _tmp17 = i++; - (*split)[_tmp17] = (_tmp16 = (_tmp15 = s, (_tmp15 == NULL) ? NULL : g_strdup (_tmp15)), (*split)[_tmp17] = (g_free ((*split)[_tmp17]), NULL), _tmp16); + char* _tmp17_; + char* *_tmp16_; + const char* _tmp15_; + _tmp17_ = NULL; + _tmp15_ = NULL; + _tmp16_ = &(*split)[i++]; + (*_tmp16_) = (_tmp17_ = (_tmp15_ = s, (_tmp15_ == NULL) ? NULL : g_strdup (_tmp15_)), (*_tmp16_) = (g_free ((*_tmp16_)), NULL), _tmp17_); s = (g_free (s), NULL); } } @@ -782,7 +869,6 @@ GList* data; char* text; g_return_if_fail (self != NULL); - g_return_if_fail (stanza != NULL); control_line = (control_line_length1 = 0, NULL); deja_dup_duplicity_instance_split_line ((const char*) stanza->data, &control_line, &control_line_length1); data = deja_dup_duplicity_instance_grab_stanza_data (self, stanza); @@ -797,7 +883,6 @@ static GList* deja_dup_duplicity_instance_grab_stanza_data (DejaDupDuplicityInstance* self, GList* stanza) { GList* list; g_return_val_if_fail (self != NULL, NULL); - g_return_val_if_fail (stanza != NULL, NULL); list = NULL; stanza = stanza->next; /* skip first control line*/ @@ -806,10 +891,10 @@ GList* line_it; line_collection = stanza; for (line_it = line_collection; line_it != NULL; line_it = line_it->next) { - const char* _tmp0; + const char* _tmp0_; char* line; - _tmp0 = NULL; - line = (_tmp0 = (const char*) line_it->data, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + line = (_tmp0_ = (const char*) line_it->data, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); { if (!g_str_has_prefix (line, ". ")) { list = g_list_append (list, deja_dup_duplicity_instance_validated_string (g_strchomp (line))); @@ -825,55 +910,54 @@ static char* deja_dup_duplicity_instance_grab_stanza_text (DejaDupDuplicityInstance* self, GList* stanza) { char* text; - const char* _tmp5; - char* _tmp6; + const char* _tmp5_; + char* _tmp6_; g_return_val_if_fail (self != NULL, NULL); - g_return_val_if_fail (stanza != NULL, NULL); text = g_strdup (""); { GList* line_collection; GList* line_it; line_collection = stanza; for (line_it = line_collection; line_it != NULL; line_it = line_it->next) { - const char* _tmp4; + const char* _tmp4_; char* line; - _tmp4 = NULL; - line = (_tmp4 = (const char*) line_it->data, (_tmp4 == NULL) ? NULL : g_strdup (_tmp4)); + _tmp4_ = NULL; + line = (_tmp4_ = (const char*) line_it->data, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)); { if (g_str_has_prefix (line, ". ")) { - char** _tmp1; + char** _tmp1_; gint split_size; gint split_length1; - char** _tmp0; + char** _tmp0_; char** split; - char* _tmp3; - char* _tmp2; - _tmp1 = NULL; - _tmp0 = NULL; - split = (_tmp1 = _tmp0 = g_strsplit (line, ". ", 2), split_length1 = _vala_array_length (_tmp0), split_size = split_length1, _tmp1); - _tmp3 = NULL; - _tmp2 = NULL; - text = (_tmp3 = g_strdup_printf ("%s%s", text, _tmp2 = deja_dup_duplicity_instance_validated_string (split[1])), text = (g_free (text), NULL), _tmp3); - _tmp2 = (g_free (_tmp2), NULL); + char* _tmp3_; + char* _tmp2_; + _tmp1_ = NULL; + _tmp0_ = NULL; + split = (_tmp1_ = _tmp0_ = g_strsplit (line, ". ", 2), split_length1 = _vala_array_length (_tmp0_), split_size = split_length1, _tmp1_); + _tmp3_ = NULL; + _tmp2_ = NULL; + text = (_tmp3_ = g_strdup_printf ("%s%s", text, _tmp2_ = deja_dup_duplicity_instance_validated_string (split[1])), text = (g_free (text), NULL), _tmp3_); + _tmp2_ = (g_free (_tmp2_), NULL); split = (_vala_array_free (split, split_length1, (GDestroyNotify) g_free), NULL); } line = (g_free (line), NULL); } } } - _tmp5 = NULL; - _tmp6 = NULL; - return (_tmp6 = (_tmp5 = g_strchomp (text), (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), text = (g_free (text), NULL), _tmp6); + _tmp5_ = NULL; + _tmp6_ = NULL; + return (_tmp6_ = (_tmp5_ = g_strchomp (text), (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)), text = (g_free (text), NULL), _tmp6_); } static void deja_dup_duplicity_instance_spawn_finished (DejaDupDuplicityInstance* self, GPid pid, gint status) { - GError * inner_error; - gboolean _tmp0; + GError * _inner_error_; + gboolean _tmp0_; gboolean success; gboolean cancelled; g_return_if_fail (self != NULL); - inner_error = NULL; + _inner_error_ = NULL; /* Reference ourselves, because when processing stanza we have not yet gotten to below, whoever owns us might unref us in the middle of this function, and we don't want to die immediately. Wait until the @@ -884,16 +968,16 @@ } self->priv->stanza_id = (guint) 0; self->priv->watch_id = (guint) 0; - _tmp0 = FALSE; + _tmp0_ = FALSE; if (WIFEXITED (status)) { - _tmp0 = WEXITSTATUS (status) == 0; + _tmp0_ = WEXITSTATUS (status) == 0; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - success = _tmp0; + success = _tmp0_; cancelled = !WIFEXITED (status); if (self->priv->reader != NULL) { - GIOChannel* _tmp1; + GIOChannel* _tmp1_; while (TRUE) { GIOCondition cond; cond = g_io_channel_get_buffer_condition (self->priv->reader); @@ -906,36 +990,36 @@ if (WIFEXITED (status)) { gint exitval; exitval = WEXITSTATUS (status); - g_debug ("DuplicityInstance.vala:426: duplicity (%i) exited with value %i\n", (gint) pid, exitval); + g_debug ("DuplicityInstance.vala:453: duplicity (%i) exited with value %i\n", (gint) pid, exitval); } else { - g_debug ("DuplicityInstance.vala:429: duplicity (%i) process killed\n", (gint) pid); + g_debug ("DuplicityInstance.vala:456: duplicity (%i) process killed\n", (gint) pid); } { - g_io_channel_shutdown (self->priv->reader, FALSE, &inner_error); - if (inner_error != NULL) { - goto __catch8_g_error; - goto __finally8; + g_io_channel_shutdown (self->priv->reader, FALSE, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch41_g_error; + goto __finally41; } } - goto __finally8; - __catch8_g_error: + goto __finally41; + __catch41_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("DuplicityInstance.vala:435: %s\n", e->message); + g_warning ("DuplicityInstance.vala:462: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally8: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally41: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } - _tmp1 = NULL; - self->priv->reader = (_tmp1 = NULL, (self->priv->reader == NULL) ? NULL : (self->priv->reader = (g_io_channel_unref (self->priv->reader), NULL)), _tmp1); + _tmp1_ = NULL; + self->priv->reader = (_tmp1_ = NULL, (self->priv->reader == NULL) ? NULL : (self->priv->reader = (g_io_channel_unref (self->priv->reader), NULL)), _tmp1_); } g_spawn_close_pid (pid); self->priv->child_pid = (GPid) 0; @@ -979,55 +1063,26 @@ obj = parent_class->constructor (type, n_construct_properties, construct_properties); self = DEJA_DUP_DUPLICITY_INSTANCE (obj); { - GIOChannel* _tmp0; - gint* _tmp1; - _tmp0 = NULL; - self->priv->reader = (_tmp0 = NULL, (self->priv->reader == NULL) ? NULL : (self->priv->reader = (g_io_channel_unref (self->priv->reader), NULL)), _tmp0); - _tmp1 = NULL; - self->priv->pipes = (_tmp1 = g_new0 (gint, 2), self->priv->pipes = (g_free (self->priv->pipes), NULL), self->priv->pipes_length1 = 2, self->priv->pipes_size = self->priv->pipes_length1, _tmp1); + GIOChannel* _tmp0_; + gint* _tmp1_; + _tmp0_ = NULL; + self->priv->reader = (_tmp0_ = NULL, (self->priv->reader == NULL) ? NULL : (self->priv->reader = (g_io_channel_unref (self->priv->reader), NULL)), _tmp0_); + _tmp1_ = NULL; + self->priv->pipes = (_tmp1_ = g_new0 (gint, 2), self->priv->pipes = (g_free (self->priv->pipes), NULL), self->priv->pipes_length1 = 2, self->priv->pipes_size = self->priv->pipes_length1, _tmp1_); self->priv->pipes[0] = self->priv->pipes[1] = -1; } return obj; } -static void deja_dup_duplicity_instance_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - DejaDupDuplicityInstance * self; - gpointer boxed; - self = DEJA_DUP_DUPLICITY_INSTANCE (object); - switch (property_id) { - case DEJA_DUP_DUPLICITY_INSTANCE_VERBOSE: - g_value_set_boolean (value, deja_dup_duplicity_instance_get_verbose (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void deja_dup_duplicity_instance_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - DejaDupDuplicityInstance * self; - self = DEJA_DUP_DUPLICITY_INSTANCE (object); - switch (property_id) { - case DEJA_DUP_DUPLICITY_INSTANCE_VERBOSE: - deja_dup_duplicity_instance_set_verbose (self, g_value_get_boolean (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - static void deja_dup_duplicity_instance_class_init (DejaDupDuplicityInstanceClass * klass) { deja_dup_duplicity_instance_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (DejaDupDuplicityInstancePrivate)); + DEJA_DUP_DUPLICITY_INSTANCE_CLASS (klass)->start = deja_dup_duplicity_instance_real_start; G_OBJECT_CLASS (klass)->get_property = deja_dup_duplicity_instance_get_property; G_OBJECT_CLASS (klass)->set_property = deja_dup_duplicity_instance_set_property; G_OBJECT_CLASS (klass)->constructor = deja_dup_duplicity_instance_constructor; G_OBJECT_CLASS (klass)->finalize = deja_dup_duplicity_instance_finalize; - DEJA_DUP_DUPLICITY_INSTANCE_CLASS (klass)->start = deja_dup_duplicity_instance_real_start; g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_DUPLICITY_INSTANCE_VERBOSE, g_param_spec_boolean ("verbose", "verbose", "verbose", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_signal_new ("done", DEJA_DUP_TYPE_DUPLICITY_INSTANCE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOOLEAN_BOOLEAN, G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); g_signal_new ("message", DEJA_DUP_TYPE_DUPLICITY_INSTANCE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__BOXED_INT_POINTER_STRING, G_TYPE_NONE, 4, G_TYPE_STRV, G_TYPE_INT, G_TYPE_POINTER, G_TYPE_STRING); @@ -1051,7 +1106,7 @@ g_source_remove (self->priv->watch_id); } if (deja_dup_duplicity_instance_is_started (self)) { - g_debug ("DuplicityInstance.vala:162: duplicity (%i) process killed\n", (gint) self->priv->child_pid); + g_debug ("DuplicityInstance.vala:189: duplicity (%i) process killed\n", (gint) self->priv->child_pid); deja_dup_duplicity_instance_kill_child (self); } } @@ -1071,7 +1126,36 @@ } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void deja_dup_duplicity_instance_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupDuplicityInstance * self; + gpointer boxed; + self = DEJA_DUP_DUPLICITY_INSTANCE (object); + switch (property_id) { + case DEJA_DUP_DUPLICITY_INSTANCE_VERBOSE: + g_value_set_boolean (value, deja_dup_duplicity_instance_get_verbose (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_duplicity_instance_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupDuplicityInstance * self; + self = DEJA_DUP_DUPLICITY_INSTANCE (object); + switch (property_id) { + case DEJA_DUP_DUPLICITY_INSTANCE_VERBOSE: + deja_dup_duplicity_instance_set_verbose (self, g_value_get_boolean (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -1080,6 +1164,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/libdeja-dup/DuplicityInstance.h deja-dup-10.0/libdeja-dup/DuplicityInstance.h --- deja-dup-7.4/libdeja-dup/DuplicityInstance.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/DuplicityInstance.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,47 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __DUPLICITYINSTANCE_H__ -#define __DUPLICITYINSTANCE_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_DUPLICITY_INSTANCE (deja_dup_duplicity_instance_get_type ()) -#define DEJA_DUP_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstance)) -#define DEJA_DUP_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) -#define DEJA_DUP_IS_DUPLICITY_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) -#define DEJA_DUP_IS_DUPLICITY_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY_INSTANCE)) -#define DEJA_DUP_DUPLICITY_INSTANCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY_INSTANCE, DejaDupDuplicityInstanceClass)) - -typedef struct _DejaDupDuplicityInstance DejaDupDuplicityInstance; -typedef struct _DejaDupDuplicityInstanceClass DejaDupDuplicityInstanceClass; -typedef struct _DejaDupDuplicityInstancePrivate DejaDupDuplicityInstancePrivate; - -struct _DejaDupDuplicityInstance { - GObject parent_instance; - DejaDupDuplicityInstancePrivate * priv; -}; - -struct _DejaDupDuplicityInstanceClass { - GObjectClass parent_class; - void (*start) (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); -}; - - -void deja_dup_duplicity_instance_start (DejaDupDuplicityInstance* self, GList* argv_in, GList* envp_in, GError** error); -gboolean deja_dup_duplicity_instance_is_started (DejaDupDuplicityInstance* self); -void deja_dup_duplicity_instance_cancel (DejaDupDuplicityInstance* self); -DejaDupDuplicityInstance* deja_dup_duplicity_instance_construct (GType object_type); -DejaDupDuplicityInstance* deja_dup_duplicity_instance_new (void); -gboolean deja_dup_duplicity_instance_get_verbose (DejaDupDuplicityInstance* self); -GType deja_dup_duplicity_instance_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/DuplicityInstance.vala deja-dup-10.0/libdeja-dup/DuplicityInstance.vala --- deja-dup-7.4/libdeja-dup/DuplicityInstance.vala 2009-02-03 20:29:05.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/DuplicityInstance.vala 2009-06-02 17:48:56.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -36,7 +36,7 @@ verbose = true; // Open pipes to communicate with subprocess - if (pipe(pipes) != 0) { + if (Posix.pipe(pipes) != 0) { done(false, false); return; } @@ -83,15 +83,42 @@ // 1 or 2. For now, we'll keep with the default. argv.append("--volsize=5"); + /* Duplicity can't gracefully start using archive dir in the middle of a + backup series, so we don't turn this on yet. I'll have to submit a + a patch to make that work. + // Cache signature files + var cache_dir = Environment.get_user_cache_dir(); + if (cache_dir != null) { + bool add_dir = false; + var cache_file = File.new_for_path(cache_dir); + cache_file = cache_file.get_child(Config.PACKAGE); + try { + if (hacks_file_make_directory_with_parents(cache_file)) + add_dir = true; + } + catch (IOError.EXISTS e) { + add_dir = true; // ignore + } + catch (IOError e) { + warning("%s\n", e.message); + } + if (add_dir) + argv.append("--archive-dir=" + cache_file.get_path()); + } + */ + // Add always-there arguments argv.append("--log-fd=%d".printf(pipes[1])); argv.prepend("duplicity"); // Check for ionice to be a good disk citizen if (Environment.find_program_in_path("ionice") != null) { - argv.prepend("-c3"); // idle class + argv.prepend("-n7"); // lowest priority + argv.prepend("-c2"); // best-effort class (can't use idle as normal user on <2.6.25) argv.prepend("ionice"); } + if (Environment.find_program_in_path("nice") != null) + argv.prepend("nice"); string cmd = null; string[] real_argv = new string[argv.length()]; @@ -121,7 +148,7 @@ } catch (IOChannelError e) {} // ignore stanza_id = reader.add_watch(IOCondition.IN, read_stanza); - close(pipes[1]); + Posix.close(pipes[1]); watch_id = ChildWatch.add(child_pid, spawn_finished); } @@ -165,7 +192,7 @@ } void kill_child() { - kill((int)child_pid, 9); + Posix.kill((Posix.pid_t)child_pid, Posix.SIGKILL); } bool read_stanza(IOChannel channel, IOCondition cond) @@ -236,7 +263,7 @@ static string compress_string(string s_in) { - char[] rv = new char[s_in.size()]; + char[] rv = new char[s_in.size()+1]; weak char[] s = (char[])s_in; int i = 0, j = 0; diff -Nru deja-dup-7.4/libdeja-dup/Duplicity.vala deja-dup-10.0/libdeja-dup/Duplicity.vala --- deja-dup-7.4/libdeja-dup/Duplicity.vala 2009-02-11 20:34:01.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Duplicity.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -31,6 +31,7 @@ public signal void collection_dates(List<string>? dates); public Gtk.Window toplevel {get; construct;} + public Operation.Mode original_mode {get; private set;} public Operation.Mode mode {get; private set;} public bool error_issued {get; private set; default = false;} @@ -53,7 +54,8 @@ protected enum State { NORMAL, - DRY_RUN, + DRY_RUN, // used when backing up, and we need to first get time estimate + STATUS, // used when backing up, and we need to first get collection info CLEANUP } protected State state {get; set;} @@ -69,23 +71,30 @@ double progress_total; // zero, unless we already know limit double progress_count; // count of how far we are along in the current instance + bool checked_collection_info = false; + bool got_collection_info = false; + List<string> collection_info = null; + + File last_touched_file = null; + public Duplicity(Operation.Mode mode, Gtk.Window? win) { this.mode = mode; + this.original_mode = mode; toplevel = win; } - public virtual void start(Backend backend, string remote, bool encrypted, + public virtual void start(Backend backend, bool encrypted, List<string>? argv, List<string>? envp) { // save arguments for calling duplicity again later - this.remote = remote; + this.remote = backend.get_location(); this.backend = backend; saved_argv = new List<string>(); saved_envp = new List<string>(); backend_argv = new List<string>(); foreach (string s in argv) saved_argv.append(s); foreach (string s in envp) saved_envp.append(s); - backend.add_argv(ref backend_argv); + backend.add_argv(Operation.Mode.INVALID, ref backend_argv); if (!encrypted) backend_argv.append("--no-encryption"); @@ -94,10 +103,10 @@ } public void cancel() { - var old_mode = mode; + var prev_mode = mode; mode = Operation.Mode.INVALID; - if (old_mode == Operation.Mode.BACKUP) { + if (prev_mode == Operation.Mode.BACKUP) { if (cleanup()) return; } @@ -116,17 +125,28 @@ string action_desc = null; string custom_local = null; - switch (mode) { + switch (original_mode) { case Operation.Mode.BACKUP: + // If duplicity is using the new time format, we need to first check if + // the user has files in the old 'short-filenames' format. If so, we'll + // add to that chain. + if (!checked_collection_info && + DuplicityInfo.get_default().has_collection_status) { + mode = Operation.Mode.STATUS; + state = State.STATUS; + action_desc = _("Preparing..."); + } // If we're backing up, and the version of duplicity supports it, we should // first run using --dry-run to get the total size of the backup, to make // accurate progress bars. - if (DuplicityInfo.get_default().has_backup_progress && + else if (DuplicityInfo.get_default().has_backup_progress && !has_progress_total) { state = State.DRY_RUN; action_desc = _("Preparing..."); extra_argv.append("--dry-run"); } + else if (DuplicityInfo.get_default().has_backup_progress) + progress(0f); break; case Operation.Mode.RESTORE: if (restore_files != null) { @@ -141,7 +161,7 @@ try { // won't have correct permissions... - local_file.make_directory_with_parents(null); + hacks_file_make_directory_with_parents(local_file); } catch (Error e) { show_error(e.message); @@ -150,6 +170,8 @@ custom_local = local_file.get_path(); extra_argv.append("--file-to-restore=%s".printf(rel_file_path)); } + if (DuplicityInfo.get_default().has_restore_progress) + progress(0f); break; } @@ -194,7 +216,7 @@ break; case State.CLEANUP: - if (restart()) // restart in case cleanup was interrupting normal flow + if (success && restart()) // restart in case cleanup was interrupting normal flow return; // Else, we probably started cleaning up after a cancel. Just continue @@ -203,6 +225,28 @@ cancelled = true; break; + case State.STATUS: + if (success) { + checked_collection_info = true; + mode = Operation.Mode.BACKUP; + + if (!got_collection_info || collection_info == null) { + // Checking for backup files added the short-filename parameter. + // If there were no files, we want to take it out again and + // proceed with a normal filename backup. + foreach (weak string s in backend_argv) { + if (s == "--short-filenames") + backend_argv.remove(s); + } + } + + if (restart()) + return; + else + success = false; + } + break; + case State.NORMAL: if (success && mode == Operation.Mode.RESTORE && restore_files != null) { _restore_files.delete_link(_restore_files); @@ -227,6 +271,9 @@ bool restart_with_short_filenames_if_needed() { + if (DuplicityInfo.get_default().can_read_short_filenames) + return false; + foreach (string s in backend_argv) { if (s == "--short-filenames") return false; @@ -324,11 +371,28 @@ case "IOError": if (text.str("GnuPG") != null) show_error(_("Bad encryption password.")); + else if (text.str("[Errno 5]") != null && // I/O Error + last_touched_file != null) { + if (mode == Operation.Mode.BACKUP) + show_error(_("Error reading file '%s'.").printf(last_touched_file.get_parse_name())); + else + show_error(_("Error writing file '%s'.").printf(last_touched_file.get_parse_name())); + } + else if (text.str("[Errno 28]") != null) { // No space left on device + string where; + if (mode == Operation.Mode.BACKUP) + where = backend.get_location_pretty(); + else + where = local; + show_error(_("No space left in %s").printf(where)); + } else { // Very possibly a FAT file system that can't handle the colons that // duplicity likes to use. Try again with --short-filenames // But first make sure we aren't already doing that. - restart_with_short_filenames_if_needed(); + // Happens on backup only. + if (!DuplicityInfo.get_default().new_time_format) + restart_with_short_filenames_if_needed(); } break; case "CollectionsError": @@ -344,9 +408,11 @@ break; } - // For most, don't do anything. Error string won't be useful to humans, and - // by not raising it, we'll eventually hit the 'unknown error' - // message which is slightly better than a giant exception string. + // For most, don't do anything special. Show generic 'unknown error' + // message, but provide the exception text for better bug reports. + // Plus, sometimes it may clue the user in to what's wrong. + if (!error_issued) + show_error(_("Failed with an unknown error."), text); } protected virtual void process_info(string[] firstline, List<string>? data, @@ -376,13 +442,19 @@ } void process_diff_file(string file) { - if (state != State.DRY_RUN) - action_file_changed(make_file_obj(file)); + var gfile = make_file_obj(file); + last_touched_file = gfile; + if (state != State.DRY_RUN && + hacks_file_query_file_type(gfile, FileQueryInfoFlags.NONE) != FileType.DIRECTORY) + action_file_changed(gfile); } void process_patch_file(string file) { - if (state != State.DRY_RUN) - action_file_changed(make_file_obj(file)); + var gfile = make_file_obj(file); + last_touched_file = gfile; + if (state != State.DRY_RUN && + hacks_file_query_file_type(gfile, FileQueryInfoFlags.NONE) != FileType.DIRECTORY) + action_file_changed(gfile); } void process_progress(string[] firstline) @@ -439,7 +511,7 @@ in_chain = true; else if (in_chain && line.length > 0 && line[0] == ' ') { // OK, appears to be a date line. Try to parse. Should look like: - // ' inc TIMESTR NUMVOLS'. Since there's a space at the beginnning, + // ' inc TIMESTR NUMVOLS'. Since there's a space at the beginning, // when we tokenize it, we should expect an extra token at the front. string[] tokens = line.split(" "); if (tokens.length > 2 && timeval.from_iso8601(tokens[2])) @@ -455,6 +527,11 @@ return; } + got_collection_info = true; + collection_info = new List<string>(); + foreach (string s in dates) + collection_info.append(s); // we want to keep our own copy too + collection_dates(dates); } @@ -478,10 +555,12 @@ } } - void show_error(string errorstr) + void show_error(string errorstr, string? detail = null) { - error_issued = true; - raise_error(errorstr, null); + if (error_issued == false) { + error_issued = true; + raise_error(errorstr, detail); + } } void connect_and_start(List<string>? argv_extra = null, @@ -490,14 +569,14 @@ string? custom_local = null) { if (inst != null) { - inst.done -= handle_done; - inst.message -= handle_message; + inst.done.disconnect(handle_done); + inst.message.disconnect(handle_message); inst.cancel(); } inst = new DuplicityInstance(); - inst.done += handle_done; - inst.message += handle_message; + inst.done.connect(handle_done); + inst.message.connect(handle_message); weak List<string> master_argv = argv_entire == null ? saved_argv : argv_entire; weak string local_arg = custom_local == null ? local : custom_local; diff -Nru deja-dup-7.4/libdeja-dup/hacks.c deja-dup-10.0/libdeja-dup/hacks.c --- deja-dup-7.4/libdeja-dup/hacks.c 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/hacks.c 2009-06-02 17:48:48.000000000 -0400 @@ -2,6 +2,7 @@ /* Déjà Dup © 2008 Michael Terry <mike@mterry.name> + © 2002, 2003, 2006, 2007 Red Hat, Inc. 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 @@ -17,7 +18,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <gio/gunixmounts.h> #include "hacks.h" +#include "mountoperation.h" static const GnomeKeyringPasswordSchema PASSPHRASE_SCHEMA_DEF = { GNOME_KEYRING_ITEM_GENERIC_SECRET, @@ -30,3 +33,226 @@ const GnomeKeyringPasswordSchema *PASSPHRASE_SCHEMA = &PASSPHRASE_SCHEMA_DEF; +guint32 +hacks_status_icon_get_x11_window_id (GtkStatusIcon *icon) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_status_icon_get_x11_window_id (icon); +#else + return 0; +#endif +} + +gboolean +hacks_show_uri (const gchar *uri, GError **error) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_show_uri (NULL, uri, GDK_CURRENT_TIME, error); +#else + GAppLaunchContext *context = g_app_launch_context_new (); + g_app_info_launch_default_for_uri (uri, context, error); + g_object_unref (context); + if (error) + return FALSE; + return TRUE; +#endif +} + +GdkPixbuf * +hacks_get_icon_at_size (const gchar *name, gint size, GError **error) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), name, size, + GTK_ICON_LOOKUP_FORCE_SIZE, error); +#else + /* Copyright (C) 2002, 2003 Red Hat, Inc. */ + GdkPixbuf *source_pixbuf, *pixbuf; + gint image_width, image_height, image_size; + gdouble scale; + + source_pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (), + name, size, 0, error); + if (error) + return NULL; + + /* Do scale calculations that depend on the image size + */ + image_width = gdk_pixbuf_get_width (source_pixbuf); + image_height = gdk_pixbuf_get_height (source_pixbuf); + + image_size = MAX (image_width, image_height); + if (image_size > 0) + scale = (gdouble)size / (gdouble)image_size; + else + scale = 1.0; + + if (scale == 1.0) + pixbuf = source_pixbuf; + else { + pixbuf = gdk_pixbuf_scale_simple (source_pixbuf, + 0.5 + image_width * scale, + 0.5 + image_height * scale, + GDK_INTERP_BILINEAR); + g_object_unref (source_pixbuf); + } + + return pixbuf; +#endif +} + +gboolean +hacks_file_make_directory_with_parents (GFile *file, GError **error) +{ +#if GLIB_CHECK_VERSION(2, 18, 0) + return g_file_make_directory_with_parents (file, NULL, error); +#else + /* Copyright (C) 2006-2007 Red Hat, Inc. */ + gboolean result; + GFile *parent_file, *work_file; + GList *list = NULL, *l; + GError *my_error = NULL; + + result = g_file_make_directory (file, NULL, &my_error); + if (result || my_error->code != G_IO_ERROR_NOT_FOUND) + { + if (my_error) + g_propagate_error (error, my_error); + return result; + } + + work_file = file; + + while (!result && my_error->code == G_IO_ERROR_NOT_FOUND) + { + g_clear_error (&my_error); + + parent_file = g_file_get_parent (work_file); + if (parent_file == NULL) + break; + result = g_file_make_directory (parent_file, NULL, &my_error); + + if (!result && my_error->code == G_IO_ERROR_NOT_FOUND) + list = g_list_prepend (list, parent_file); + + work_file = parent_file; + } + + for (l = list; result && l; l = l->next) + { + result = g_file_make_directory ((GFile *) l->data, NULL, &my_error); + } + + /* Clean up */ + while (list != NULL) + { + g_object_unref ((GFile *) list->data); + list = g_list_remove (list, list->data); + } + + if (!result) + { + g_propagate_error (error, my_error); + return result; + } + + return g_file_make_directory (file, NULL, error); +#endif +} + +GFileType +hacks_file_query_file_type (GFile *file, GFileQueryInfoFlags flags) +{ +#if GLIB_CHECK_VERSION(2, 18, 0) + return g_file_query_file_type (file, flags, NULL); +#else + /* Copyright (C) 2006-2007 Red Hat, Inc. */ + GFileInfo *info; + GFileType file_type; + + g_return_val_if_fail (G_IS_FILE(file), G_FILE_TYPE_UNKNOWN); + info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE, flags, + NULL, NULL); + if (info != NULL) + { + file_type = g_file_info_get_file_type (info); + g_object_unref (info); + } + else + file_type = G_FILE_TYPE_UNKNOWN; + + return file_type; +#endif +} + +/** + * At the time of this writing, vala 0.7.1's gio-unix-2.0 bindings are crap. + * This function grabs a unix mount's filesystem type (vfat, ecryptfs, etc) + */ +gchar * +hacks_unix_mount_get_fs_type (const gchar *file) +{ + GUnixMountEntry *mount = g_unix_mount_at(file, NULL); + gchar *fs_type = g_strdup(g_unix_mount_get_fs_type(mount)); + g_unix_mount_free(mount); + return fs_type; +} + +void +hacks_status_icon_set_tooltip_text (GtkStatusIcon *icon, const gchar *text) +{ +#if GTK_CHECK_VERSION(2, 16, 0) + return gtk_status_icon_set_tooltip_text (icon, text); +#else + return gtk_status_icon_set_tooltip (icon, text); +#endif +} + +GdkWindow * +hacks_widget_get_window (GtkWidget *widget) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_widget_get_window (widget); +#else + return widget->window; +#endif +} + +GMountOperation * +hacks_mount_operation_new (GtkWindow *parent) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_mount_operation_new (parent); +#else + return dup_mount_operation_new (parent); +#endif +} + +gdouble +hacks_adjustment_get_page_size (GtkAdjustment *adjust) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_adjustment_get_page_size (adjust); +#else + return adjust->page_size; +#endif +} + +gdouble +hacks_adjustment_get_upper (GtkAdjustment *adjust) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_adjustment_get_upper (adjust); +#else + return adjust->upper; +#endif +} + +GtkWidget * +hacks_dialog_get_action_area (GtkDialog *dialog) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + return gtk_dialog_get_action_area (dialog); +#else + return dialog->action_area; +#endif +} diff -Nru deja-dup-7.4/libdeja-dup/hacks.h deja-dup-10.0/libdeja-dup/hacks.h --- deja-dup-7.4/libdeja-dup/hacks.h 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/hacks.h 2009-06-02 17:48:48.000000000 -0400 @@ -22,8 +22,23 @@ #define __HACKS_H__ #include <gnome-keyring.h> +#include <gtk/gtk.h> +#include <gio/gio.h> extern const GnomeKeyringPasswordSchema *PASSPHRASE_SCHEMA; +extern guint32 hacks_status_icon_get_x11_window_id (GtkStatusIcon *icon); +extern gboolean hacks_show_uri (const gchar *uri, GError **error); +extern gboolean hacks_file_make_directory_with_parents (GFile *file, GError **error); +extern GdkPixbuf *hacks_get_icon_at_size (const gchar *name, gint size, GError **error); +extern GFileType hacks_file_query_file_type (GFile *file, GFileQueryInfoFlags flags); +extern gchar *hacks_unix_mount_get_fs_type (const gchar *file); +extern void hacks_status_icon_set_tooltip_text (GtkStatusIcon *icon, const gchar *text); +extern GdkWindow *hacks_widget_get_window (GtkWidget *widget); +extern GMountOperation *hacks_mount_operation_new (GtkWindow *parent); +extern gdouble hacks_adjustment_get_page_size (GtkAdjustment *adjust); +extern gdouble hacks_adjustment_get_upper (GtkAdjustment *adjust); +extern GtkWidget *hacks_dialog_get_action_area (GtkDialog *dialog); + #endif diff -Nru deja-dup-7.4/libdeja-dup/libdeja-dup.c deja-dup-10.0/libdeja-dup/libdeja-dup.c --- deja-dup-7.4/libdeja-dup/libdeja-dup.c 2009-02-10 21:54:22.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/libdeja-dup.c 2009-06-05 09:40:49.000000000 -0400 @@ -1,43 +1,81 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <libdeja-dup.h> -#include <dbus/dbus-glib-lowlevel.h> -#include <dbus/dbus-glib.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> #include <gconf/gconf-client.h> -#include <gdk/gdk.h> +#include <gio/gio.h> +#include <hacks.h> +#include <gtk/gtk.h> #include <glib/gi18n-lib.h> #include <config.h> +#include <dbus/dbus-glib-lowlevel.h> +#include <dbus/dbus-glib.h> +#include <gconf/gconf.h> +#define DEJA_DUP_INCLUDE_LIST_KEY "/apps/deja-dup/include-list" +#define DEJA_DUP_EXCLUDE_LIST_KEY "/apps/deja-dup/exclude-list" +#define DEJA_DUP_BACKEND_KEY "/apps/deja-dup/backend" +#define DEJA_DUP_ENCRYPT_KEY "/apps/deja-dup/encrypt" +#define DEJA_DUP_LAST_RUN_KEY "/apps/deja-dup/last-run" +#define DEJA_DUP_PERIODIC_KEY "/apps/deja-dup/periodic" +#define DEJA_DUP_PERIODIC_PERIOD_KEY "/apps/deja-dup/periodic-period" +GConfClient* deja_dup_get_gconf_client (void); +void deja_dup_update_last_run_timestamp (GError** error); +char* deja_dup_get_trash_path (void); +GFile* deja_dup_parse_dir (const char* dir); +GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1); +void deja_dup_show_uri (GtkWindow* parent, const char* link); +void deja_dup_handle_about_uri (GtkAboutDialog* about, const char* link); +void deja_dup_handle_about_mail (GtkAboutDialog* about, const char* link); static void _deja_dup_handle_about_mail_gtk_about_dialog_activate_link_func (GtkAboutDialog* about, const char* link_, gpointer self); static void _deja_dup_handle_about_uri_gtk_about_dialog_activate_link_func (GtkAboutDialog* about, const char* link_, gpointer self); -static void __lambda0 (GtkAboutDialog* dlg, gint resp); -static void ___lambda0_gtk_dialog_response (GtkAboutDialog* _sender, gint response_id, gpointer self); +static void _lambda19_ (GtkDialog* dlg, gint resp); +static void __lambda19__gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self); +void deja_dup_show_about (GObject* owner, GtkWindow* parent); +GtkWindow* deja_dup_get_topwindow (GtkWidget* w); guint32 _dynamic_request_name2 (DBusGProxy* self, char* param1, guint32 param2, GError** error); -void _dynamic_release_name3 (DBusGProxy* self, char* param1, GError** error); +guint32 _dynamic_release_name3 (DBusGProxy* self, char* param1, GError** error); +gboolean deja_dup_set_bus_claimed (const char* busname, gboolean claim); +extern GConfClient* deja_dup_client; +GConfClient* deja_dup_client = NULL; +void deja_dup_set_gconf_client (void); +#define DEJA_DUP_SSH_USERNAME_KEY "/apps/deja-dup/ssh/username" +#define DEJA_DUP_SSH_SERVER_KEY "/apps/deja-dup/ssh/server" +#define DEJA_DUP_SSH_PORT_KEY "/apps/deja-dup/ssh/port" +#define DEJA_DUP_SSH_DIRECTORY_KEY "/apps/deja-dup/ssh/directory" +#define DEJA_DUP_FILE_PATH_KEY "/apps/deja-dup/file/path" +void deja_dup_convert_ssh_to_file (void); +void deja_dup_initialize (void); +char* deja_dup_get_file_desc (GFile* file); +char* deja_dup_get_location_desc (void); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static int _vala_strcmp0 (const char * str1, const char * str2); +static const char* DEJA_DUP_authors[] = {"Michael Terry <mike@mterry.name>", NULL}; +static const char* DEJA_DUP_artists[] = {"Andreas Nilsson <nisses.mail@home.se>", "Jakub Steiner <jimmac@novell.com>", "Michael Terry <mike@mterry.name>", NULL}; +static const char* DEJA_DUP_documenters[] = {"Michael Terry <mike@mterry.name>", NULL}; void deja_dup_update_last_run_timestamp (GError** error) { - GError * inner_error; - GTimeVal _tmp0 = {0}; + GError * _inner_error_; + GTimeVal _tmp0_ = {0}; GTimeVal cur_time; char* cur_time_str; - GConfClient* _tmp1; GConfClient* client; - inner_error = NULL; - cur_time = (g_get_current_time (&_tmp0), _tmp0); + _inner_error_ = NULL; + cur_time = (g_get_current_time (&_tmp0_), _tmp0_); g_get_current_time (&cur_time); cur_time_str = g_time_val_to_iso8601 (&cur_time); - _tmp1 = NULL; - client = (_tmp1 = gconf_client_get_default (), (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); - gconf_client_set_string (client, DEJA_DUP_LAST_RUN_KEY, cur_time_str, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + client = deja_dup_get_gconf_client (); + gconf_client_set_string (client, DEJA_DUP_LAST_RUN_KEY, cur_time_str, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); cur_time_str = (g_free (cur_time_str), NULL); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return; @@ -53,84 +91,84 @@ GFile* deja_dup_parse_dir (const char* dir) { - const char* _tmp0; + const char* _tmp0_; char* s; - GFile* _tmp21; + GFile* _tmp21_; g_return_val_if_fail (dir != NULL, NULL); - _tmp0 = NULL; - s = (_tmp0 = dir, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + s = (_tmp0_ = dir, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); if (_vala_strcmp0 (s, "$HOME") == 0) { - char* _tmp2; - const char* _tmp1; - _tmp2 = NULL; - _tmp1 = NULL; - s = (_tmp2 = (_tmp1 = g_get_home_dir (), (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), s = (g_free (s), NULL), _tmp2); + char* _tmp2_; + const char* _tmp1_; + _tmp2_ = NULL; + _tmp1_ = NULL; + s = (_tmp2_ = (_tmp1_ = g_get_home_dir (), (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), s = (g_free (s), NULL), _tmp2_); } else { if (_vala_strcmp0 (s, "$DESKTOP") == 0) { - char* _tmp4; - const char* _tmp3; - _tmp4 = NULL; - _tmp3 = NULL; - s = (_tmp4 = (_tmp3 = g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP), (_tmp3 == NULL) ? NULL : g_strdup (_tmp3)), s = (g_free (s), NULL), _tmp4); + char* _tmp4_; + const char* _tmp3_; + _tmp4_ = NULL; + _tmp3_ = NULL; + s = (_tmp4_ = (_tmp3_ = g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP), (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)), s = (g_free (s), NULL), _tmp4_); } else { if (_vala_strcmp0 (s, "$DOCUMENTS") == 0) { - char* _tmp6; - const char* _tmp5; - _tmp6 = NULL; - _tmp5 = NULL; - s = (_tmp6 = (_tmp5 = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS), (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), s = (g_free (s), NULL), _tmp6); + char* _tmp6_; + const char* _tmp5_; + _tmp6_ = NULL; + _tmp5_ = NULL; + s = (_tmp6_ = (_tmp5_ = g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS), (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)), s = (g_free (s), NULL), _tmp6_); } else { if (_vala_strcmp0 (s, "$DOWNLOAD") == 0) { - char* _tmp8; - const char* _tmp7; - _tmp8 = NULL; - _tmp7 = NULL; - s = (_tmp8 = (_tmp7 = g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD), (_tmp7 == NULL) ? NULL : g_strdup (_tmp7)), s = (g_free (s), NULL), _tmp8); + char* _tmp8_; + const char* _tmp7_; + _tmp8_ = NULL; + _tmp7_ = NULL; + s = (_tmp8_ = (_tmp7_ = g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD), (_tmp7_ == NULL) ? NULL : g_strdup (_tmp7_)), s = (g_free (s), NULL), _tmp8_); } else { if (_vala_strcmp0 (s, "$MUSIC") == 0) { - char* _tmp10; - const char* _tmp9; - _tmp10 = NULL; - _tmp9 = NULL; - s = (_tmp10 = (_tmp9 = g_get_user_special_dir (G_USER_DIRECTORY_MUSIC), (_tmp9 == NULL) ? NULL : g_strdup (_tmp9)), s = (g_free (s), NULL), _tmp10); + char* _tmp10_; + const char* _tmp9_; + _tmp10_ = NULL; + _tmp9_ = NULL; + s = (_tmp10_ = (_tmp9_ = g_get_user_special_dir (G_USER_DIRECTORY_MUSIC), (_tmp9_ == NULL) ? NULL : g_strdup (_tmp9_)), s = (g_free (s), NULL), _tmp10_); } else { if (_vala_strcmp0 (s, "$PICTURES") == 0) { - char* _tmp12; - const char* _tmp11; - _tmp12 = NULL; - _tmp11 = NULL; - s = (_tmp12 = (_tmp11 = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES), (_tmp11 == NULL) ? NULL : g_strdup (_tmp11)), s = (g_free (s), NULL), _tmp12); + char* _tmp12_; + const char* _tmp11_; + _tmp12_ = NULL; + _tmp11_ = NULL; + s = (_tmp12_ = (_tmp11_ = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES), (_tmp11_ == NULL) ? NULL : g_strdup (_tmp11_)), s = (g_free (s), NULL), _tmp12_); } else { if (_vala_strcmp0 (s, "$PUBLIC_SHARE") == 0) { - char* _tmp14; - const char* _tmp13; - _tmp14 = NULL; - _tmp13 = NULL; - s = (_tmp14 = (_tmp13 = g_get_user_special_dir (G_USER_DIRECTORY_PUBLIC_SHARE), (_tmp13 == NULL) ? NULL : g_strdup (_tmp13)), s = (g_free (s), NULL), _tmp14); + char* _tmp14_; + const char* _tmp13_; + _tmp14_ = NULL; + _tmp13_ = NULL; + s = (_tmp14_ = (_tmp13_ = g_get_user_special_dir (G_USER_DIRECTORY_PUBLIC_SHARE), (_tmp13_ == NULL) ? NULL : g_strdup (_tmp13_)), s = (g_free (s), NULL), _tmp14_); } else { if (_vala_strcmp0 (s, "$TEMPLATES") == 0) { - char* _tmp16; - const char* _tmp15; - _tmp16 = NULL; - _tmp15 = NULL; - s = (_tmp16 = (_tmp15 = g_get_user_special_dir (G_USER_DIRECTORY_TEMPLATES), (_tmp15 == NULL) ? NULL : g_strdup (_tmp15)), s = (g_free (s), NULL), _tmp16); + char* _tmp16_; + const char* _tmp15_; + _tmp16_ = NULL; + _tmp15_ = NULL; + s = (_tmp16_ = (_tmp15_ = g_get_user_special_dir (G_USER_DIRECTORY_TEMPLATES), (_tmp15_ == NULL) ? NULL : g_strdup (_tmp15_)), s = (g_free (s), NULL), _tmp16_); } else { if (_vala_strcmp0 (s, "$TRASH") == 0) { - char* _tmp17; - _tmp17 = NULL; - s = (_tmp17 = deja_dup_get_trash_path (), s = (g_free (s), NULL), _tmp17); + char* _tmp17_; + _tmp17_ = NULL; + s = (_tmp17_ = deja_dup_get_trash_path (), s = (g_free (s), NULL), _tmp17_); } else { if (_vala_strcmp0 (s, "$VIDEOS") == 0) { - char* _tmp19; - const char* _tmp18; - _tmp19 = NULL; - _tmp18 = NULL; - s = (_tmp19 = (_tmp18 = g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS), (_tmp18 == NULL) ? NULL : g_strdup (_tmp18)), s = (g_free (s), NULL), _tmp19); + char* _tmp19_; + const char* _tmp18_; + _tmp19_ = NULL; + _tmp18_ = NULL; + s = (_tmp19_ = (_tmp18_ = g_get_user_special_dir (G_USER_DIRECTORY_VIDEOS), (_tmp18_ == NULL) ? NULL : g_strdup (_tmp18_)), s = (g_free (s), NULL), _tmp19_); } else { if (!g_path_is_absolute (s)) { - char* _tmp20; - _tmp20 = NULL; - s = (_tmp20 = g_build_filename (g_get_home_dir (), s, NULL), s = (g_free (s), NULL), _tmp20); + char* _tmp20_; + _tmp20_ = NULL; + s = (_tmp20_ = g_build_filename (g_get_home_dir (), s, NULL), s = (g_free (s), NULL), _tmp20_); } } } @@ -142,69 +180,69 @@ } } } - _tmp21 = NULL; - return (_tmp21 = g_file_new_for_path (s), s = (g_free (s), NULL), _tmp21); + _tmp21_ = NULL; + return (_tmp21_ = g_file_new_for_path (s), s = (g_free (s), NULL), _tmp21_); } GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1) { - GFile** _tmp3; + GFile** _tmp3_; gint rv_size; gint rv_length1; - gint _tmp2; + gint _tmp2_; GFile** rv; gint i; - GFile** _tmp7; + GFile** _tmp7_; if (dirs == NULL) { - GFile** _tmp0; - _tmp0 = NULL; - return (_tmp0 = g_new0 (GFile*, 0 + 1), *result_length1 = 0, _tmp0); + GFile** _tmp0_; + _tmp0_ = NULL; + return (_tmp0_ = g_new0 (GFile*, 0 + 1), *result_length1 = 0, _tmp0_); } - _tmp3 = NULL; - rv = (_tmp3 = g_new0 (GFile*, (_tmp2 = g_slist_length (dirs)) + 1), rv_length1 = _tmp2, rv_size = rv_length1, _tmp3); + _tmp3_ = NULL; + rv = (_tmp3_ = g_new0 (GFile*, (_tmp2_ = g_slist_length (dirs)) + 1), rv_length1 = _tmp2_, rv_size = rv_length1, _tmp3_); i = 0; { GSList* s_collection; GSList* s_it; s_collection = dirs; for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp6; + const char* _tmp6_; char* s; - _tmp6 = NULL; - s = (_tmp6 = (const char*) s_it->data, (_tmp6 == NULL) ? NULL : g_strdup (_tmp6)); + _tmp6_ = NULL; + s = (_tmp6_ = (const char*) s_it->data, (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_)); { - gint _tmp5; - GFile* _tmp4; - _tmp4 = NULL; - _tmp5 = i++; - rv[_tmp5] = (_tmp4 = deja_dup_parse_dir (s), (rv[_tmp5] == NULL) ? NULL : (rv[_tmp5] = (g_object_unref (rv[_tmp5]), NULL)), _tmp4); + GFile* _tmp5_; + GFile* *_tmp4_; + _tmp5_ = NULL; + _tmp4_ = &rv[i++]; + (*_tmp4_) = (_tmp5_ = deja_dup_parse_dir (s), ((*_tmp4_) == NULL) ? NULL : ((*_tmp4_) = (g_object_unref ((*_tmp4_)), NULL)), _tmp5_); s = (g_free (s), NULL); } } } - _tmp7 = NULL; - return (_tmp7 = rv, *result_length1 = rv_length1, _tmp7); + _tmp7_ = NULL; + return (_tmp7_ = rv, *result_length1 = rv_length1, _tmp7_); } void deja_dup_show_uri (GtkWindow* parent, const char* link) { - GError * inner_error; + GError * _inner_error_; g_return_if_fail (parent != NULL); g_return_if_fail (link != NULL); - inner_error = NULL; + _inner_error_ = NULL; { - gtk_show_uri (NULL, link, (guint32) GDK_CURRENT_TIME, &inner_error); - if (inner_error != NULL) { - goto __catch26_g_error; - goto __finally26; + hacks_show_uri (link, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch60_g_error; + goto __finally60; } } - goto __finally26; - __catch26_g_error: + goto __finally60; + __catch60_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { GtkMessageDialog* dlg; dlg = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (parent, GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("Could not display %s"), link, NULL)); @@ -215,10 +253,10 @@ (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); } } - __finally26: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally60: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -232,12 +270,12 @@ void deja_dup_handle_about_mail (GtkAboutDialog* about, const char* link) { - char* _tmp0; + char* _tmp0_; g_return_if_fail (about != NULL); g_return_if_fail (link != NULL); - _tmp0 = NULL; - deja_dup_show_uri ((GtkWindow*) about, _tmp0 = g_strdup_printf ("mailto:%s", link)); - _tmp0 = (g_free (_tmp0), NULL); + _tmp0_ = NULL; + deja_dup_show_uri ((GtkWindow*) about, _tmp0_ = g_strdup_printf ("mailto:%s", link)); + _tmp0_ = (g_free (_tmp0_), NULL); } @@ -251,60 +289,81 @@ } -static void __lambda0 (GtkAboutDialog* dlg, gint resp) { - GObject* _tmp0; +static void _lambda19_ (GtkDialog* dlg, gint resp) { + GObject* _tmp0_; GObject* about_owner; g_return_if_fail (dlg != NULL); - _tmp0 = NULL; - about_owner = (_tmp0 = G_OBJECT (g_object_get_data ((GObject*) dlg, "owner")), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); + _tmp0_ = NULL; + about_owner = (_tmp0_ = G_OBJECT (g_object_get_data ((GObject*) dlg, "owner")), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); g_object_set_data (about_owner, "about-dlg", NULL); gtk_object_destroy ((GtkObject*) dlg); (about_owner == NULL) ? NULL : (about_owner = (g_object_unref (about_owner), NULL)); } -static void ___lambda0_gtk_dialog_response (GtkAboutDialog* _sender, gint response_id, gpointer self) { - __lambda0 (_sender, response_id); +static void __lambda19__gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) { + _lambda19_ (_sender, response_id); } void deja_dup_show_about (GObject* owner, GtkWindow* parent) { - GtkAboutDialog* _tmp0; + GtkAboutDialog* _tmp0_; GtkAboutDialog* about; - GtkAboutDialog* _tmp1; - char* _tmp2; + GtkAboutDialog* _tmp1_; + char* _tmp2_; g_return_if_fail (owner != NULL); - _tmp0 = NULL; - about = (_tmp0 = GTK_ABOUT_DIALOG (g_object_get_data (owner, "about-dlg")), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); + _tmp0_ = NULL; + about = (_tmp0_ = GTK_ABOUT_DIALOG (g_object_get_data (owner, "about-dlg")), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); if (about != NULL) { gtk_window_present ((GtkWindow*) about); (about == NULL) ? NULL : (about = (g_object_unref (about), NULL)); return; } - _tmp1 = NULL; - about = (_tmp1 = g_object_ref_sink ((GtkAboutDialog*) gtk_about_dialog_new ()), (about == NULL) ? NULL : (about = (g_object_unref (about), NULL)), _tmp1); + _tmp1_ = NULL; + about = (_tmp1_ = g_object_ref_sink ((GtkAboutDialog*) gtk_about_dialog_new ()), (about == NULL) ? NULL : (about = (g_object_unref (about), NULL)), _tmp1_); gtk_about_dialog_set_email_hook (_deja_dup_handle_about_mail_gtk_about_dialog_activate_link_func, NULL, NULL); gtk_about_dialog_set_url_hook (_deja_dup_handle_about_uri_gtk_about_dialog_activate_link_func, NULL, NULL); gtk_window_set_title ((GtkWindow*) about, _ ("About Déjà Dup")); gtk_about_dialog_set_authors (about, DEJA_DUP_authors); + gtk_about_dialog_set_artists (about, DEJA_DUP_artists); + gtk_about_dialog_set_documenters (about, DEJA_DUP_documenters); gtk_about_dialog_set_translator_credits (about, _ ("translator-credits")); gtk_about_dialog_set_logo_icon_name (about, PACKAGE); gtk_about_dialog_set_version (about, VERSION); - gtk_about_dialog_set_copyright (about, "© 2008—2009 Michael Terry"); - gtk_about_dialog_set_website (about, "http://mterry.name/deja-dup/"); - _tmp2 = NULL; - gtk_about_dialog_set_license (about, _tmp2 = g_strdup_printf ("%s\n\n%s\n\n%s", _ ("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 3 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 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."))); - _tmp2 = (g_free (_tmp2), NULL); + gtk_about_dialog_set_website (about, "https://launchpad.net/deja-dup"); + _tmp2_ = NULL; + gtk_about_dialog_set_license (about, _tmp2_ = g_strdup_printf ("%s\n\n%s\n\n%s", _ ("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 3 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 General Public License for more details."), _ ("You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/."))); + _tmp2_ = (g_free (_tmp2_), NULL); gtk_about_dialog_set_wrap_license (about, TRUE); g_object_set_data (owner, "about-dlg", about); g_object_set_data ((GObject*) about, "owner", owner); gtk_window_set_transient_for ((GtkWindow*) about, parent); - g_signal_connect ((GtkDialog*) about, "response", (GCallback) ___lambda0_gtk_dialog_response, NULL); + g_signal_connect ((GtkDialog*) about, "response", (GCallback) __lambda19__gtk_dialog_response, NULL); gtk_widget_show ((GtkWidget*) about); (about == NULL) ? NULL : (about = (g_object_unref (about), NULL)); } +GtkWindow* deja_dup_get_topwindow (GtkWidget* w) { + gboolean _tmp0_; + g_return_val_if_fail (w != NULL, NULL); + w = gtk_widget_get_toplevel (w); + _tmp0_ = FALSE; + if (w != NULL) { + _tmp0_ = GTK_WIDGET_TOPLEVEL (w); + } else { + _tmp0_ = FALSE; + } + if (_tmp0_) { + GtkWindow* _tmp1_; + _tmp1_ = NULL; + return (_tmp1_ = GTK_WINDOW (w), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); + } else { + return NULL; + } +} + + guint32 _dynamic_request_name2 (DBusGProxy* self, char* param1, guint32 param2, GError** error) { guint32 result; dbus_g_proxy_call (self, "RequestName", error, G_TYPE_STRING, param1, G_TYPE_UINT, param2, G_TYPE_INVALID, G_TYPE_UINT, &result, G_TYPE_INVALID); @@ -315,83 +374,452 @@ } -void _dynamic_release_name3 (DBusGProxy* self, char* param1, GError** error) { - dbus_g_proxy_call_no_reply (self, "ReleaseName", G_TYPE_STRING, param1, G_TYPE_INVALID); +guint32 _dynamic_release_name3 (DBusGProxy* self, char* param1, GError** error) { + guint32 result; + dbus_g_proxy_call (self, "ReleaseName", error, G_TYPE_STRING, param1, G_TYPE_INVALID, G_TYPE_UINT, &result, G_TYPE_INVALID); if (*error) { - return; + return 0U; } + return result; } gboolean deja_dup_set_bus_claimed (const char* busname, gboolean claim) { - GError * inner_error; + GError * _inner_error_; g_return_val_if_fail (busname != NULL, FALSE); - inner_error = NULL; + _inner_error_ = NULL; { DBusGConnection* conn; DBusGProxy* bus; - conn = dbus_g_bus_get (DBUS_BUS_SESSION, &inner_error); - if (inner_error != NULL) { - goto __catch27_g_error; - goto __finally27; + conn = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch61_g_error; + goto __finally61; } bus = dbus_g_proxy_new_for_name (conn, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus"); if (claim) { - char* _tmp0; - guint32 _tmp1; - guint32 result; + char* _tmp0_; + guint32 _tmp1_; + guint32 _result_; /* Try to register service in session bus. The flag '4' means do not add ourselves to the queue of applications wanting the name, if this request fails.*/ - _tmp0 = NULL; - result = (_tmp1 = _dynamic_request_name2 (bus, _tmp0 = g_strconcat ("net.launchpad.deja-dup.", busname, NULL), (guint32) 4, &inner_error), _tmp0 = (g_free (_tmp0), NULL), _tmp1); - if (inner_error != NULL) { + _tmp0_ = NULL; + _result_ = (_tmp1_ = _dynamic_request_name2 (bus, _tmp0_ = g_strconcat ("net.launchpad.deja-dup.", busname, NULL), (guint32) 4, &_inner_error_), _tmp0_ = (g_free (_tmp0_), NULL), _tmp1_); + if (_inner_error_ != NULL) { (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)); (bus == NULL) ? NULL : (bus = (g_object_unref (bus), NULL)); - goto __catch27_g_error; - goto __finally27; + goto __catch61_g_error; + goto __finally61; } - if (result == DBUS_REQUEST_NAME_REPLY_EXISTS) { - gboolean _tmp2; - return (_tmp2 = FALSE, (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)), (bus == NULL) ? NULL : (bus = (g_object_unref (bus), NULL)), _tmp2); + if (_result_ == DBUS_REQUEST_NAME_REPLY_EXISTS) { + gboolean _tmp2_; + return (_tmp2_ = FALSE, (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)), (bus == NULL) ? NULL : (bus = (g_object_unref (bus), NULL)), _tmp2_); } } else { - char* _tmp3; - _tmp3 = NULL; - _dynamic_release_name3 (bus, _tmp3 = g_strconcat ("net.launchpad.deja-dup.", busname, NULL), &inner_error); - if (inner_error != NULL) { + char* _tmp3_; + guint32 _tmp4_; + guint32 _result_; + /* We have to assign reply to a variable because it is a dynamic binding + and otherwise, generated code will expect no return value.*/ + _tmp3_ = NULL; + _result_ = (_tmp4_ = _dynamic_release_name3 (bus, _tmp3_ = g_strconcat ("net.launchpad.deja-dup.", busname, NULL), &_inner_error_), _tmp3_ = (g_free (_tmp3_), NULL), _tmp4_); + if (_inner_error_ != NULL) { (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)); (bus == NULL) ? NULL : (bus = (g_object_unref (bus), NULL)); - goto __catch27_g_error; - goto __finally27; + goto __catch61_g_error; + goto __finally61; } - _tmp3 = (g_free (_tmp3), NULL); + _result_ = _result_; } (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)); (bus == NULL) ? NULL : (bus = (g_object_unref (bus), NULL)); } - goto __finally27; - __catch27_g_error: + goto __finally61; + __catch61_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("libdeja-dup.vala:179: %s\n", e->message); + /* to silence warning about not using it.*/ + g_warning ("libdeja-dup.vala:201: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally27: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally61: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } return TRUE; } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +void deja_dup_set_gconf_client (void) { + GError * _inner_error_; + const char* _tmp0_; + char* source_str; + _inner_error_ = NULL; + _tmp0_ = NULL; + source_str = (_tmp0_ = g_getenv ("GCONF_CONFIG_SOURCE"), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (source_str != NULL) { + { + GConfEngine* _tmp1_; + GConfEngine* engine; + GConfClient* _tmp3_; + GConfClient* _tmp2_; + _tmp1_ = NULL; + engine = (_tmp1_ = gconf_engine_get_for_address (source_str, &_inner_error_), (_tmp1_ == NULL) ? NULL : gconf_engine_ref (_tmp1_), _tmp1_); + if (_inner_error_ != NULL) { + goto __catch62_g_error; + goto __finally62; + } + _tmp3_ = NULL; + _tmp2_ = NULL; + deja_dup_client = (_tmp3_ = (_tmp2_ = gconf_client_get_for_engine (engine), (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)), (deja_dup_client == NULL) ? NULL : (deja_dup_client = (g_object_unref (deja_dup_client), NULL)), _tmp3_); + (engine == NULL) ? NULL : (engine = (gconf_engine_unref (engine), NULL)); + } + goto __finally62; + __catch62_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_printerr ("%s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally62: + if (_inner_error_ != NULL) { + source_str = (g_free (source_str), NULL); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + } + source_str = (g_free (source_str), NULL); +} + + +GConfClient* deja_dup_get_gconf_client (void) { + GConfClient* _tmp2_; + if (deja_dup_client == NULL) { + GConfClient* _tmp1_; + GConfClient* _tmp0_; + _tmp1_ = NULL; + _tmp0_ = NULL; + deja_dup_client = (_tmp1_ = (_tmp0_ = gconf_client_get_default (), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)), (deja_dup_client == NULL) ? NULL : (deja_dup_client = (g_object_unref (deja_dup_client), NULL)), _tmp1_); + } + _tmp2_ = NULL; + return (_tmp2_ = deja_dup_client, (_tmp2_ == NULL) ? NULL : g_object_ref (_tmp2_)); +} + + +/* Once, we didn't use GIO, but had a special SSH backend for duplicity that + would tell duplicity to use its own SSH handling. We convert those gconf + values to the new ones here.*/ +void deja_dup_convert_ssh_to_file (void) { + GError * _inner_error_; + GConfClient* client; + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + { + const char* _tmp0_; + char* backend; + _tmp0_ = NULL; + backend = (_tmp0_ = gconf_client_get_string (client, DEJA_DUP_BACKEND_KEY, &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + goto __catch63_g_error; + goto __finally63; + } + if (_vala_strcmp0 (backend, "ssh") == 0) { + const char* _tmp1_; + char* server; + gboolean _tmp2_; + gconf_client_set_string (client, DEJA_DUP_BACKEND_KEY, "file", &_inner_error_); + if (_inner_error_ != NULL) { + backend = (g_free (backend), NULL); + goto __catch63_g_error; + goto __finally63; + } + _tmp1_ = NULL; + server = (_tmp1_ = gconf_client_get_string (client, DEJA_DUP_SSH_SERVER_KEY, &_inner_error_), (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)); + if (_inner_error_ != NULL) { + backend = (g_free (backend), NULL); + goto __catch63_g_error; + goto __finally63; + } + _tmp2_ = FALSE; + if (server != NULL) { + _tmp2_ = _vala_strcmp0 (server, "") != 0; + } else { + _tmp2_ = FALSE; + } + if (_tmp2_) { + const char* _tmp3_; + char* username; + gint port; + const char* _tmp4_; + char* directory; + char* gio_uri; + gboolean _tmp5_; + char* _tmp8_; + gboolean _tmp12_; + _tmp3_ = NULL; + username = (_tmp3_ = gconf_client_get_string (client, DEJA_DUP_SSH_USERNAME_KEY, &_inner_error_), (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)); + if (_inner_error_ != NULL) { + server = (g_free (server), NULL); + backend = (g_free (backend), NULL); + goto __catch63_g_error; + goto __finally63; + } + port = gconf_client_get_int (client, DEJA_DUP_SSH_PORT_KEY, &_inner_error_); + if (_inner_error_ != NULL) { + username = (g_free (username), NULL); + server = (g_free (server), NULL); + backend = (g_free (backend), NULL); + goto __catch63_g_error; + goto __finally63; + } + _tmp4_ = NULL; + directory = (_tmp4_ = gconf_client_get_string (client, DEJA_DUP_SSH_DIRECTORY_KEY, &_inner_error_), (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)); + if (_inner_error_ != NULL) { + username = (g_free (username), NULL); + server = (g_free (server), NULL); + backend = (g_free (backend), NULL); + goto __catch63_g_error; + goto __finally63; + } + gio_uri = g_strdup ("ssh://"); + _tmp5_ = FALSE; + if (username != NULL) { + _tmp5_ = _vala_strcmp0 (username, "") != 0; + } else { + _tmp5_ = FALSE; + } + if (_tmp5_) { + char* _tmp7_; + char* _tmp6_; + _tmp7_ = NULL; + _tmp6_ = NULL; + gio_uri = (_tmp7_ = g_strconcat (gio_uri, _tmp6_ = g_strconcat (username, "@", NULL), NULL), gio_uri = (g_free (gio_uri), NULL), _tmp7_); + _tmp6_ = (g_free (_tmp6_), NULL); + } + _tmp8_ = NULL; + gio_uri = (_tmp8_ = g_strconcat (gio_uri, server, NULL), gio_uri = (g_free (gio_uri), NULL), _tmp8_); + if (port > 0) { + char* _tmp11_; + char* _tmp10_; + char* _tmp9_; + _tmp11_ = NULL; + _tmp10_ = NULL; + _tmp9_ = NULL; + gio_uri = (_tmp11_ = g_strconcat (gio_uri, _tmp10_ = g_strconcat (":", _tmp9_ = g_strdup_printf ("%i", port), NULL), NULL), gio_uri = (g_free (gio_uri), NULL), _tmp11_); + _tmp10_ = (g_free (_tmp10_), NULL); + _tmp9_ = (g_free (_tmp9_), NULL); + } + _tmp12_ = FALSE; + if (directory == NULL) { + _tmp12_ = TRUE; + } else { + _tmp12_ = _vala_strcmp0 (directory, "") == 0; + } + if (_tmp12_) { + char* _tmp13_; + _tmp13_ = NULL; + gio_uri = (_tmp13_ = g_strconcat (gio_uri, "/", NULL), gio_uri = (g_free (gio_uri), NULL), _tmp13_); + } else { + if (g_utf8_get_char (g_utf8_offset_to_pointer (directory, 0)) != '/') { + char* _tmp15_; + char* _tmp14_; + _tmp15_ = NULL; + _tmp14_ = NULL; + gio_uri = (_tmp15_ = g_strconcat (gio_uri, _tmp14_ = g_strconcat ("/", directory, NULL), NULL), gio_uri = (g_free (gio_uri), NULL), _tmp15_); + _tmp14_ = (g_free (_tmp14_), NULL); + } else { + char* _tmp16_; + _tmp16_ = NULL; + gio_uri = (_tmp16_ = g_strconcat (gio_uri, directory, NULL), gio_uri = (g_free (gio_uri), NULL), _tmp16_); + } + } + gconf_client_set_string (client, DEJA_DUP_FILE_PATH_KEY, gio_uri, &_inner_error_); + if (_inner_error_ != NULL) { + username = (g_free (username), NULL); + directory = (g_free (directory), NULL); + gio_uri = (g_free (gio_uri), NULL); + server = (g_free (server), NULL); + backend = (g_free (backend), NULL); + goto __catch63_g_error; + goto __finally63; + } + username = (g_free (username), NULL); + directory = (g_free (directory), NULL); + gio_uri = (g_free (gio_uri), NULL); + } + server = (g_free (server), NULL); + } + backend = (g_free (backend), NULL); + } + goto __finally63; + __catch63_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("libdeja-dup.vala:268: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally63: + if (_inner_error_ != NULL) { + (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } + (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); +} + + +void deja_dup_initialize (void) { + deja_dup_set_gconf_client (); + deja_dup_convert_ssh_to_file (); +} + + +char* deja_dup_get_file_desc (GFile* file) { + GError * _inner_error_; + char* _tmp4_; + char* _tmp5_; + g_return_val_if_fail (file != NULL, NULL); + _inner_error_ = NULL; + { + GFileInfo* info; + info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "," G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION, G_FILE_QUERY_INFO_NONE, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch64_g_error; + goto __finally64; + } + if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION)) { + const char* _tmp0_; + char* _tmp1_; + _tmp0_ = NULL; + _tmp1_ = NULL; + return (_tmp1_ = (_tmp0_ = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), (info == NULL) ? NULL : (info = (g_object_unref (info), NULL)), _tmp1_); + } else { + if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME)) { + const char* _tmp2_; + char* _tmp3_; + _tmp2_ = NULL; + _tmp3_ = NULL; + return (_tmp3_ = (_tmp2_ = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME), (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)), (info == NULL) ? NULL : (info = (g_object_unref (info), NULL)), _tmp3_); + } + } + (info == NULL) ? NULL : (info = (g_object_unref (info), NULL)); + } + goto __finally64; + __catch64_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("libdeja-dup.vala:290: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally64: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return NULL; + } + _tmp4_ = NULL; + _tmp5_ = NULL; + return (_tmp5_ = g_path_get_basename (_tmp4_ = g_file_get_parse_name (file)), _tmp4_ = (g_free (_tmp4_), NULL), _tmp5_); +} + + +char* deja_dup_get_location_desc (void) { + GError * _inner_error_; + GFile* file; + _inner_error_ = NULL; + file = NULL; + { + const char* _tmp0_; + char* val; + char* _tmp9_; + _tmp0_ = NULL; + val = (_tmp0_ = gconf_client_get_string (deja_dup_client, DEJA_DUP_BACKEND_KEY, &_inner_error_), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); + if (_inner_error_ != NULL) { + goto __catch65_g_error; + goto __finally65; + } + if (_vala_strcmp0 (val, "s3") == 0) { + const char* _tmp1_; + char* _tmp2_; + _tmp1_ = NULL; + _tmp2_ = NULL; + return (_tmp2_ = (_tmp1_ = _ ("Amazon S3"), (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), val = (g_free (val), NULL), (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp2_); + } else { + const char* _tmp3_; + char* _tmp5_; + const char* _tmp4_; + GFile* _tmp8_; + GFile* _tmp7_; + _tmp3_ = gconf_client_get_string (deja_dup_client, DEJA_DUP_FILE_PATH_KEY, &_inner_error_); + if (_inner_error_ != NULL) { + val = (g_free (val), NULL); + goto __catch65_g_error; + goto __finally65; + } + _tmp5_ = NULL; + _tmp4_ = NULL; + val = (_tmp5_ = (_tmp4_ = _tmp3_, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)), val = (g_free (val), NULL), _tmp5_); + if (val == NULL) { + char* _tmp6_; + _tmp6_ = NULL; + val = (_tmp6_ = g_strdup (""), val = (g_free (val), NULL), _tmp6_); + } + /* current directory*/ + _tmp8_ = NULL; + _tmp7_ = NULL; + file = (_tmp8_ = (_tmp7_ = g_file_parse_name (val), (_tmp7_ == NULL) ? NULL : g_object_ref (_tmp7_)), (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp8_); + } + _tmp9_ = NULL; + return (_tmp9_ = deja_dup_get_file_desc (file), val = (g_free (val), NULL), (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp9_); + } + goto __finally65; + __catch65_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + const char* _tmp10_; + char* _tmp11_; + g_warning ("libdeja-dup.vala:312: %s\n", e->message); + _tmp10_ = NULL; + _tmp11_ = NULL; + return (_tmp11_ = (_tmp10_ = _ ("Unknown"), (_tmp10_ == NULL) ? NULL : g_strdup (_tmp10_)), (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)), _tmp11_); + } + } + __finally65: + if (_inner_error_ != NULL) { + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return NULL; + } + (file == NULL) ? NULL : (file = (g_object_unref (file), NULL)); +} + + +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -400,6 +828,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/libdeja-dup/libdeja-dup.h deja-dup-10.0/libdeja-dup/libdeja-dup.h --- deja-dup-7.4/libdeja-dup/libdeja-dup.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/libdeja-dup.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,38 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __LIBDEJA_DUP_H__ -#define __LIBDEJA_DUP_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include <gio/gio.h> -#include <gtk/gtk.h> - -G_BEGIN_DECLS - - - -#define DEJA_DUP_INCLUDE_LIST_KEY "/apps/deja-dup/include-list" -#define DEJA_DUP_EXCLUDE_LIST_KEY "/apps/deja-dup/exclude-list" -#define DEJA_DUP_BACKEND_KEY "/apps/deja-dup/backend" -#define DEJA_DUP_ENCRYPT_KEY "/apps/deja-dup/encrypt" -#define DEJA_DUP_LAST_RUN_KEY "/apps/deja-dup/last-run" -#define DEJA_DUP_PERIODIC_KEY "/apps/deja-dup/periodic" -#define DEJA_DUP_PERIODIC_PERIOD_KEY "/apps/deja-dup/periodic-period" -void deja_dup_update_last_run_timestamp (GError** error); -char* deja_dup_get_trash_path (void); -GFile* deja_dup_parse_dir (const char* dir); -GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1); -void deja_dup_show_uri (GtkWindow* parent, const char* link); -void deja_dup_handle_about_uri (GtkAboutDialog* about, const char* link); -void deja_dup_handle_about_mail (GtkAboutDialog* about, const char* link); -void deja_dup_show_about (GObject* owner, GtkWindow* parent); -gboolean deja_dup_set_bus_claimed (const char* busname, gboolean claim); - -static const char* DEJA_DUP_authors[] = {"Michael Terry <mike@mterry.name>", NULL}; - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/libdeja-dup.vala deja-dup-10.0/libdeja-dup/libdeja-dup.vala --- deja-dup-7.4/libdeja-dup/libdeja-dup.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/libdeja-dup.vala 2009-06-05 09:40:21.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup Library - © 2008—2009—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -35,7 +35,7 @@ cur_time.get_current_time(); var cur_time_str = cur_time.to_iso8601(); - var client = GConf.Client.get_default(); + var client = get_gconf_client(); client.set_string(DejaDup.LAST_RUN_KEY, cur_time_str); } @@ -90,7 +90,7 @@ public void show_uri(Gtk.Window parent, string link) { try { - Gtk.show_uri (null, link, Gdk.CURRENT_TIME); + hacks_show_uri (link); } catch (Error e) { Gtk.MessageDialog dlg = new Gtk.MessageDialog (parent, Gtk.DialogFlags.DESTROY_WITH_PARENT | Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, _("Could not display %s"), link); dlg.format_secondary_text("%s", e.message); @@ -114,6 +114,14 @@ const string[] authors = {"Michael Terry <mike@mterry.name>", null}; +const string[] artists = {"Andreas Nilsson <nisses.mail@home.se>", + "Jakub Steiner <jimmac@novell.com>", + "Michael Terry <mike@mterry.name>", + null}; + +const string[] documenters = {"Michael Terry <mike@mterry.name>", + null}; + public void show_about(Object owner, Gtk.Window? parent) { Gtk.AboutDialog about = (Gtk.AboutDialog)owner.get_data("about-dlg"); @@ -129,51 +137,65 @@ about.set_url_hook (handle_about_uri); about.title = _("About Déjà Dup"); about.authors = authors; + about.artists = artists; + about.documenters = documenters; about.translator_credits = _("translator-credits"); about.logo_icon_name = Config.PACKAGE; about.version = Config.VERSION; - about.copyright = "© 2008—2009 Michael Terry"; - about.website = "http://mterry.name/deja-dup/"; + about.website = "https://launchpad.net/deja-dup"; about.license = "%s\n\n%s\n\n%s".printf ( _("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 3 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 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.")); + _("You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.")); about.wrap_license = true; owner.set_data("about-dlg", about); about.set_data("owner", owner); about.set_transient_for(parent); - about.response += (dlg, resp) => { + about.response.connect((dlg, resp) => { Object about_owner = (Object)dlg.get_data("owner"); about_owner.set_data("about-dlg", null); dlg.destroy(); - }; + }); about.show(); } +public Gtk.Window? get_topwindow(Gtk.Widget w) +{ + w = w.get_toplevel(); + if (w != null && w.is_toplevel()) + return (Gtk.Window)w; + else + return null; +} + public bool set_bus_claimed(string busname, bool claim) { try { var conn = DBus.Bus.@get(DBus.BusType.SESSION); dynamic DBus.Object bus = conn.get_object ("org.freedesktop.DBus", - "/org/freedesktop/DBus", - "org.freedesktop.DBus"); + "/org/freedesktop/DBus", + "org.freedesktop.DBus"); if (claim) { // Try to register service in session bus. // The flag '4' means do not add ourselves to the queue of applications // wanting the name, if this request fails. uint32 result = bus.request_name("net.launchpad.deja-dup." + busname, - (uint32)4); + (uint32)4); if (result == DBus.RequestNameReply.EXISTS) return false; } - else - bus.release_name("net.launchpad.deja-dup." + busname); + else { + // We have to assign reply to a variable because it is a dynamic binding + // and otherwise, generated code will expect no return value. + uint32 result = bus.release_name("net.launchpad.deja-dup." + busname); + result = result; // to silence warning about not using it. + } } catch (Error e) { warning("%s\n", e.message); @@ -182,5 +204,115 @@ return true; } +GConf.Client client; +void set_gconf_client() +{ + var source_str = Environment.get_variable("GCONF_CONFIG_SOURCE"); + if (source_str != null) { + try { + var engine = GConf.Engine.get_for_address(source_str); + client = GConf.Client.get_for_engine(engine); + } + catch (Error e) { + printerr("%s\n", e.message); + } + } +} + +public GConf.Client get_gconf_client() +{ + if (client == null) + client = GConf.Client.get_default(); + return client; +} + +const string SSH_USERNAME_KEY = "/apps/deja-dup/ssh/username"; +const string SSH_SERVER_KEY = "/apps/deja-dup/ssh/server"; +const string SSH_PORT_KEY = "/apps/deja-dup/ssh/port"; +const string SSH_DIRECTORY_KEY = "/apps/deja-dup/ssh/directory"; + +// Once, we didn't use GIO, but had a special SSH backend for duplicity that +// would tell duplicity to use its own SSH handling. We convert those gconf +// values to the new ones here. +void convert_ssh_to_file() +{ + var client = get_gconf_client(); + try { + var backend = client.get_string(BACKEND_KEY); + if (backend == "ssh") { + client.set_string(BACKEND_KEY, "file"); + var server = client.get_string(SSH_SERVER_KEY); + if (server != null && server != "") { + var username = client.get_string(SSH_USERNAME_KEY); + var port = client.get_int(SSH_PORT_KEY); + var directory = client.get_string(SSH_DIRECTORY_KEY); + + var gio_uri = "ssh://"; + if (username != null && username != "") + gio_uri += username + "@"; + gio_uri += server; + if (port > 0) + gio_uri += ":" + port.to_string(); + if (directory == null || directory == "") + gio_uri += "/"; + else if (directory[0] != '/') + gio_uri += "/" + directory; + else + gio_uri += directory; + + client.set_string(FILE_PATH_KEY, gio_uri); + } + } + } + catch (Error e) { + warning("%s\n", e.message); + } +} + +public void initialize() +{ + set_gconf_client(); + convert_ssh_to_file(); +} + +public string get_file_desc(File file) +{ + // First try to get the DESCRIPTION. Else get the DISPLAY_NAME + try { + var info = file.query_info(FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME + "," + + FILE_ATTRIBUTE_STANDARD_DESCRIPTION, + FileQueryInfoFlags.NONE, null); + if (info.has_attribute(FILE_ATTRIBUTE_STANDARD_DESCRIPTION)) + return info.get_attribute_string(FILE_ATTRIBUTE_STANDARD_DESCRIPTION); + else if (info.has_attribute(FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME)) + return info.get_attribute_string(FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME); + } + catch (Error e) {warning("%s\n", e.message);} + + return Path.get_basename(file.get_parse_name()); +} + +public string get_location_desc() +{ + File file = null; + try { + var val = client.get_string(BACKEND_KEY); + if (val == "s3") + return _("Amazon S3"); + else { + val = client.get_string(FILE_PATH_KEY); + if (val == null) + val = ""; // current directory + file = File.parse_name(val); + } + + return get_file_desc(file); + } + catch (Error e) { + warning("%s\n", e.message); + return _("Unknown"); + } +} + } // end namespace diff -Nru deja-dup-7.4/libdeja-dup/Makefile.am deja-dup-10.0/libdeja-dup/Makefile.am --- deja-dup-7.4/libdeja-dup/Makefile.am 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Makefile.am 2009-06-02 17:48:48.000000000 -0400 @@ -1,4 +1,4 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- noinst_LTLIBRARIES = libdeja-dup.la @@ -14,6 +14,7 @@ --pkg dbus-glib-1 \ --pkg gdk-x11-2.0 \ --pkg unique-1.0 \ + --pkg posix \ --pkg hacks \ --pkg PassphraseSchema \ --pkg unix \ @@ -28,7 +29,19 @@ Backend.vala \ BackendFile.vala \ BackendS3.vala \ - BackendSSH.vala \ + ButtonConnect.vala \ + ConfigBool.vala \ + ConfigChoice.vala \ + ConfigEntry.vala \ + ConfigLabel.vala \ + ConfigLabelBool.vala \ + ConfigLabelList.vala \ + ConfigLabelLocation.vala \ + ConfigList.vala \ + ConfigLocation.vala \ + ConfigNumber.vala \ + ConfigPeriod.vala \ + ConfigWidget.vala \ Duplicity.vala \ DuplicityInfo.vala \ DuplicityInstance.vala \ @@ -39,21 +52,23 @@ RecursiveDelete.vala \ RecursiveMove.vala \ RecursiveOp.vala \ + ToggleGroup.vala \ libdeja-dup.vala BUILT_SOURCES = \ - libdeja-dup.stamp + vala.stamp libdeja_dup_la_SOURCES = \ hacks.c hacks.h \ + mountoperation.c mountoperation.h \ PassphraseSchema.c PassphraseSchema.h \ + deja-dup.h \ $(libdeja_dup_la_VALASOURCES:.vala=.c) \ - $(libdeja_dup_la_VALASOURCES:.vala=.h) \ $(libdeja_dup_la_VALASOURCES) -libdeja-dup.stamp: $(libdeja_dup_la_VALASOURCES) +vala.stamp: $(libdeja_dup_la_VALASOURCES) if USE_VALAC - $(VALAC) -C $(VALA_CFLAGS) $^ + $(VALAC) -C -H deja-dup.h $(VALA_CFLAGS) $^ touch $@ else @echo "ERROR: Valac compilation is disabled, but the C sources are out-of-date." @@ -62,7 +77,7 @@ libdeja_dup_la_LIBADD = $(LIBRARY_LIBS) @INTLLIBS@ -EXTRA_DIST = libdeja-dup.stamp +EXTRA_DIST = vala.stamp DISTCLEANFILES = \ $(BUILT_SOURCES) \ $(libdeja_dup_la_VALASOURCES:.vala=.c) \ diff -Nru deja-dup-7.4/libdeja-dup/Makefile.in deja-dup-10.0/libdeja-dup/Makefile.in --- deja-dup-7.4/libdeja-dup/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -55,14 +55,18 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libdeja_dup_la_DEPENDENCIES = $(am__DEPENDENCIES_1) -am__objects_1 = Backend.lo BackendFile.lo BackendS3.lo BackendSSH.lo \ - Duplicity.lo DuplicityInfo.lo DuplicityInstance.lo \ - Operation.lo OperationBackup.lo OperationRestore.lo \ - OperationStatus.lo RecursiveDelete.lo RecursiveMove.lo \ - RecursiveOp.lo libdeja-dup.lo +am__objects_1 = Backend.lo BackendFile.lo BackendS3.lo \ + ButtonConnect.lo ConfigBool.lo ConfigChoice.lo ConfigEntry.lo \ + ConfigLabel.lo ConfigLabelBool.lo ConfigLabelList.lo \ + ConfigLabelLocation.lo ConfigList.lo ConfigLocation.lo \ + ConfigNumber.lo ConfigPeriod.lo ConfigWidget.lo Duplicity.lo \ + DuplicityInfo.lo DuplicityInstance.lo Operation.lo \ + OperationBackup.lo OperationRestore.lo OperationStatus.lo \ + RecursiveDelete.lo RecursiveMove.lo RecursiveOp.lo \ + ToggleGroup.lo libdeja-dup.lo am__objects_2 = -am_libdeja_dup_la_OBJECTS = hacks.lo PassphraseSchema.lo \ - $(am__objects_1) $(am__objects_2) $(am__objects_2) +am_libdeja_dup_la_OBJECTS = hacks.lo mountoperation.lo \ + PassphraseSchema.lo $(am__objects_1) $(am__objects_2) libdeja_dup_la_OBJECTS = $(am_libdeja_dup_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -128,29 +132,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -178,6 +163,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -190,6 +176,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -253,6 +240,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = libdeja-dup.la @@ -268,6 +256,7 @@ --pkg dbus-glib-1 \ --pkg gdk-x11-2.0 \ --pkg unique-1.0 \ + --pkg posix \ --pkg hacks \ --pkg PassphraseSchema \ --pkg unix \ @@ -282,7 +271,19 @@ Backend.vala \ BackendFile.vala \ BackendS3.vala \ - BackendSSH.vala \ + ButtonConnect.vala \ + ConfigBool.vala \ + ConfigChoice.vala \ + ConfigEntry.vala \ + ConfigLabel.vala \ + ConfigLabelBool.vala \ + ConfigLabelList.vala \ + ConfigLabelLocation.vala \ + ConfigList.vala \ + ConfigLocation.vala \ + ConfigNumber.vala \ + ConfigPeriod.vala \ + ConfigWidget.vala \ Duplicity.vala \ DuplicityInfo.vala \ DuplicityInstance.vala \ @@ -293,20 +294,22 @@ RecursiveDelete.vala \ RecursiveMove.vala \ RecursiveOp.vala \ + ToggleGroup.vala \ libdeja-dup.vala BUILT_SOURCES = \ - libdeja-dup.stamp + vala.stamp libdeja_dup_la_SOURCES = \ hacks.c hacks.h \ + mountoperation.c mountoperation.h \ PassphraseSchema.c PassphraseSchema.h \ + deja-dup.h \ $(libdeja_dup_la_VALASOURCES:.vala=.c) \ - $(libdeja_dup_la_VALASOURCES:.vala=.h) \ $(libdeja_dup_la_VALASOURCES) libdeja_dup_la_LIBADD = $(LIBRARY_LIBS) @INTLLIBS@ -EXTRA_DIST = libdeja-dup.stamp +EXTRA_DIST = vala.stamp DISTCLEANFILES = \ $(BUILT_SOURCES) \ $(libdeja_dup_la_VALASOURCES:.vala=.c) \ @@ -321,8 +324,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -367,7 +370,19 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Backend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BackendFile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BackendS3.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BackendSSH.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ButtonConnect.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigBool.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigChoice.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigEntry.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigLabel.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigLabelBool.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigLabelList.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigLabelLocation.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigList.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigLocation.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigNumber.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigPeriod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigWidget.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Duplicity.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DuplicityInfo.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DuplicityInstance.Plo@am__quote@ @@ -379,8 +394,10 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RecursiveDelete.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RecursiveMove.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RecursiveOp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ToggleGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hacks.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdeja-dup.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mountoperation.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -414,7 +431,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -589,8 +606,8 @@ pdf pdf-am ps ps-am tags uninstall uninstall-am -libdeja-dup.stamp: $(libdeja_dup_la_VALASOURCES) -@USE_VALAC_TRUE@ $(VALAC) -C $(VALA_CFLAGS) $^ +vala.stamp: $(libdeja_dup_la_VALASOURCES) +@USE_VALAC_TRUE@ $(VALAC) -C -H deja-dup.h $(VALA_CFLAGS) $^ @USE_VALAC_TRUE@ touch $@ @USE_VALAC_FALSE@ @echo "ERROR: Valac compilation is disabled, but the C sources are out-of-date." @USE_VALAC_FALSE@ @exit 1 diff -Nru deja-dup-7.4/libdeja-dup/mountoperation.c deja-dup-10.0/libdeja-dup/mountoperation.c --- deja-dup-7.4/libdeja-dup/mountoperation.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/mountoperation.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,897 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* GTK - The GIMP Toolkit + * Copyright (C) Christian Kellner <gicmo@gnome.org> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GTK+ Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ + +#include "mountoperation.h" +#include "config.h" +#include <string.h> +#include <glib/gi18n.h> + +/** + * SECTION:filesystem + * @short_description: Functions for working with GIO + * + * The functions and objects described here make working with GTK+ and + * GIO more convenient. #DupMountOperation is needed when mounting volumes + * and gtk_show_uri() is a convenient way to launch applications for URIs. + * Another object that is worth mentioning in this context is + * #GdkAppLaunchContext, which provides visual feedback when lauching + * applications. + */ + +/** + * DupMountOperation: + * + * #DupMountOperation is an implementation of #GMountOperation that + * can be used with GIO functions for mounting volumes such as + * g_file_mount_enclosing_volume() or g_file_mount_mountable(). + * + * When necessary, #DupMountOperation shows dialogs to ask for passwords. + */ + +static void dup_mount_operation_finalize (GObject *object); +static void dup_mount_operation_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); +static void dup_mount_operation_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); + +static void dup_mount_operation_ask_password (GMountOperation *op, + const char *message, + const char *default_user, + const char *default_domain, + GAskPasswordFlags flags); + +static void dup_mount_operation_ask_question (GMountOperation *op, + const char *message, + const char *choices[]); + +G_DEFINE_TYPE (DupMountOperation, dup_mount_operation, G_TYPE_MOUNT_OPERATION); + +enum { + PROP_0, + PROP_PARENT, + PROP_IS_SHOWING, + PROP_SCREEN + +}; + +struct _DupMountOperationPrivate { + GtkWindow *parent_window; + GtkDialog *dialog; + GdkScreen *screen; + + /* for the ask-password dialog */ + GtkWidget *entry_container; + GtkWidget *username_entry; + GtkWidget *domain_entry; + GtkWidget *password_entry; + GtkWidget *anonymous_toggle; + + GAskPasswordFlags ask_flags; + GPasswordSave password_save; + gboolean anonymous; +}; + +static void +dup_mount_operation_class_init (DupMountOperationClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GMountOperationClass *mount_op_class = G_MOUNT_OPERATION_CLASS (klass); + + g_type_class_add_private (klass, sizeof (DupMountOperationPrivate)); + + object_class->finalize = dup_mount_operation_finalize; + object_class->get_property = dup_mount_operation_get_property; + object_class->set_property = dup_mount_operation_set_property; + + mount_op_class->ask_password = dup_mount_operation_ask_password; + mount_op_class->ask_question = dup_mount_operation_ask_question; + + g_object_class_install_property (object_class, + PROP_PARENT, + g_param_spec_object ("parent", + ("Parent"), + ("The parent window"), + GTK_TYPE_WINDOW, + G_PARAM_READWRITE)); + + g_object_class_install_property (object_class, + PROP_IS_SHOWING, + g_param_spec_boolean ("is-showing", + ("Is Showing"), + ("Are we showing a dialog"), + FALSE, + G_PARAM_READABLE)); + + g_object_class_install_property (object_class, + PROP_SCREEN, + g_param_spec_object ("screen", + ("Screen"), + ("The screen where this window will be displayed."), + GDK_TYPE_SCREEN, + G_PARAM_READWRITE)); +} + +static void +dup_mount_operation_init (DupMountOperation *operation) +{ + operation->priv = G_TYPE_INSTANCE_GET_PRIVATE (operation, + DUP_TYPE_MOUNT_OPERATION, + DupMountOperationPrivate); +} + +static void +dup_mount_operation_finalize (GObject *object) +{ + DupMountOperation *operation = DUP_MOUNT_OPERATION (object); + DupMountOperationPrivate *priv = operation->priv; + + if (priv->parent_window) + g_object_unref (priv->parent_window); + + if (priv->screen) + g_object_unref (priv->screen); + + G_OBJECT_CLASS (dup_mount_operation_parent_class)->finalize (object); +} + +static void +dup_mount_operation_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + DupMountOperation *operation = DUP_MOUNT_OPERATION (object); + + switch (prop_id) + { + case PROP_PARENT: + dup_mount_operation_set_parent (operation, g_value_get_object (value)); + break; + + case PROP_SCREEN: + dup_mount_operation_set_screen (operation, g_value_get_object (value)); + break; + + case PROP_IS_SHOWING: + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +dup_mount_operation_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + DupMountOperation *operation = DUP_MOUNT_OPERATION (object); + DupMountOperationPrivate *priv = operation->priv; + + switch (prop_id) + { + case PROP_PARENT: + g_value_set_object (value, priv->parent_window); + break; + + case PROP_IS_SHOWING: + g_value_set_boolean (value, priv->dialog != NULL); + break; + + case PROP_SCREEN: + g_value_set_object (value, priv->screen); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +remember_button_toggled (GtkToggleButton *button, + DupMountOperation *operation) +{ + DupMountOperationPrivate *priv = operation->priv; + + if (gtk_toggle_button_get_active (button)) + { + gpointer data; + + data = g_object_get_data (G_OBJECT (button), "password-save"); + priv->password_save = GPOINTER_TO_INT (data); + } +} + +static void +pw_dialog_got_response (GtkDialog *dialog, + gint response_id, + DupMountOperation *mount_op) +{ + DupMountOperationPrivate *priv = mount_op->priv; + GMountOperation *op = G_MOUNT_OPERATION (mount_op); + + if (response_id == GTK_RESPONSE_OK) + { + const char *text; + + if (priv->ask_flags & G_ASK_PASSWORD_ANONYMOUS_SUPPORTED) + g_mount_operation_set_anonymous (op, priv->anonymous); + + if (priv->username_entry) + { + text = gtk_entry_get_text (GTK_ENTRY (priv->username_entry)); + g_mount_operation_set_username (op, text); + } + + if (priv->domain_entry) + { + text = gtk_entry_get_text (GTK_ENTRY (priv->domain_entry)); + g_mount_operation_set_domain (op, text); + } + + if (priv->password_entry) + { + text = gtk_entry_get_text (GTK_ENTRY (priv->password_entry)); + g_mount_operation_set_password (op, text); + } + + if (priv->ask_flags & G_ASK_PASSWORD_SAVING_SUPPORTED) + g_mount_operation_set_password_save (op, priv->password_save); + + g_mount_operation_reply (op, G_MOUNT_OPERATION_HANDLED); + } + else + g_mount_operation_reply (op, G_MOUNT_OPERATION_ABORTED); + + priv->dialog = NULL; + g_object_notify (G_OBJECT (op), "is-showing"); + gtk_widget_destroy (GTK_WIDGET (dialog)); + g_object_unref (op); +} + +static gboolean +entry_has_input (GtkWidget *entry_widget) +{ + const char *text; + + if (entry_widget == NULL) + return TRUE; + + text = gtk_entry_get_text (GTK_ENTRY (entry_widget)); + + return text != NULL && text[0] != '\0'; +} + +static gboolean +pw_dialog_input_is_valid (DupMountOperation *operation) +{ + DupMountOperationPrivate *priv = operation->priv; + gboolean is_valid = TRUE; + + /* We don't require password to be non-empty here + * since there are situations where it is not needed, + * see bug 578365. + * We may add a way for the backend to specify that it + * definitively needs a password. + */ + is_valid = entry_has_input (priv->username_entry) && + entry_has_input (priv->domain_entry); + + return is_valid; +} + +static void +pw_dialog_verify_input (GtkEditable *editable, + DupMountOperation *operation) +{ + DupMountOperationPrivate *priv = operation->priv; + gboolean is_valid; + + is_valid = pw_dialog_input_is_valid (operation); + gtk_dialog_set_response_sensitive (GTK_DIALOG (priv->dialog), + GTK_RESPONSE_OK, + is_valid); +} + +static void +pw_dialog_anonymous_toggled (GtkWidget *widget, + DupMountOperation *operation) +{ + DupMountOperationPrivate *priv = operation->priv; + gboolean is_valid; + + priv->anonymous = widget == priv->anonymous_toggle; + + if (priv->anonymous) + is_valid = TRUE; + else + is_valid = pw_dialog_input_is_valid (operation); + + gtk_widget_set_sensitive (priv->entry_container, priv->anonymous == FALSE); + gtk_dialog_set_response_sensitive (GTK_DIALOG (priv->dialog), + GTK_RESPONSE_OK, + is_valid); +} + + +static void +pw_dialog_cycle_focus (GtkWidget *widget, + DupMountOperation *operation) +{ + DupMountOperationPrivate *priv; + GtkWidget *next_widget = NULL; + + priv = operation->priv; + + if (widget == priv->username_entry) + { + if (priv->domain_entry != NULL) + next_widget = priv->domain_entry; + else if (priv->password_entry != NULL) + next_widget = priv->password_entry; + } + else if (widget == priv->domain_entry && priv->password_entry) + next_widget = priv->password_entry; + + if (next_widget) + gtk_widget_grab_focus (next_widget); + else if (pw_dialog_input_is_valid (operation)) + gtk_window_activate_default (GTK_WINDOW (priv->dialog)); +} + +static GtkWidget * +table_add_entry (GtkWidget *table, + int row, + const char *label_text, + const char *value, + gpointer user_data) +{ + GtkWidget *entry; + GtkWidget *label; + + label = gtk_label_new_with_mnemonic (label_text); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + + entry = gtk_entry_new (); + + if (value) + gtk_entry_set_text (GTK_ENTRY (entry), value); + + gtk_table_attach (GTK_TABLE (table), label, + 0, 1, row, row + 1, + GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach_defaults (GTK_TABLE (table), entry, + 1, 2, row, row + 1); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry); + + g_signal_connect (entry, "changed", + G_CALLBACK (pw_dialog_verify_input), user_data); + + g_signal_connect (entry, "activate", + G_CALLBACK (pw_dialog_cycle_focus), user_data); + + return entry; +} + +static void +dup_mount_operation_ask_password (GMountOperation *mount_op, + const char *message, + const char *default_user, + const char *default_domain, + GAskPasswordFlags flags) +{ + DupMountOperation *operation; + DupMountOperationPrivate *priv; + GtkWidget *widget; + GtkDialog *dialog; + GtkWindow *window; + GtkWidget *entry_container; + GtkWidget *hbox, *main_vbox, *vbox, *icon; + GtkWidget *table; + GtkWidget *message_label; + gboolean can_anonymous; + guint rows; + const gchar *secondary; + + operation = DUP_MOUNT_OPERATION (mount_op); + priv = operation->priv; + + priv->ask_flags = flags; + + widget = gtk_dialog_new (); + dialog = GTK_DIALOG (widget); + window = GTK_WINDOW (widget); + + priv->dialog = dialog; + + /* Set the dialog up with HIG properties */ + gtk_dialog_set_has_separator (dialog, FALSE); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); + gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */ + gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5); + gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6); + + gtk_window_set_resizable (window, FALSE); + gtk_window_set_title (window, ""); + gtk_window_set_icon_name (window, GTK_STOCK_DIALOG_AUTHENTICATION); + + gtk_dialog_add_buttons (dialog, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + _("Co_nnect"), GTK_RESPONSE_OK, + NULL); + gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK); + + gtk_dialog_set_alternative_button_order (dialog, + GTK_RESPONSE_OK, + GTK_RESPONSE_CANCEL, + -1); + + /* Build contents */ + hbox = gtk_hbox_new (FALSE, 12); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 5); + gtk_box_pack_start (GTK_BOX (dialog->vbox), hbox, TRUE, TRUE, 0); + + icon = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, + GTK_ICON_SIZE_DIALOG); + + gtk_misc_set_alignment (GTK_MISC (icon), 0.5, 0.0); + gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); + + main_vbox = gtk_vbox_new (FALSE, 18); + gtk_box_pack_start (GTK_BOX (hbox), main_vbox, TRUE, TRUE, 0); + + secondary = strstr (message, "\n"); + if (secondary != NULL) + { + gchar *s; + gchar *primary; + + primary = g_strndup (message, secondary - message + 1); + s = g_strdup_printf ("<big><b>%s</b></big>%s", primary, secondary); + + message_label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (message_label), s); + gtk_misc_set_alignment (GTK_MISC (message_label), 0.0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (message_label), TRUE); + gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (message_label), + FALSE, TRUE, 0); + + g_free (s); + g_free (primary); + } + else + { + message_label = gtk_label_new (message); + gtk_misc_set_alignment (GTK_MISC (message_label), 0.0, 0.5); + gtk_label_set_line_wrap (GTK_LABEL (message_label), TRUE); + gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (message_label), + FALSE, FALSE, 0); + } + + vbox = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0); + + can_anonymous = flags & G_ASK_PASSWORD_ANONYMOUS_SUPPORTED; + + priv->anonymous_toggle = NULL; + if (can_anonymous) + { + GtkWidget *anon_box; + GtkWidget *choice; + GSList *group; + + anon_box = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (vbox), anon_box, + FALSE, FALSE, 0); + + choice = gtk_radio_button_new_with_mnemonic (NULL, _("Connect _anonymously")); + gtk_box_pack_start (GTK_BOX (anon_box), + choice, + FALSE, FALSE, 0); + g_signal_connect (choice, "toggled", + G_CALLBACK (pw_dialog_anonymous_toggled), operation); + priv->anonymous_toggle = choice; + + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice)); + choice = gtk_radio_button_new_with_mnemonic (group, _("Connect as u_ser:")); + gtk_box_pack_start (GTK_BOX (anon_box), + choice, + FALSE, FALSE, 0); + g_signal_connect (choice, "toggled", + G_CALLBACK (pw_dialog_anonymous_toggled), operation); + } + + rows = 0; + + if (flags & G_ASK_PASSWORD_NEED_PASSWORD) + rows++; + + if (flags & G_ASK_PASSWORD_NEED_USERNAME) + rows++; + + if (flags &G_ASK_PASSWORD_NEED_DOMAIN) + rows++; + + /* The table that holds the entries */ + entry_container = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); + + gtk_alignment_set_padding (GTK_ALIGNMENT (entry_container), + 0, 0, can_anonymous ? 12 : 0, 0); + + gtk_box_pack_start (GTK_BOX (vbox), entry_container, + FALSE, FALSE, 0); + priv->entry_container = entry_container; + + table = gtk_table_new (rows, 2, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 12); + gtk_table_set_row_spacings (GTK_TABLE (table), 6); + gtk_container_add (GTK_CONTAINER (entry_container), table); + + rows = 0; + + priv->username_entry = NULL; + if (flags & G_ASK_PASSWORD_NEED_USERNAME) + priv->username_entry = table_add_entry (table, rows++, _("_Username:"), + default_user, operation); + + priv->domain_entry = NULL; + if (flags & G_ASK_PASSWORD_NEED_DOMAIN) + priv->domain_entry = table_add_entry (table, rows++, _("_Domain:"), + default_domain, operation); + + priv->password_entry = NULL; + if (flags & G_ASK_PASSWORD_NEED_PASSWORD) + { + priv->password_entry = table_add_entry (table, rows++, _("_Password:"), + NULL, operation); + gtk_entry_set_visibility (GTK_ENTRY (priv->password_entry), FALSE); + } + + if (flags & G_ASK_PASSWORD_SAVING_SUPPORTED) + { + GtkWidget *choice; + GtkWidget *remember_box; + GSList *group; + GPasswordSave password_save; + + remember_box = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (vbox), remember_box, + FALSE, FALSE, 0); + + password_save = g_mount_operation_get_password_save (mount_op); + + choice = gtk_radio_button_new_with_mnemonic (NULL, _("Forget password _immediately")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_save == G_PASSWORD_SAVE_NEVER); + g_object_set_data (G_OBJECT (choice), "password-save", + GINT_TO_POINTER (G_PASSWORD_SAVE_NEVER)); + g_signal_connect (choice, "toggled", + G_CALLBACK (remember_button_toggled), operation); + gtk_box_pack_start (GTK_BOX (remember_box), choice, FALSE, FALSE, 0); + + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice)); + choice = gtk_radio_button_new_with_mnemonic (group, _("Remember password until you _logout")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_save == G_PASSWORD_SAVE_FOR_SESSION); + g_object_set_data (G_OBJECT (choice), "password-save", + GINT_TO_POINTER (G_PASSWORD_SAVE_FOR_SESSION)); + g_signal_connect (choice, "toggled", + G_CALLBACK (remember_button_toggled), operation); + gtk_box_pack_start (GTK_BOX (remember_box), choice, FALSE, FALSE, 0); + + group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice)); + choice = gtk_radio_button_new_with_mnemonic (group, _("Remember _forever")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_save == G_PASSWORD_SAVE_PERMANENTLY); + g_object_set_data (G_OBJECT (choice), "password-save", + GINT_TO_POINTER (G_PASSWORD_SAVE_PERMANENTLY)); + g_signal_connect (choice, "toggled", + G_CALLBACK (remember_button_toggled), operation); + gtk_box_pack_start (GTK_BOX (remember_box), choice, FALSE, FALSE, 0); + } + + g_signal_connect (G_OBJECT (dialog), "response", + G_CALLBACK (pw_dialog_got_response), operation); + + if (can_anonymous) + { + /* The anonymous option will be active by default, + * ensure the toggled signal is emitted for it. + */ + gtk_toggle_button_toggled (GTK_TOGGLE_BUTTON (priv->anonymous_toggle)); + } + else if (! pw_dialog_input_is_valid (operation)) + gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, FALSE); + + g_object_notify (G_OBJECT (operation), "is-showing"); + + if (priv->parent_window) + { + gtk_window_set_transient_for (window, priv->parent_window); + gtk_window_set_modal (window, TRUE); + } + else if (priv->screen) + gtk_window_set_screen (GTK_WINDOW (dialog), priv->screen); + + gtk_widget_show_all (GTK_WIDGET (dialog)); + + g_object_ref (operation); +} + +static void +question_dialog_button_clicked (GtkDialog *dialog, + gint button_number, + GMountOperation *op) +{ + DupMountOperationPrivate *priv; + DupMountOperation *operation; + + operation = DUP_MOUNT_OPERATION (op); + priv = operation->priv; + + if (button_number >= 0) + { + g_mount_operation_set_choice (op, button_number); + g_mount_operation_reply (op, G_MOUNT_OPERATION_HANDLED); + } + else + g_mount_operation_reply (op, G_MOUNT_OPERATION_ABORTED); + + priv->dialog = NULL; + g_object_notify (G_OBJECT (operation), "is-showing"); + gtk_widget_destroy (GTK_WIDGET (dialog)); + g_object_unref (op); +} + +static void +dup_mount_operation_ask_question (GMountOperation *op, + const char *message, + const char *choices[]) +{ + DupMountOperationPrivate *priv; + GtkWidget *dialog; + const char *secondary = NULL; + char *primary; + int count, len = 0; + + g_return_if_fail (DUP_IS_MOUNT_OPERATION (op)); + g_return_if_fail (message != NULL); + g_return_if_fail (choices != NULL); + + priv = DUP_MOUNT_OPERATION (op)->priv; + + primary = strstr (message, "\n"); + if (primary) + { + secondary = primary + 1; + primary = g_strndup (message, primary - message); + } + + dialog = gtk_message_dialog_new (priv->parent_window, 0, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, "%s", + primary != NULL ? primary : message); + g_free (primary); + + if (secondary) + gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), + "%s", secondary); + + /* First count the items in the list then + * add the buttons in reverse order */ + + while (choices[len] != NULL) + len++; + + for (count = len - 1; count >= 0; count--) + gtk_dialog_add_button (GTK_DIALOG (dialog), choices[count], count); + + g_signal_connect (G_OBJECT (dialog), "response", + G_CALLBACK (question_dialog_button_clicked), op); + + priv->dialog = GTK_DIALOG (dialog); + g_object_notify (G_OBJECT (op), "is-showing"); + + if (priv->parent_window == NULL && priv->screen) + gtk_window_set_screen (GTK_WINDOW (dialog), priv->screen); + + gtk_widget_show (dialog); + g_object_ref (op); +} + +/** + * dup_mount_operation_new: + * @parent: transient parent of the window, or %NULL + * + * Creates a new #DupMountOperation + * + * Returns: a new #DupMountOperation + * + * Since: 2.14 + */ +GMountOperation * +dup_mount_operation_new (GtkWindow *parent) +{ + GMountOperation *mount_operation; + + mount_operation = g_object_new (DUP_TYPE_MOUNT_OPERATION, + "parent", parent, NULL); + + return mount_operation; +} + +/** + * dup_mount_operation_is_showing: + * @op: a #DupMountOperation + * + * Returns whether the #DupMountOperation is currently displaying + * a window. + * + * Returns: %TRUE if @op is currently displaying a window + * + * Since: 2.14 + */ +gboolean +dup_mount_operation_is_showing (DupMountOperation *op) +{ + g_return_val_if_fail (DUP_IS_MOUNT_OPERATION (op), FALSE); + + return op->priv->dialog != NULL; +} + +/** + * dup_mount_operation_set_parent: + * @op: a #DupMountOperation + * @parent: transient parent of the window, or %NULL + * + * Sets the transient parent for windows shown by the + * #DupMountOperation. + * + * Since: 2.14 + */ +void +dup_mount_operation_set_parent (DupMountOperation *op, + GtkWindow *parent) +{ + DupMountOperationPrivate *priv; + + g_return_if_fail (DUP_IS_MOUNT_OPERATION (op)); + g_return_if_fail (parent == NULL || GTK_IS_WINDOW (parent)); + + priv = op->priv; + + if (priv->parent_window == parent) + return; + + if (priv->parent_window) + { + g_signal_handlers_disconnect_by_func (priv->parent_window, + gtk_widget_destroyed, + &priv->parent_window); + priv->parent_window = NULL; + } + + if (parent) + { + priv->parent_window = g_object_ref (parent); + + g_signal_connect (parent, "destroy", + G_CALLBACK (gtk_widget_destroyed), + &priv->parent_window); + + if (priv->dialog) + gtk_window_set_transient_for (GTK_WINDOW (priv->dialog), parent); + } + + g_object_notify (G_OBJECT (op), "parent"); +} + +/** + * dup_mount_operation_get_parent: + * @op: a #DupMountOperation + * + * Gets the transient parent used by the #DupMountOperation + * + * Returns: the transient parent for windows shown by @op + * + * Since: 2.14 + */ +GtkWindow * +dup_mount_operation_get_parent (DupMountOperation *op) +{ + g_return_val_if_fail (DUP_IS_MOUNT_OPERATION (op), NULL); + + return op->priv->parent_window; +} + +/** + * dup_mount_operation_set_screen: + * @op: a #DupMountOperation + * @screen: a #GdkScreen + * + * Sets the screen to show windows of the #DupMountOperation on. + * + * Since: 2.14 + */ +void +dup_mount_operation_set_screen (DupMountOperation *op, + GdkScreen *screen) +{ + DupMountOperationPrivate *priv; + + g_return_if_fail (DUP_IS_MOUNT_OPERATION (op)); + g_return_if_fail (GDK_IS_SCREEN (screen)); + + priv = op->priv; + + if (priv->screen == screen) + return; + + if (priv->screen) + g_object_unref (priv->screen); + + priv->screen = g_object_ref (screen); + + if (priv->dialog) + gtk_window_set_screen (GTK_WINDOW (priv->dialog), screen); + + g_object_notify (G_OBJECT (op), "screen"); +} + +/** + * dup_mount_operation_get_screen: + * @op: a #DupMountOperation + * + * Gets the screen on which windows of the #DupMountOperation + * will be shown. + * + * Returns: the screen on which windows of @op are shown + * + * Since: 2.14 + */ +GdkScreen * +dup_mount_operation_get_screen (DupMountOperation *op) +{ + DupMountOperationPrivate *priv; + + g_return_val_if_fail (DUP_IS_MOUNT_OPERATION (op), NULL); + + priv = op->priv; + + if (priv->dialog) + return gtk_window_get_screen (GTK_WINDOW (priv->dialog)); + else if (priv->parent_window) + return gtk_window_get_screen (GTK_WINDOW (priv->parent_window)); + else if (priv->screen) + return priv->screen; + else + return gdk_screen_get_default (); +} + diff -Nru deja-dup-7.4/libdeja-dup/mountoperation.h deja-dup-10.0/libdeja-dup/mountoperation.h --- deja-dup-7.4/libdeja-dup/mountoperation.h 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/mountoperation.h 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,75 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) Christian Kellner <gicmo@gnome.org> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +/* + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GTK+ Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __DUP_MOUNT_OPERATION_H__ +#define __DUP_MOUNT_OPERATION_H__ + +#include <gio/gio.h> +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +#define DUP_TYPE_MOUNT_OPERATION (dup_mount_operation_get_type ()) +#define DUP_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), DUP_TYPE_MOUNT_OPERATION, DupMountOperation)) +#define DUP_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), DUP_TYPE_MOUNT_OPERATION, DupMountOperationClass)) +#define DUP_IS_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), DUP_TYPE_MOUNT_OPERATION)) +#define DUP_IS_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), DUP_TYPE_MOUNT_OPERATION)) +#define DUP_MOUNT_OPERATION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), DUP_TYPE_MOUNT_OPERATION, DupMountOperationClass)) + +typedef struct _DupMountOperation DupMountOperation; +typedef struct _DupMountOperationClass DupMountOperationClass; +typedef struct _DupMountOperationPrivate DupMountOperationPrivate; + +struct _DupMountOperation +{ + GMountOperation parent_instance; + + DupMountOperationPrivate *priv; +}; + +struct _DupMountOperationClass +{ + GMountOperationClass parent_class; + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); +}; + + +GType dup_mount_operation_get_type (void); +GMountOperation *dup_mount_operation_new (GtkWindow *parent); +gboolean dup_mount_operation_is_showing (DupMountOperation *op); +void dup_mount_operation_set_parent (DupMountOperation *op, + GtkWindow *parent); +GtkWindow * dup_mount_operation_get_parent (DupMountOperation *op); +void dup_mount_operation_set_screen (DupMountOperation *op, + GdkScreen *screen); +GdkScreen *dup_mount_operation_get_screen (DupMountOperation *op); + +G_END_DECLS + +#endif /* __DUP_MOUNT_OPERATION_H__ */ diff -Nru deja-dup-7.4/libdeja-dup/OperationBackup.c deja-dup-10.0/libdeja-dup/OperationBackup.c --- deja-dup-7.4/libdeja-dup/OperationBackup.c 2009-02-11 20:35:26.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationBackup.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,24 +1,125 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <OperationBackup.h> +#include <glib.h> +#include <glib-object.h> #include <stdlib.h> #include <string.h> +#include <gtk/gtk.h> #include <gconf/gconf-client.h> #include <gconf/gconf.h> #include <gio/gio.h> -#include <libdeja-dup.h> +#define DEJA_DUP_TYPE_OPERATION (deja_dup_operation_get_type ()) +#define DEJA_DUP_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperation)) +#define DEJA_DUP_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) +#define DEJA_DUP_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) + +typedef struct _DejaDupOperation DejaDupOperation; +typedef struct _DejaDupOperationClass DejaDupOperationClass; +typedef struct _DejaDupOperationPrivate DejaDupOperationPrivate; + +#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ()) +#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity)) +#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) +#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) + +typedef struct _DejaDupDuplicity DejaDupDuplicity; +typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass; + +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; + +#define DEJA_DUP_TYPE_OPERATION_BACKUP (deja_dup_operation_backup_get_type ()) +#define DEJA_DUP_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackup)) +#define DEJA_DUP_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass)) +#define DEJA_DUP_IS_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP)) +#define DEJA_DUP_IS_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP)) +#define DEJA_DUP_OPERATION_BACKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass)) + +typedef struct _DejaDupOperationBackup DejaDupOperationBackup; +typedef struct _DejaDupOperationBackupClass DejaDupOperationBackupClass; +typedef struct _DejaDupOperationBackupPrivate DejaDupOperationBackupPrivate; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +typedef enum { + DEJA_DUP_BACKUP_ERROR_BAD_CONFIG +} DejaDupBackupError; +#define DEJA_DUP_BACKUP_ERROR deja_dup_backup_error_quark () +struct _DejaDupOperation { + GObject parent_instance; + DejaDupOperationPrivate * priv; + DejaDupDuplicity* dup; + DejaDupBackend* backend; + char* passphrase; +}; + +struct _DejaDupOperationClass { + GObjectClass parent_class; + void (*start) (DejaDupOperation* self, GError** error); + void (*connect_to_dup) (DejaDupOperation* self); + void (*operation_finished) (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); + GList* (*make_argv) (DejaDupOperation* self, GError** error); +}; + +struct _DejaDupOperationBackup { + DejaDupOperation parent_instance; + DejaDupOperationBackupPrivate * priv; +}; + +struct _DejaDupOperationBackupClass { + DejaDupOperationClass parent_class; +}; + +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; + +GQuark deja_dup_backup_error_quark (void); +GType deja_dup_operation_get_type (void); +GType deja_dup_duplicity_get_type (void); +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_backup_get_type (void); enum { DEJA_DUP_OPERATION_BACKUP_DUMMY_PROPERTY }; +static void deja_dup_operation_set_toplevel (DejaDupOperation* self, GtkWindow* value); +static void deja_dup_operation_set_uppermost_xid (DejaDupOperation* self, guint value); +GType deja_dup_operation_mode_get_type (void); +static void deja_dup_operation_set_mode (DejaDupOperation* self, DejaDupOperationMode value); +DejaDupOperationBackup* deja_dup_operation_backup_new (GtkWindow* win, guint xid); +DejaDupOperationBackup* deja_dup_operation_backup_construct (GType object_type, GtkWindow* win, guint xid); +DejaDupOperationBackup* deja_dup_operation_backup_new (GtkWindow* win, guint xid); +void deja_dup_update_last_run_timestamp (GError** error); +void deja_dup_operation_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); static void deja_dup_operation_backup_real_operation_finished (DejaDupOperation* base, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); +GConfClient* deja_dup_get_gconf_client (void); +#define DEJA_DUP_INCLUDE_LIST_KEY "/apps/deja-dup/include-list" +GFile** deja_dup_parse_dir_list (GSList* dirs, int* result_length1); +#define DEJA_DUP_EXCLUDE_LIST_KEY "/apps/deja-dup/exclude-list" +static GList* deja_dup_operation_backup_get_always_excluded_dirs (DejaDupOperationBackup* self); +void deja_dup_duplicity_set_local (DejaDupDuplicity* self, const char* value); static void _g_list_free_g_free (GList* self); static GList* deja_dup_operation_backup_real_make_argv (DejaDupOperation* base, GError** error); -static GList* deja_dup_operation_backup_get_always_excluded_dirs (DejaDupOperationBackup* self); static gpointer deja_dup_operation_backup_parent_class = NULL; +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -63,33 +164,33 @@ static void deja_dup_operation_backup_real_operation_finished (DejaDupOperation* base, DejaDupDuplicity* dup, gboolean success, gboolean cancelled) { DejaDupOperationBackup * self; - GError * inner_error; + GError * _inner_error_; self = (DejaDupOperationBackup*) base; g_return_if_fail (dup != NULL); - inner_error = NULL; + _inner_error_ = NULL; if (success) { { - deja_dup_update_last_run_timestamp (&inner_error); - if (inner_error != NULL) { - goto __catch14_g_error; - goto __finally14; + deja_dup_update_last_run_timestamp (&_inner_error_); + if (_inner_error_ != NULL) { + goto __catch47_g_error; + goto __finally47; } } - goto __finally14; - __catch14_g_error: + goto __finally47; + __catch47_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_warning ("OperationBackup.vala:40: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally14: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally47: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -105,45 +206,43 @@ static GList* deja_dup_operation_backup_real_make_argv (DejaDupOperation* base, GError** error) { DejaDupOperationBackup * self; - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; - GSList* _tmp1; - GFile** _tmp3; + GSList* _tmp0_; + GFile** _tmp2_; gint include_list_size; gint include_list_length1; - gint _tmp2; + gint _tmp1_; GFile** include_list; - GSList* _tmp4; - GFile** _tmp6; + GSList* _tmp3_; + GFile** _tmp5_; gint exclude_list_size; gint exclude_list_length1; - gint _tmp5; + gint _tmp4_; GFile** exclude_list; GList* rv; GList* always_excluded; - GList* _tmp12; + GList* _tmp11_; self = (DejaDupOperationBackup*) base; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = gconf_client_get_list (client, DEJA_DUP_INCLUDE_LIST_KEY, GCONF_VALUE_STRING, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + client = deja_dup_get_gconf_client (); + _tmp0_ = gconf_client_get_list (client, DEJA_DUP_INCLUDE_LIST_KEY, GCONF_VALUE_STRING, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return NULL; } - _tmp3 = NULL; - include_list = (_tmp3 = deja_dup_parse_dir_list (_tmp1, &_tmp2), include_list_length1 = _tmp2, include_list_size = include_list_length1, _tmp3); - _tmp4 = gconf_client_get_list (client, DEJA_DUP_EXCLUDE_LIST_KEY, GCONF_VALUE_STRING, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _tmp2_ = NULL; + include_list = (_tmp2_ = deja_dup_parse_dir_list (_tmp0_, &_tmp1_), include_list_length1 = _tmp1_, include_list_size = include_list_length1, _tmp2_); + _tmp3_ = gconf_client_get_list (client, DEJA_DUP_EXCLUDE_LIST_KEY, GCONF_VALUE_STRING, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); include_list = (_vala_array_free (include_list, include_list_length1, (GDestroyNotify) g_object_unref), NULL); return NULL; } - _tmp6 = NULL; - exclude_list = (_tmp6 = deja_dup_parse_dir_list (_tmp4, &_tmp5), exclude_list_length1 = _tmp5, exclude_list_size = exclude_list_length1, _tmp6); + _tmp5_ = NULL; + exclude_list = (_tmp5_ = deja_dup_parse_dir_list (_tmp3_, &_tmp4_), exclude_list_length1 = _tmp4_, exclude_list_size = exclude_list_length1, _tmp5_); rv = NULL; /* Exclude directories no one wants to backup*/ always_excluded = deja_dup_operation_backup_get_always_excluded_dirs (self); @@ -152,10 +251,10 @@ GList* dir_it; dir_collection = always_excluded; for (dir_it = dir_collection; dir_it != NULL; dir_it = dir_it->next) { - const char* _tmp7; + const char* _tmp6_; char* dir; - _tmp7 = NULL; - dir = (_tmp7 = (const char*) dir_it->data, (_tmp7 == NULL) ? NULL : g_strdup (_tmp7)); + _tmp6_ = NULL; + dir = (_tmp6_ = (const char*) dir_it->data, (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_)); { rv = g_list_append (rv, g_strdup_printf ("--exclude=%s", dir)); dir = (g_free (dir), NULL); @@ -169,15 +268,15 @@ s_collection = exclude_list; s_collection_length1 = exclude_list_length1; for (s_it = 0; s_it < exclude_list_length1; s_it = s_it + 1) { - GFile* _tmp9; + GFile* _tmp8_; GFile* s; - _tmp9 = NULL; - s = (_tmp9 = s_collection[s_it], (_tmp9 == NULL) ? NULL : g_object_ref (_tmp9)); + _tmp8_ = NULL; + s = (_tmp8_ = s_collection[s_it], (_tmp8_ == NULL) ? NULL : g_object_ref (_tmp8_)); { - char* _tmp8; - _tmp8 = NULL; - rv = g_list_append (rv, g_strdup_printf ("--exclude=%s", _tmp8 = g_file_get_path (s))); - _tmp8 = (g_free (_tmp8), NULL); + char* _tmp7_; + _tmp7_ = NULL; + rv = g_list_append (rv, g_strdup_printf ("--exclude=%s", _tmp7_ = g_file_get_path (s))); + _tmp7_ = (g_free (_tmp7_), NULL); (s == NULL) ? NULL : (s = (g_object_unref (s), NULL)); } } @@ -189,66 +288,71 @@ s_collection = include_list; s_collection_length1 = include_list_length1; for (s_it = 0; s_it < include_list_length1; s_it = s_it + 1) { - GFile* _tmp11; + GFile* _tmp10_; GFile* s; - _tmp11 = NULL; - s = (_tmp11 = s_collection[s_it], (_tmp11 == NULL) ? NULL : g_object_ref (_tmp11)); + _tmp10_ = NULL; + s = (_tmp10_ = s_collection[s_it], (_tmp10_ == NULL) ? NULL : g_object_ref (_tmp10_)); { - char* _tmp10; - _tmp10 = NULL; - rv = g_list_append (rv, g_strdup_printf ("--include=%s", _tmp10 = g_file_get_path (s))); - _tmp10 = (g_free (_tmp10), NULL); + char* _tmp9_; + _tmp9_ = NULL; + rv = g_list_append (rv, g_strdup_printf ("--include=%s", _tmp9_ = g_file_get_path (s))); + _tmp9_ = (g_free (_tmp9_), NULL); (s == NULL) ? NULL : (s = (g_object_unref (s), NULL)); } } } rv = g_list_append (rv, g_strdup ("--exclude=**")); deja_dup_duplicity_set_local (((DejaDupOperation*) self)->dup, "/"); - _tmp12 = NULL; - return (_tmp12 = rv, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), include_list = (_vala_array_free (include_list, include_list_length1, (GDestroyNotify) g_object_unref), NULL), exclude_list = (_vala_array_free (exclude_list, exclude_list_length1, (GDestroyNotify) g_object_unref), NULL), (always_excluded == NULL) ? NULL : (always_excluded = (_g_list_free_g_free (always_excluded), NULL)), _tmp12); + _tmp11_ = NULL; + return (_tmp11_ = rv, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), include_list = (_vala_array_free (include_list, include_list_length1, (GDestroyNotify) g_object_unref), NULL), exclude_list = (_vala_array_free (exclude_list, exclude_list_length1, (GDestroyNotify) g_object_unref), NULL), (always_excluded == NULL) ? NULL : (always_excluded = (_g_list_free_g_free (always_excluded), NULL)), _tmp11_); } static GList* deja_dup_operation_backup_get_always_excluded_dirs (DejaDupOperationBackup* self) { GList* rv; - const char* _tmp0; + const char* _tmp0_; char* dir; - char* _tmp3; - const char* _tmp2; - char* _tmp5; - const char* _tmp4; - GList* _tmp7; + char* _tmp3_; + const char* _tmp2_; + char* _tmp5_; + const char* _tmp4_; + GList* _tmp7_; g_return_val_if_fail (self != NULL, NULL); rv = NULL; /* User doesn't care about cache*/ - _tmp0 = NULL; - dir = (_tmp0 = g_get_user_cache_dir (), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + dir = (_tmp0_ = g_get_user_cache_dir (), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); if (dir != NULL) { - const char* _tmp1; - _tmp1 = NULL; - rv = g_list_append (rv, (_tmp1 = dir, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1))); + const char* _tmp1_; + _tmp1_ = NULL; + rv = g_list_append (rv, (_tmp1_ = dir, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_))); } /* Likewise, user doesn't care about cache-like thumbnail directory*/ - _tmp3 = NULL; - _tmp2 = NULL; - dir = (_tmp3 = (_tmp2 = g_get_home_dir (), (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)), dir = (g_free (dir), NULL), _tmp3); + _tmp3_ = NULL; + _tmp2_ = NULL; + dir = (_tmp3_ = (_tmp2_ = g_get_home_dir (), (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)), dir = (g_free (dir), NULL), _tmp3_); if (dir != NULL) { rv = g_list_append (rv, g_build_filename (dir, ".thumbnails", NULL)); rv = g_list_append (rv, g_build_filename (dir, ".gvfs", NULL)); - } - /* Some problematic directories like /tmp and /proc should be left alone*/ - _tmp5 = NULL; - _tmp4 = NULL; - dir = (_tmp5 = (_tmp4 = g_get_tmp_dir (), (_tmp4 == NULL) ? NULL : g_strdup (_tmp4)), dir = (g_free (dir), NULL), _tmp5); + rv = g_list_append (rv, g_build_filename (dir, ".xsession-errors", NULL)); + rv = g_list_append (rv, g_build_filename (dir, ".recently-used.xbel", NULL)); + rv = g_list_append (rv, g_build_filename (dir, ".recent-applications.xbel", NULL)); + rv = g_list_append (rv, g_build_filename (dir, ".Private", NULL)); + } + /* encrypted copies of stuff in $HOME + Some problematic directories like /tmp and /proc should be left alone*/ + _tmp5_ = NULL; + _tmp4_ = NULL; + dir = (_tmp5_ = (_tmp4_ = g_get_tmp_dir (), (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)), dir = (g_free (dir), NULL), _tmp5_); if (dir != NULL) { - const char* _tmp6; - _tmp6 = NULL; - rv = g_list_append (rv, (_tmp6 = dir, (_tmp6 == NULL) ? NULL : g_strdup (_tmp6))); + const char* _tmp6_; + _tmp6_ = NULL; + rv = g_list_append (rv, (_tmp6_ = dir, (_tmp6_ == NULL) ? NULL : g_strdup (_tmp6_))); } rv = g_list_append (rv, g_strdup ("/proc")); rv = g_list_append (rv, g_strdup ("/sys")); - _tmp7 = NULL; - return (_tmp7 = rv, dir = (g_free (dir), NULL), _tmp7); + _tmp7_ = NULL; + return (_tmp7_ = rv, dir = (g_free (dir), NULL), _tmp7_); } @@ -273,7 +377,7 @@ } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -282,6 +386,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/libdeja-dup/OperationBackup.h deja-dup-10.0/libdeja-dup/OperationBackup.h --- deja-dup-7.4/libdeja-dup/OperationBackup.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationBackup.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,48 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __OPERATIONBACKUP_H__ -#define __OPERATIONBACKUP_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <Operation.h> -#include <Duplicity.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_OPERATION_BACKUP (deja_dup_operation_backup_get_type ()) -#define DEJA_DUP_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackup)) -#define DEJA_DUP_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass)) -#define DEJA_DUP_IS_OPERATION_BACKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP)) -#define DEJA_DUP_IS_OPERATION_BACKUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_BACKUP)) -#define DEJA_DUP_OPERATION_BACKUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_BACKUP, DejaDupOperationBackupClass)) - -typedef struct _DejaDupOperationBackup DejaDupOperationBackup; -typedef struct _DejaDupOperationBackupClass DejaDupOperationBackupClass; -typedef struct _DejaDupOperationBackupPrivate DejaDupOperationBackupPrivate; - -typedef enum { - DEJA_DUP_BACKUP_ERROR_BAD_CONFIG -} DejaDupBackupError; -#define DEJA_DUP_BACKUP_ERROR deja_dup_backup_error_quark () -struct _DejaDupOperationBackup { - DejaDupOperation parent_instance; - DejaDupOperationBackupPrivate * priv; -}; - -struct _DejaDupOperationBackupClass { - DejaDupOperationClass parent_class; -}; - - -GQuark deja_dup_backup_error_quark (void); -DejaDupOperationBackup* deja_dup_operation_backup_construct (GType object_type, GtkWindow* win, guint xid); -DejaDupOperationBackup* deja_dup_operation_backup_new (GtkWindow* win, guint xid); -GType deja_dup_operation_backup_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/OperationBackup.vala deja-dup-10.0/libdeja-dup/OperationBackup.vala --- deja-dup-7.4/libdeja-dup/OperationBackup.vala 2009-02-11 20:30:56.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationBackup.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -45,7 +45,7 @@ protected override List<string>? make_argv() throws Error { - var client = GConf.Client.get_default(); + var client = get_gconf_client(); var include_list = parse_dir_list(client.get_list(INCLUDE_LIST_KEY, GConf.ValueType.STRING)); @@ -85,6 +85,10 @@ if (dir != null) { rv.append(Path.build_filename(dir, ".thumbnails")); rv.append(Path.build_filename(dir, ".gvfs")); + rv.append(Path.build_filename(dir, ".xsession-errors")); + rv.append(Path.build_filename(dir, ".recently-used.xbel")); + rv.append(Path.build_filename(dir, ".recent-applications.xbel")); + rv.append(Path.build_filename(dir, ".Private")); // encrypted copies of stuff in $HOME } // Some problematic directories like /tmp and /proc should be left alone diff -Nru deja-dup-7.4/libdeja-dup/Operation.c deja-dup-10.0/libdeja-dup/Operation.c --- deja-dup-7.4/libdeja-dup/Operation.c 2009-02-11 21:13:44.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Operation.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,21 +1,80 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <Operation.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gtk/gtk.h> #include <glib/gi18n-lib.h> -#include <dbus/dbus-glib-lowlevel.h> -#include <dbus/dbus-glib.h> -#include <gdk/gdkx.h> -#include <gdk/gdk.h> -#include <config.h> #include <gconf/gconf-client.h> +#include <gio/gio.h> +#include <float.h> +#include <math.h> #include <gnome-keyring.h> #include <PassphraseSchema.h> +#include <config.h> #include <libgnomeui/libgnomeui.h> -#include <Duplicity.h> -#include <libdeja-dup.h> +#include <dbus/dbus-glib-lowlevel.h> +#include <dbus/dbus-glib.h> +#include <gdk/gdkx.h> +#include <hacks.h> +#define DEJA_DUP_TYPE_OPERATION (deja_dup_operation_get_type ()) +#define DEJA_DUP_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperation)) +#define DEJA_DUP_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) +#define DEJA_DUP_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) + +typedef struct _DejaDupOperation DejaDupOperation; +typedef struct _DejaDupOperationClass DejaDupOperationClass; +typedef struct _DejaDupOperationPrivate DejaDupOperationPrivate; + +#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ()) +#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity)) +#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) +#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) + +typedef struct _DejaDupDuplicity DejaDupDuplicity; +typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass; + +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +struct _DejaDupOperation { + GObject parent_instance; + DejaDupOperationPrivate * priv; + DejaDupDuplicity* dup; + DejaDupBackend* backend; + char* passphrase; +}; + +struct _DejaDupOperationClass { + GObjectClass parent_class; + void (*start) (DejaDupOperation* self, GError** error); + void (*connect_to_dup) (DejaDupOperation* self); + void (*operation_finished) (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); + GList* (*make_argv) (DejaDupOperation* self, GError** error); +}; +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; struct _DejaDupOperationPrivate { GtkWindow* _toplevel; @@ -24,6 +83,12 @@ guint inhibit_cookie; }; + + +GType deja_dup_operation_get_type (void); +GType deja_dup_duplicity_get_type (void); +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_mode_get_type (void); #define DEJA_DUP_OPERATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_OPERATION, DejaDupOperationPrivate)) enum { DEJA_DUP_OPERATION_DUMMY_PROPERTY, @@ -31,44 +96,69 @@ DEJA_DUP_OPERATION_UPPERMOST_XID, DEJA_DUP_OPERATION_MODE }; +char* deja_dup_operation_mode_to_string (DejaDupOperationMode mode); +void deja_dup_operation_connect_to_dup (DejaDupOperation* self); +static gboolean deja_dup_operation_claim_bus (DejaDupOperation* self, gboolean claimed); +static void deja_dup_operation_set_session_inhibited (DejaDupOperation* self, gboolean inhibit); +GConfClient* deja_dup_get_gconf_client (void); +#define DEJA_DUP_ENCRYPT_KEY "/apps/deja-dup/encrypt" +static void deja_dup_operation_get_passphrase (DejaDupOperation* self); +static void deja_dup_operation_continue_with_passphrase (DejaDupOperation* self, GError** error); +void deja_dup_operation_start (DejaDupOperation* self, GError** error); static void deja_dup_operation_real_start (DejaDupOperation* self, GError** error); +void deja_dup_duplicity_cancel (DejaDupDuplicity* self); +void deja_dup_operation_cancel (DejaDupOperation* self); +void deja_dup_operation_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); static void _deja_dup_operation_operation_finished_deja_dup_duplicity_done (DejaDupDuplicity* _sender, gboolean success, gboolean cancelled, gpointer self); -static void __lambda0 (DejaDupDuplicity* d, const char* s, const char* detail, DejaDupOperation* self); -static void ___lambda0_deja_dup_duplicity_raise_error (DejaDupDuplicity* _sender, const char* errstr, const char* detail, gpointer self); -static void __lambda1 (DejaDupDuplicity* d, const char* s, DejaDupOperation* self); -static void ___lambda1_deja_dup_duplicity_action_desc_changed (DejaDupDuplicity* _sender, const char* action, gpointer self); -static void __lambda2 (DejaDupDuplicity* d, GFile* f, DejaDupOperation* self); -static void ___lambda2_deja_dup_duplicity_action_file_changed (DejaDupDuplicity* _sender, GFile* file, gpointer self); -static void __lambda3 (DejaDupDuplicity* d, double p, DejaDupOperation* self); -static void ___lambda3_deja_dup_duplicity_progress (DejaDupDuplicity* _sender, double percent, gpointer self); -static void _deja_dup_operation_continue_with_envp_deja_dup_backend_envp_ready (DejaDupBackend* _sender, gboolean success, GList* envp, gpointer self); -static void __lambda4 (DejaDupBackend* b, DejaDupOperation* self); -static void ___lambda4_deja_dup_backend_need_password (DejaDupBackend* _sender, gpointer self); +static void _lambda0_ (DejaDupDuplicity* d, const char* s, const char* detail, DejaDupOperation* self); +static void __lambda0__deja_dup_duplicity_raise_error (DejaDupDuplicity* _sender, const char* errstr, const char* detail, gpointer self); +static void _lambda1_ (DejaDupDuplicity* d, const char* s, DejaDupOperation* self); +static void __lambda1__deja_dup_duplicity_action_desc_changed (DejaDupDuplicity* _sender, const char* action, gpointer self); +static void _lambda2_ (DejaDupDuplicity* d, GFile* f, DejaDupOperation* self); +static void __lambda2__deja_dup_duplicity_action_file_changed (DejaDupDuplicity* _sender, GFile* file, gpointer self); +static void _lambda3_ (DejaDupDuplicity* d, double p, DejaDupOperation* self); +static void __lambda3__deja_dup_duplicity_progress (DejaDupDuplicity* _sender, double percent, gpointer self); +static void deja_dup_operation_continue_with_envp (DejaDupOperation* self, DejaDupBackend* b, gboolean success, GList* envp, const char* _error_); +static void _deja_dup_operation_continue_with_envp_deja_dup_backend_envp_ready (DejaDupBackend* _sender, gboolean success, GList* envp, const char* _error_, gpointer self); +void deja_dup_backend_ask_password (DejaDupBackend* self); +static void _lambda4_ (DejaDupBackend* b, DejaDupOperation* self); +static void __lambda4__deja_dup_backend_need_password (DejaDupBackend* _sender, gpointer self); static void deja_dup_operation_real_connect_to_dup (DejaDupOperation* self); -static void deja_dup_operation_continue_with_passphrase (DejaDupOperation* self, GError** error); +void deja_dup_backend_get_envp (DejaDupBackend* self, GError** error); +GList* deja_dup_operation_make_argv (DejaDupOperation* self, GError** error); +void deja_dup_backend_add_argv (DejaDupBackend* self, DejaDupOperationMode mode, GList** argv); +DejaDupOperationMode deja_dup_operation_get_mode (DejaDupOperation* self); +void deja_dup_duplicity_start (DejaDupDuplicity* self, DejaDupBackend* backend, gboolean encrypted, GList* argv, GList* envp); static void _g_list_free_g_free (GList* self); -static void deja_dup_operation_continue_with_envp (DejaDupOperation* self, DejaDupBackend* b, gboolean success, GList* envp); static void deja_dup_operation_real_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); static GList* deja_dup_operation_real_make_argv (DejaDupOperation* self, GError** error); -static void deja_dup_operation_found_passphrase (DejaDupOperation* self, GnomeKeyringResult result, const char* str); -static void _deja_dup_operation_found_passphrase_gnome_keyring_operation_get_string_callback (GnomeKeyringResult result, const char* str, gpointer self); -static void deja_dup_operation_get_passphrase (DejaDupOperation* self); -static void deja_dup_operation_save_password_callback (DejaDupOperation* self, GnomeKeyringResult result); -static void _deja_dup_operation_save_password_callback_gnome_keyring_operation_done_callback (GnomeKeyringResult result, gpointer self); -static gboolean deja_dup_operation_claim_bus (DejaDupOperation* self, gboolean claimed); +void deja_dup_operation_ask_passphrase (DejaDupOperation* self, GError** error); +static void deja_dup_operation_found_passphrase (DejaDupOperation* self, GnomeKeyringResult _result_, const char* str); +static void _deja_dup_operation_found_passphrase_gnome_keyring_operation_get_string_callback (GnomeKeyringResult _result_, const char* str, gpointer self); +static void deja_dup_operation_save_password_callback (DejaDupOperation* self, GnomeKeyringResult _result_); +GtkWindow* deja_dup_operation_get_toplevel (DejaDupOperation* self); +static void _deja_dup_operation_save_password_callback_gnome_keyring_operation_done_callback (GnomeKeyringResult _result_, gpointer self); +void deja_dup_operation_ask_backend_password (DejaDupOperation* self, GError** error); +gboolean deja_dup_set_bus_claimed (const char* busname, gboolean claim); +guint deja_dup_operation_get_uppermost_xid (DejaDupOperation* self); +DejaDupOperationMode deja_dup_duplicity_get_mode (DejaDupDuplicity* self); void _dynamic_Inhibit0 (DBusGProxy* self, const char* param1, guint param2, char* param3, guint param4, guint* param5, GError** error); void _dynamic_Uninhibit1 (DBusGProxy* self, guint param1, GError** error); -static void deja_dup_operation_set_session_inhibited (DejaDupOperation* self, gboolean inhibit); static void deja_dup_operation_set_toplevel (DejaDupOperation* self, GtkWindow* value); static void deja_dup_operation_set_uppermost_xid (DejaDupOperation* self, guint value); static void deja_dup_operation_set_mode (DejaDupOperation* self, DejaDupOperationMode value); -static gboolean __lambda5 (DejaDupOperation* o, DejaDupOperation* self); -static gboolean ___lambda5_deja_dup_operation_passphrase_required (DejaDupOperation* _sender, gpointer self); -static gboolean __lambda6 (DejaDupOperation* o, DejaDupOperation* self); -static gboolean ___lambda6_deja_dup_operation_backend_password_required (DejaDupOperation* _sender, gpointer self); +DejaDupDuplicity* deja_dup_duplicity_new (DejaDupOperationMode mode, GtkWindow* win); +DejaDupDuplicity* deja_dup_duplicity_construct (GType object_type, DejaDupOperationMode mode, GtkWindow* win); +DejaDupBackend* deja_dup_backend_get_default (GtkWindow* win, GError** error); +static gboolean _lambda5_ (DejaDupOperation* o, DejaDupOperation* self); +static gboolean __lambda5__deja_dup_operation_passphrase_required (DejaDupOperation* _sender, gpointer self); +static gboolean _lambda6_ (DejaDupOperation* o, DejaDupOperation* self); +static gboolean __lambda6__deja_dup_operation_backend_password_required (DejaDupOperation* _sender, gpointer self); static GObject * deja_dup_operation_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer deja_dup_operation_parent_class = NULL; static void deja_dup_operation_finalize (GObject* obj); +static void deja_dup_operation_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_operation_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static int _vala_strcmp0 (const char * str1, const char * str2); @@ -90,21 +180,21 @@ switch (mode) { case DEJA_DUP_OPERATION_MODE_BACKUP: { - const char* _tmp0; - _tmp0 = NULL; - return (_tmp0 = _ ("Backing up..."), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + const char* _tmp0_; + _tmp0_ = NULL; + return (_tmp0_ = _ ("Backing up..."), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); } case DEJA_DUP_OPERATION_MODE_RESTORE: { - const char* _tmp2; - _tmp2 = NULL; - return (_tmp2 = _ ("Restoring..."), (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)); + const char* _tmp2_; + _tmp2_ = NULL; + return (_tmp2_ = _ ("Restoring..."), (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)); } case DEJA_DUP_OPERATION_MODE_STATUS: { - const char* _tmp4; - _tmp4 = NULL; - return (_tmp4 = _ ("Checking for backups..."), (_tmp4 == NULL) ? NULL : g_strdup (_tmp4)); + const char* _tmp4_; + _tmp4_ = NULL; + return (_tmp4_ = _ ("Checking for backups..."), (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)); } default: { @@ -115,13 +205,12 @@ static void deja_dup_operation_real_start (DejaDupOperation* self, GError** error) { - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; GConfClient* client; - gboolean _tmp1; - gboolean _tmp2; + gboolean _tmp0_; + gboolean _tmp1_; g_return_if_fail (self != NULL); - inner_error = NULL; + _inner_error_ = NULL; if (self->backend == NULL) { g_signal_emit_by_name (self, "done", FALSE); return; @@ -133,26 +222,25 @@ } deja_dup_operation_set_session_inhibited (self, TRUE); /* Get encryption passphrase if needed*/ - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = FALSE; - _tmp2 = gconf_client_get_bool (client, DEJA_DUP_ENCRYPT_KEY, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + client = deja_dup_get_gconf_client (); + _tmp0_ = FALSE; + _tmp1_ = gconf_client_get_bool (client, DEJA_DUP_ENCRYPT_KEY, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return; } - if (_tmp2) { - _tmp1 = self->passphrase == NULL; + if (_tmp1_) { + _tmp0_ = self->passphrase == NULL; } else { - _tmp1 = FALSE; + _tmp0_ = FALSE; } - if (_tmp1) { + if (_tmp0_) { deja_dup_operation_get_passphrase (self); } else { - deja_dup_operation_continue_with_passphrase (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + deja_dup_operation_continue_with_passphrase (self, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); return; } @@ -177,83 +265,83 @@ } -static void __lambda0 (DejaDupDuplicity* d, const char* s, const char* detail, DejaDupOperation* self) { +static void _lambda0_ (DejaDupDuplicity* d, const char* s, const char* detail, DejaDupOperation* self) { g_return_if_fail (d != NULL); g_return_if_fail (s != NULL); g_signal_emit_by_name (self, "raise-error", s, detail); } -static void ___lambda0_deja_dup_duplicity_raise_error (DejaDupDuplicity* _sender, const char* errstr, const char* detail, gpointer self) { - __lambda0 (_sender, errstr, detail, self); +static void __lambda0__deja_dup_duplicity_raise_error (DejaDupDuplicity* _sender, const char* errstr, const char* detail, gpointer self) { + _lambda0_ (_sender, errstr, detail, self); } -static void __lambda1 (DejaDupDuplicity* d, const char* s, DejaDupOperation* self) { +static void _lambda1_ (DejaDupDuplicity* d, const char* s, DejaDupOperation* self) { g_return_if_fail (d != NULL); g_return_if_fail (s != NULL); g_signal_emit_by_name (self, "action-desc-changed", s); } -static void ___lambda1_deja_dup_duplicity_action_desc_changed (DejaDupDuplicity* _sender, const char* action, gpointer self) { - __lambda1 (_sender, action, self); +static void __lambda1__deja_dup_duplicity_action_desc_changed (DejaDupDuplicity* _sender, const char* action, gpointer self) { + _lambda1_ (_sender, action, self); } -static void __lambda2 (DejaDupDuplicity* d, GFile* f, DejaDupOperation* self) { +static void _lambda2_ (DejaDupDuplicity* d, GFile* f, DejaDupOperation* self) { g_return_if_fail (d != NULL); g_return_if_fail (f != NULL); g_signal_emit_by_name (self, "action-file-changed", f); } -static void ___lambda2_deja_dup_duplicity_action_file_changed (DejaDupDuplicity* _sender, GFile* file, gpointer self) { - __lambda2 (_sender, file, self); +static void __lambda2__deja_dup_duplicity_action_file_changed (DejaDupDuplicity* _sender, GFile* file, gpointer self) { + _lambda2_ (_sender, file, self); } -static void __lambda3 (DejaDupDuplicity* d, double p, DejaDupOperation* self) { +static void _lambda3_ (DejaDupDuplicity* d, double p, DejaDupOperation* self) { g_return_if_fail (d != NULL); g_signal_emit_by_name (self, "progress", p); } -static void ___lambda3_deja_dup_duplicity_progress (DejaDupDuplicity* _sender, double percent, gpointer self) { - __lambda3 (_sender, percent, self); +static void __lambda3__deja_dup_duplicity_progress (DejaDupDuplicity* _sender, double percent, gpointer self) { + _lambda3_ (_sender, percent, self); } -static void _deja_dup_operation_continue_with_envp_deja_dup_backend_envp_ready (DejaDupBackend* _sender, gboolean success, GList* envp, gpointer self) { - deja_dup_operation_continue_with_envp (self, _sender, success, envp); +static void _deja_dup_operation_continue_with_envp_deja_dup_backend_envp_ready (DejaDupBackend* _sender, gboolean success, GList* envp, const char* _error_, gpointer self) { + deja_dup_operation_continue_with_envp (self, _sender, success, envp, _error_); } -static void __lambda4 (DejaDupBackend* b, DejaDupOperation* self) { - gboolean _tmp0; +static void _lambda4_ (DejaDupBackend* b, DejaDupOperation* self) { + gboolean _tmp0_; gboolean can_ask_now; g_return_if_fail (b != NULL); - can_ask_now = (g_signal_emit_by_name (self, "backend-password-required", &_tmp0), _tmp0); + can_ask_now = (g_signal_emit_by_name (self, "backend-password-required", &_tmp0_), _tmp0_); if (can_ask_now) { deja_dup_backend_ask_password (self->backend); } } -static void ___lambda4_deja_dup_backend_need_password (DejaDupBackend* _sender, gpointer self) { - __lambda4 (_sender, self); +static void __lambda4__deja_dup_backend_need_password (DejaDupBackend* _sender, gpointer self) { + _lambda4_ (_sender, self); } static void deja_dup_operation_real_connect_to_dup (DejaDupOperation* self) { g_return_if_fail (self != NULL); g_signal_connect_object (self->dup, "done", (GCallback) _deja_dup_operation_operation_finished_deja_dup_duplicity_done, self, 0); - g_signal_connect (self->dup, "raise-error", (GCallback) ___lambda0_deja_dup_duplicity_raise_error, self); - g_signal_connect (self->dup, "action-desc-changed", (GCallback) ___lambda1_deja_dup_duplicity_action_desc_changed, self); - g_signal_connect (self->dup, "action-file-changed", (GCallback) ___lambda2_deja_dup_duplicity_action_file_changed, self); - g_signal_connect (self->dup, "progress", (GCallback) ___lambda3_deja_dup_duplicity_progress, self); + g_signal_connect (self->dup, "raise-error", (GCallback) __lambda0__deja_dup_duplicity_raise_error, self); + g_signal_connect (self->dup, "action-desc-changed", (GCallback) __lambda1__deja_dup_duplicity_action_desc_changed, self); + g_signal_connect (self->dup, "action-file-changed", (GCallback) __lambda2__deja_dup_duplicity_action_file_changed, self); + g_signal_connect (self->dup, "progress", (GCallback) __lambda3__deja_dup_duplicity_progress, self); g_signal_connect_object (self->backend, "envp-ready", (GCallback) _deja_dup_operation_continue_with_envp_deja_dup_backend_envp_ready, self, 0); - g_signal_connect (self->backend, "need-password", (GCallback) ___lambda4_deja_dup_backend_need_password, self); + g_signal_connect (self->backend, "need-password", (GCallback) __lambda4__deja_dup_backend_need_password, self); } @@ -263,12 +351,12 @@ static void deja_dup_operation_continue_with_passphrase (DejaDupOperation* self, GError** error) { - GError * inner_error; + GError * _inner_error_; g_return_if_fail (self != NULL); - inner_error = NULL; - deja_dup_backend_get_envp (self->backend, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + _inner_error_ = NULL; + deja_dup_backend_get_envp (self->backend, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); return; } } @@ -280,24 +368,27 @@ } -static void deja_dup_operation_continue_with_envp (DejaDupOperation* self, DejaDupBackend* b, gboolean success, GList* envp) { - GError * inner_error; - gboolean _tmp0; +static void deja_dup_operation_continue_with_envp (DejaDupOperation* self, DejaDupBackend* b, gboolean success, GList* envp, const char* _error_) { + GError * _inner_error_; + gboolean _tmp0_; gboolean encrypted; g_return_if_fail (self != NULL); g_return_if_fail (b != NULL); - inner_error = NULL; + _inner_error_ = NULL; if (!success) { + if (_error_ != NULL) { + g_signal_emit_by_name (self, "raise-error", _error_, NULL); + } g_signal_emit_by_name (self, "done", FALSE); return; } - _tmp0 = FALSE; + _tmp0_ = FALSE; if (self->passphrase != NULL) { - _tmp0 = _vala_strcmp0 (self->passphrase, "") != 0; + _tmp0_ = _vala_strcmp0 (self->passphrase, "") != 0; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - encrypted = (_tmp0); + encrypted = _tmp0_; if (encrypted) { envp = g_list_append (envp, g_strdup_printf ("PASSPHRASE=%s", self->passphrase)); } else { @@ -305,28 +396,21 @@ } { GList* argv; - char* target; - argv = deja_dup_operation_make_argv (self, &inner_error); - if (inner_error != NULL) { - goto __catch9_g_error; - goto __finally9; - } - target = deja_dup_backend_get_location (self->backend, &inner_error); - if (inner_error != NULL) { - (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); - goto __catch9_g_error; - goto __finally9; + argv = deja_dup_operation_make_argv (self, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch42_g_error; + goto __finally42; } - deja_dup_duplicity_start (self->dup, self->backend, target, encrypted, argv, envp); + deja_dup_backend_add_argv (self->backend, self->priv->_mode, &argv); + deja_dup_duplicity_start (self->dup, self->backend, encrypted, argv, envp); (argv == NULL) ? NULL : (argv = (_g_list_free_g_free (argv), NULL)); - target = (g_free (target), NULL); } - goto __finally9; - __catch9_g_error: + goto __finally42; + __catch42_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name (self, "raise-error", e->message, NULL); g_signal_emit_by_name (self, "done", FALSE); @@ -334,58 +418,58 @@ return; } } - __finally9: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally42: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } static void deja_dup_operation_real_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled) { - GError * inner_error; - gboolean _tmp0; + GError * _inner_error_; + gboolean _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (dup != NULL); - inner_error = NULL; + _inner_error_ = NULL; deja_dup_operation_set_session_inhibited (self, FALSE); deja_dup_operation_claim_bus (self, FALSE); - _tmp0 = FALSE; + _tmp0_ = FALSE; if (success) { - _tmp0 = _vala_strcmp0 (self->passphrase, "") == 0; + _tmp0_ = _vala_strcmp0 (self->passphrase, "") == 0; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - if (_tmp0) { + if (_tmp0_) { { - GConfClient* _tmp1; + GConfClient* _tmp1_; GConfClient* client; - _tmp1 = NULL; - client = (_tmp1 = gconf_client_get_default (), (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); - gconf_client_set_bool (client, DEJA_DUP_ENCRYPT_KEY, FALSE, &inner_error); - if (inner_error != NULL) { + _tmp1_ = NULL; + client = (_tmp1_ = gconf_client_get_default (), (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); + gconf_client_set_bool (client, DEJA_DUP_ENCRYPT_KEY, FALSE, &_inner_error_); + if (_inner_error_ != NULL) { (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - goto __catch10_g_error; - goto __finally10; + goto __catch43_g_error; + goto __finally43; } (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); } - goto __finally10; - __catch10_g_error: + goto __finally43; + __catch43_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("Operation.vala:165: %s\n", e->message); + g_warning ("Operation.vala:166: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally10: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally43: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -409,60 +493,60 @@ } -static void deja_dup_operation_found_passphrase (DejaDupOperation* self, GnomeKeyringResult result, const char* str) { - GError * inner_error; +static void deja_dup_operation_found_passphrase (DejaDupOperation* self, GnomeKeyringResult _result_, const char* str) { + GError * _inner_error_; g_return_if_fail (self != NULL); - inner_error = NULL; - if (result == GNOME_KEYRING_RESULT_OK) { - char* _tmp1; - const char* _tmp0; - _tmp1 = NULL; - _tmp0 = NULL; - self->passphrase = (_tmp1 = (_tmp0 = str, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)), self->passphrase = (g_free (self->passphrase), NULL), _tmp1); + _inner_error_ = NULL; + if (_result_ == GNOME_KEYRING_RESULT_OK) { + char* _tmp1_; + const char* _tmp0_; + _tmp1_ = NULL; + _tmp0_ = NULL; + self->passphrase = (_tmp1_ = (_tmp0_ = str, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->passphrase = (g_free (self->passphrase), NULL), _tmp1_); } { if (self->passphrase != NULL) { - deja_dup_operation_continue_with_passphrase (self, &inner_error); - if (inner_error != NULL) { - goto __catch11_g_error; - goto __finally11; + deja_dup_operation_continue_with_passphrase (self, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch44_g_error; + goto __finally44; } } else { - gboolean _tmp2; + gboolean _tmp2_; gboolean can_ask_now; - can_ask_now = (g_signal_emit_by_name (self, "passphrase-required", &_tmp2), _tmp2); + can_ask_now = (g_signal_emit_by_name (self, "passphrase-required", &_tmp2_), _tmp2_); if (can_ask_now) { - deja_dup_operation_ask_passphrase (self, &inner_error); - if (inner_error != NULL) { - goto __catch11_g_error; - goto __finally11; + deja_dup_operation_ask_passphrase (self, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch44_g_error; + goto __finally44; } } } } - goto __finally11; - __catch11_g_error: + goto __finally44; + __catch44_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { /* else wait for consumer of Operation to call ask_passphrase*/ - g_warning ("Operation.vala:193: %s\n", e->message); + g_warning ("Operation.vala:194: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally11: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally44: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } -static void _deja_dup_operation_found_passphrase_gnome_keyring_operation_get_string_callback (GnomeKeyringResult result, const char* str, gpointer self) { - deja_dup_operation_found_passphrase (self, result, str); +static void _deja_dup_operation_found_passphrase_gnome_keyring_operation_get_string_callback (GnomeKeyringResult _result_, const char* str, gpointer self) { + deja_dup_operation_found_passphrase (self, _result_, str); } @@ -473,23 +557,25 @@ } -static void deja_dup_operation_save_password_callback (DejaDupOperation* self, GnomeKeyringResult result) { +static void deja_dup_operation_save_password_callback (DejaDupOperation* self, GnomeKeyringResult _result_) { g_return_if_fail (self != NULL); } -static void _deja_dup_operation_save_password_callback_gnome_keyring_operation_done_callback (GnomeKeyringResult result, gpointer self) { - deja_dup_operation_save_password_callback (self, result); +static void _deja_dup_operation_save_password_callback_gnome_keyring_operation_done_callback (GnomeKeyringResult _result_, gpointer self) { + deja_dup_operation_save_password_callback (self, _result_); } void deja_dup_operation_ask_passphrase (DejaDupOperation* self, GError** error) { - GError * inner_error; + GError * _inner_error_; GnomePasswordDialog* dlg; - char* _tmp1; - const char* _tmp0; + char* _tmp1_; + const char* _tmp0_; + char* _tmp3_; + const char* _tmp2_; g_return_if_fail (self != NULL); - inner_error = NULL; + _inner_error_ = NULL; /* Ask user*/ dlg = g_object_ref_sink ((GnomePasswordDialog*) gnome_password_dialog_new (_ ("Encryption Password"), _ ("Enter the password used to encrypt your backup files."), "", "", FALSE)); ((GtkWindow*) dlg)->transient_parent = self->priv->_toplevel; @@ -500,32 +586,35 @@ (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); return; } - _tmp1 = NULL; - _tmp0 = NULL; - self->passphrase = (_tmp1 = (_tmp0 = gnome_password_dialog_get_password (dlg), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)), self->passphrase = (g_free (self->passphrase), NULL), _tmp1); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->passphrase = (_tmp1_ = (_tmp0_ = gnome_password_dialog_get_password (dlg), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->passphrase = (g_free (self->passphrase), NULL), _tmp1_); + _tmp3_ = NULL; + _tmp2_ = NULL; + self->passphrase = (_tmp3_ = (_tmp2_ = g_strstrip (self->passphrase), (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)), self->passphrase = (g_free (self->passphrase), NULL), _tmp3_); if (_vala_strcmp0 (self->passphrase, "") != 0) { GnomePasswordDialogRemember remember; /* Save it*/ remember = gnome_password_dialog_get_remember (dlg); if (remember != GNOME_PASSWORD_DIALOG_REMEMBER_NOTHING) { - const char* _tmp2; - const char* _tmp3; + const char* _tmp4_; + const char* _tmp5_; char* where; - _tmp2 = NULL; + _tmp4_ = NULL; if (remember == GNOME_PASSWORD_DIALOG_REMEMBER_SESSION) { - _tmp2 = "session"; + _tmp4_ = "session"; } else { - _tmp2 = GNOME_KEYRING_DEFAULT; + _tmp4_ = GNOME_KEYRING_DEFAULT; } - _tmp3 = NULL; - where = (_tmp3 = _tmp2, (_tmp3 == NULL) ? NULL : g_strdup (_tmp3)); + _tmp5_ = NULL; + where = (_tmp5_ = _tmp4_, (_tmp5_ == NULL) ? NULL : g_strdup (_tmp5_)); gnome_keyring_store_password (PASSPHRASE_SCHEMA, where, _ ("Déjà Dup backup passphrase"), self->passphrase, _deja_dup_operation_save_password_callback_gnome_keyring_operation_done_callback, g_object_ref (self), g_object_unref, "owner", PACKAGE, "type", "passphrase", NULL); where = (g_free (where), NULL); } } - deja_dup_operation_continue_with_passphrase (self, &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + deja_dup_operation_continue_with_passphrase (self, &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); return; } @@ -541,16 +630,16 @@ static gboolean deja_dup_operation_claim_bus (DejaDupOperation* self, gboolean claimed) { gboolean rv; - gboolean _tmp0; + gboolean _tmp0_; g_return_val_if_fail (self != NULL, FALSE); rv = deja_dup_set_bus_claimed ("operation", claimed); - _tmp0 = FALSE; + _tmp0_ = FALSE; if (claimed) { - _tmp0 = !rv; + _tmp0_ = !rv; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - if (_tmp0) { + if (_tmp0_) { g_signal_emit_by_name (self, "raise-error", _ ("Another Déjà Dup is already running"), NULL); } return rv; @@ -566,7 +655,7 @@ void _dynamic_Uninhibit1 (DBusGProxy* self, guint param1, GError** error) { - dbus_g_proxy_call_no_reply (self, "Uninhibit", G_TYPE_UINT, param1, G_TYPE_INVALID); + dbus_g_proxy_call (self, "Uninhibit", error, G_TYPE_UINT, param1, G_TYPE_INVALID, G_TYPE_INVALID); if (*error) { return; } @@ -574,22 +663,22 @@ static void deja_dup_operation_set_session_inhibited (DejaDupOperation* self, gboolean inhibit) { - GError * inner_error; + GError * _inner_error_; g_return_if_fail (self != NULL); - inner_error = NULL; + _inner_error_ = NULL; { DBusGConnection* conn; DBusGProxy* obj; - conn = dbus_g_bus_get (DBUS_BUS_SESSION, &inner_error); - if (inner_error != NULL) { - goto __catch12_g_error; - goto __finally12; + conn = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch45_g_error; + goto __finally45; } obj = dbus_g_proxy_new_for_name (conn, "org.gnome.SessionManager", "/org/gnome/SessionManager", "org.gnome.SessionManager"); if (inhibit) { guint xid; - gboolean _tmp0; - char* _tmp1; + gboolean _tmp0_; + char* _tmp2_; if (self->priv->inhibit_cookie > 0) { (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)); (obj == NULL) ? NULL : (obj = (g_object_unref (obj), NULL)); @@ -597,33 +686,36 @@ } /* already inhibited*/ xid = self->priv->_uppermost_xid; - _tmp0 = FALSE; + _tmp0_ = FALSE; if (xid == 0) { - _tmp0 = self->priv->_toplevel != NULL; + _tmp0_ = self->priv->_toplevel != NULL; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - if (_tmp0) { + if (_tmp0_) { + GdkWindow* _tmp1_; gtk_widget_realize ((GtkWidget*) self->priv->_toplevel); - xid = (guint) gdk_x11_drawable_get_xid ((GdkDrawable*) ((GtkWidget*) self->priv->_toplevel)->window); - } - _tmp1 = NULL; - _dynamic_Inhibit0 (obj, PACKAGE, xid, _tmp1 = deja_dup_operation_mode_to_string (deja_dup_duplicity_get_mode (self->dup)), (guint) (1 | 4), &self->priv->inhibit_cookie, &inner_error); - if (inner_error != NULL) { + _tmp1_ = NULL; + xid = (guint) gdk_x11_drawable_get_xid ((GdkDrawable*) (_tmp1_ = hacks_widget_get_window ((GtkWidget*) self->priv->_toplevel))); + (_tmp1_ == NULL) ? NULL : (_tmp1_ = (g_object_unref (_tmp1_), NULL)); + } + _tmp2_ = NULL; + _dynamic_Inhibit0 (obj, PACKAGE, xid, _tmp2_ = deja_dup_operation_mode_to_string (deja_dup_duplicity_get_mode (self->dup)), (guint) (1 | 4), &self->priv->inhibit_cookie, &_inner_error_); + if (_inner_error_ != NULL) { (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)); (obj == NULL) ? NULL : (obj = (g_object_unref (obj), NULL)); - goto __catch12_g_error; - goto __finally12; + goto __catch45_g_error; + goto __finally45; } - _tmp1 = (g_free (_tmp1), NULL); + _tmp2_ = (g_free (_tmp2_), NULL); } else { if (self->priv->inhibit_cookie > 0) { - _dynamic_Uninhibit1 (obj, self->priv->inhibit_cookie, &inner_error); - if (inner_error != NULL) { + _dynamic_Uninhibit1 (obj, self->priv->inhibit_cookie, &_inner_error_); + if (_inner_error_ != NULL) { (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)); (obj == NULL) ? NULL : (obj = (g_object_unref (obj), NULL)); - goto __catch12_g_error; - goto __finally12; + goto __catch45_g_error; + goto __finally45; } self->priv->inhibit_cookie = (guint) 0; } @@ -631,21 +723,21 @@ (conn == NULL) ? NULL : (conn = (dbus_g_connection_unref (conn), NULL)); (obj == NULL) ? NULL : (obj = (g_object_unref (obj), NULL)); } - goto __finally12; - __catch12_g_error: + goto __finally45; + __catch45_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - g_warning ("Operation.vala:289: %s\n", e->message); + g_warning ("Operation.vala:291: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally12: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally45: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -658,12 +750,12 @@ static void deja_dup_operation_set_toplevel (DejaDupOperation* self, GtkWindow* value) { - GtkWindow* _tmp2; - GtkWindow* _tmp1; + GtkWindow* _tmp2_; + GtkWindow* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_toplevel = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_toplevel = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_toplevel == NULL) ? NULL : (self->priv->_toplevel = (g_object_unref (self->priv->_toplevel), NULL)), _tmp2_); g_object_notify ((GObject *) self, "toplevel"); } @@ -694,25 +786,25 @@ } -static gboolean __lambda5 (DejaDupOperation* o, DejaDupOperation* self) { +static gboolean _lambda5_ (DejaDupOperation* o, DejaDupOperation* self) { g_return_val_if_fail (o != NULL, FALSE); return TRUE; } -static gboolean ___lambda5_deja_dup_operation_passphrase_required (DejaDupOperation* _sender, gpointer self) { - return __lambda5 (_sender, self); +static gboolean __lambda5__deja_dup_operation_passphrase_required (DejaDupOperation* _sender, gpointer self) { + return _lambda5_ (_sender, self); } -static gboolean __lambda6 (DejaDupOperation* o, DejaDupOperation* self) { +static gboolean _lambda6_ (DejaDupOperation* o, DejaDupOperation* self) { g_return_val_if_fail (o != NULL, FALSE); return TRUE; } -static gboolean ___lambda6_deja_dup_operation_backend_password_required (DejaDupOperation* _sender, gpointer self) { - return __lambda6 (_sender, self); +static gboolean __lambda6__deja_dup_operation_backend_password_required (DejaDupOperation* _sender, gpointer self) { + return _lambda6_ (_sender, self); } @@ -721,102 +813,61 @@ DejaDupOperationClass * klass; GObjectClass * parent_class; DejaDupOperation * self; - GError * inner_error; + GError * _inner_error_; klass = DEJA_DUP_OPERATION_CLASS (g_type_class_peek (DEJA_DUP_TYPE_OPERATION)); parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); obj = parent_class->constructor (type, n_construct_properties, construct_properties); self = DEJA_DUP_OPERATION (obj); - inner_error = NULL; + _inner_error_ = NULL; { - DejaDupDuplicity* _tmp0; - _tmp0 = NULL; - self->dup = (_tmp0 = deja_dup_duplicity_new (self->priv->_mode, self->priv->_toplevel), (self->dup == NULL) ? NULL : (self->dup = (g_object_unref (self->dup), NULL)), _tmp0); - { - DejaDupBackend* _tmp1; - DejaDupBackend* _tmp2; - _tmp1 = deja_dup_backend_get_default (self->priv->_toplevel, &inner_error); - if (inner_error != NULL) { - goto __catch13_g_error; - goto __finally13; + DejaDupDuplicity* _tmp0_; + _tmp0_ = NULL; + self->dup = (_tmp0_ = deja_dup_duplicity_new (self->priv->_mode, self->priv->_toplevel), (self->dup == NULL) ? NULL : (self->dup = (g_object_unref (self->dup), NULL)), _tmp0_); + { + DejaDupBackend* _tmp1_; + DejaDupBackend* _tmp2_; + _tmp1_ = deja_dup_backend_get_default (self->priv->_toplevel, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch46_g_error; + goto __finally46; } - _tmp2 = NULL; - self->backend = (_tmp2 = _tmp1, (self->backend == NULL) ? NULL : (self->backend = (g_object_unref (self->backend), NULL)), _tmp2); + _tmp2_ = NULL; + self->backend = (_tmp2_ = _tmp1_, (self->backend == NULL) ? NULL : (self->backend = (g_object_unref (self->backend), NULL)), _tmp2_); } - goto __finally13; - __catch13_g_error: + goto __finally46; + __catch46_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_warning ("Operation.vala:70: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally13: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally46: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); } - g_signal_connect (self, "passphrase-required", (GCallback) ___lambda5_deja_dup_operation_passphrase_required, self); - g_signal_connect (self, "backend-password-required", (GCallback) ___lambda6_deja_dup_operation_backend_password_required, self); + g_signal_connect (self, "passphrase-required", (GCallback) __lambda5__deja_dup_operation_passphrase_required, self); + g_signal_connect (self, "backend-password-required", (GCallback) __lambda6__deja_dup_operation_backend_password_required, self); } return obj; } -static void deja_dup_operation_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - DejaDupOperation * self; - gpointer boxed; - self = DEJA_DUP_OPERATION (object); - switch (property_id) { - case DEJA_DUP_OPERATION_TOPLEVEL: - g_value_set_object (value, deja_dup_operation_get_toplevel (self)); - break; - case DEJA_DUP_OPERATION_UPPERMOST_XID: - g_value_set_uint (value, deja_dup_operation_get_uppermost_xid (self)); - break; - case DEJA_DUP_OPERATION_MODE: - g_value_set_enum (value, deja_dup_operation_get_mode (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void deja_dup_operation_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - DejaDupOperation * self; - self = DEJA_DUP_OPERATION (object); - switch (property_id) { - case DEJA_DUP_OPERATION_TOPLEVEL: - deja_dup_operation_set_toplevel (self, g_value_get_object (value)); - break; - case DEJA_DUP_OPERATION_UPPERMOST_XID: - deja_dup_operation_set_uppermost_xid (self, g_value_get_uint (value)); - break; - case DEJA_DUP_OPERATION_MODE: - deja_dup_operation_set_mode (self, g_value_get_enum (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - static void deja_dup_operation_class_init (DejaDupOperationClass * klass) { deja_dup_operation_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (DejaDupOperationPrivate)); - G_OBJECT_CLASS (klass)->get_property = deja_dup_operation_get_property; - G_OBJECT_CLASS (klass)->set_property = deja_dup_operation_set_property; - G_OBJECT_CLASS (klass)->constructor = deja_dup_operation_constructor; - G_OBJECT_CLASS (klass)->finalize = deja_dup_operation_finalize; DEJA_DUP_OPERATION_CLASS (klass)->start = deja_dup_operation_real_start; DEJA_DUP_OPERATION_CLASS (klass)->connect_to_dup = deja_dup_operation_real_connect_to_dup; DEJA_DUP_OPERATION_CLASS (klass)->operation_finished = deja_dup_operation_real_operation_finished; DEJA_DUP_OPERATION_CLASS (klass)->make_argv = deja_dup_operation_real_make_argv; + G_OBJECT_CLASS (klass)->get_property = deja_dup_operation_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_operation_set_property; + G_OBJECT_CLASS (klass)->constructor = deja_dup_operation_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_operation_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_OPERATION_TOPLEVEL, g_param_spec_object ("toplevel", "toplevel", "toplevel", GTK_TYPE_WINDOW, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_OPERATION_UPPERMOST_XID, g_param_spec_uint ("uppermost-xid", "uppermost-xid", "uppermost-xid", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_OPERATION_MODE, g_param_spec_enum ("mode", "mode", "mode", DEJA_DUP_OPERATION_TYPE_MODE, DEJA_DUP_OPERATION_MODE_INVALID, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); @@ -858,6 +909,47 @@ } +static void deja_dup_operation_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupOperation * self; + gpointer boxed; + self = DEJA_DUP_OPERATION (object); + switch (property_id) { + case DEJA_DUP_OPERATION_TOPLEVEL: + g_value_set_object (value, deja_dup_operation_get_toplevel (self)); + break; + case DEJA_DUP_OPERATION_UPPERMOST_XID: + g_value_set_uint (value, deja_dup_operation_get_uppermost_xid (self)); + break; + case DEJA_DUP_OPERATION_MODE: + g_value_set_enum (value, deja_dup_operation_get_mode (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_operation_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupOperation * self; + self = DEJA_DUP_OPERATION (object); + switch (property_id) { + case DEJA_DUP_OPERATION_TOPLEVEL: + deja_dup_operation_set_toplevel (self, g_value_get_object (value)); + break; + case DEJA_DUP_OPERATION_UPPERMOST_XID: + deja_dup_operation_set_uppermost_xid (self, g_value_get_uint (value)); + break; + case DEJA_DUP_OPERATION_MODE: + deja_dup_operation_set_mode (self, g_value_get_enum (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + static int _vala_strcmp0 (const char * str1, const char * str2) { if (str1 == NULL) { return -(str1 != str2); diff -Nru deja-dup-7.4/libdeja-dup/Operation.h deja-dup-10.0/libdeja-dup/Operation.h --- deja-dup-7.4/libdeja-dup/Operation.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Operation.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,75 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __OPERATION_H__ -#define __OPERATION_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include <gtk/gtk.h> -#include <gio/gio.h> -#include <float.h> -#include <math.h> -#include <Backend.h> - -G_BEGIN_DECLS - -typedef struct _DejaDupDuplicity DejaDupDuplicity; -typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass; -typedef struct _DejaDupOperation DejaDupOperation; -typedef struct _DejaDupOperationClass DejaDupOperationClass; - -#define DEJA_DUP_TYPE_OPERATION (deja_dup_operation_get_type ()) -#define DEJA_DUP_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperation)) -#define DEJA_DUP_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) -#define DEJA_DUP_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION)) -#define DEJA_DUP_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION)) -#define DEJA_DUP_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) - -typedef struct _DejaDupOperationPrivate DejaDupOperationPrivate; - -#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) - -struct _DejaDupOperation { - GObject parent_instance; - DejaDupOperationPrivate * priv; - DejaDupDuplicity* dup; - DejaDupBackend* backend; - char* passphrase; -}; - -struct _DejaDupOperationClass { - GObjectClass parent_class; - void (*start) (DejaDupOperation* self, GError** error); - void (*connect_to_dup) (DejaDupOperation* self); - void (*operation_finished) (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); - GList* (*make_argv) (DejaDupOperation* self, GError** error); -}; - -typedef enum { - DEJA_DUP_OPERATION_MODE_INVALID, - DEJA_DUP_OPERATION_MODE_BACKUP, - DEJA_DUP_OPERATION_MODE_RESTORE, - DEJA_DUP_OPERATION_MODE_STATUS -} DejaDupOperationMode; - - -GType deja_dup_operation_mode_get_type (void); -char* deja_dup_operation_mode_to_string (DejaDupOperationMode mode); -void deja_dup_operation_start (DejaDupOperation* self, GError** error); -void deja_dup_operation_cancel (DejaDupOperation* self); -void deja_dup_operation_connect_to_dup (DejaDupOperation* self); -void deja_dup_operation_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); -GList* deja_dup_operation_make_argv (DejaDupOperation* self, GError** error); -void deja_dup_operation_ask_passphrase (DejaDupOperation* self, GError** error); -void deja_dup_operation_ask_backend_password (DejaDupOperation* self, GError** error); -GtkWindow* deja_dup_operation_get_toplevel (DejaDupOperation* self); -guint deja_dup_operation_get_uppermost_xid (DejaDupOperation* self); -DejaDupOperationMode deja_dup_operation_get_mode (DejaDupOperation* self); -GType deja_dup_operation_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/OperationRestore.c deja-dup-10.0/libdeja-dup/OperationRestore.c --- deja-dup-7.4/libdeja-dup/OperationRestore.c 2009-02-11 20:35:26.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationRestore.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,16 +1,113 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <OperationRestore.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> #include <gio/gio.h> +#include <gtk/gtk.h> #include <glib/gi18n-lib.h> -#include <gconf/gconf-client.h> #include <glib/gstdio.h> -#include <RecursiveMove.h> -#include <RecursiveOp.h> -#include <RecursiveDelete.h> +#define DEJA_DUP_TYPE_OPERATION (deja_dup_operation_get_type ()) +#define DEJA_DUP_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperation)) +#define DEJA_DUP_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) +#define DEJA_DUP_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) + +typedef struct _DejaDupOperation DejaDupOperation; +typedef struct _DejaDupOperationClass DejaDupOperationClass; +typedef struct _DejaDupOperationPrivate DejaDupOperationPrivate; + +#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ()) +#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity)) +#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) +#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) + +typedef struct _DejaDupDuplicity DejaDupDuplicity; +typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass; + +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; + +#define DEJA_DUP_TYPE_OPERATION_RESTORE (deja_dup_operation_restore_get_type ()) +#define DEJA_DUP_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestore)) +#define DEJA_DUP_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass)) +#define DEJA_DUP_IS_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE)) +#define DEJA_DUP_IS_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE)) +#define DEJA_DUP_OPERATION_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass)) + +typedef struct _DejaDupOperationRestore DejaDupOperationRestore; +typedef struct _DejaDupOperationRestoreClass DejaDupOperationRestoreClass; +typedef struct _DejaDupOperationRestorePrivate DejaDupOperationRestorePrivate; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +#define DEJA_DUP_TYPE_RECURSIVE_OP (deja_dup_recursive_op_get_type ()) +#define DEJA_DUP_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOp)) +#define DEJA_DUP_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) +#define DEJA_DUP_IS_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_IS_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_RECURSIVE_OP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) + +typedef struct _DejaDupRecursiveOp DejaDupRecursiveOp; +typedef struct _DejaDupRecursiveOpClass DejaDupRecursiveOpClass; + +#define DEJA_DUP_TYPE_RECURSIVE_MOVE (deja_dup_recursive_move_get_type ()) +#define DEJA_DUP_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMove)) +#define DEJA_DUP_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) +#define DEJA_DUP_IS_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE)) +#define DEJA_DUP_IS_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE)) +#define DEJA_DUP_RECURSIVE_MOVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) + +typedef struct _DejaDupRecursiveMove DejaDupRecursiveMove; +typedef struct _DejaDupRecursiveMoveClass DejaDupRecursiveMoveClass; + +#define DEJA_DUP_TYPE_RECURSIVE_DELETE (deja_dup_recursive_delete_get_type ()) +#define DEJA_DUP_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDelete)) +#define DEJA_DUP_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) +#define DEJA_DUP_IS_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE)) +#define DEJA_DUP_IS_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE)) +#define DEJA_DUP_RECURSIVE_DELETE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) + +typedef struct _DejaDupRecursiveDelete DejaDupRecursiveDelete; +typedef struct _DejaDupRecursiveDeleteClass DejaDupRecursiveDeleteClass; + +struct _DejaDupOperation { + GObject parent_instance; + DejaDupOperationPrivate * priv; + DejaDupDuplicity* dup; + DejaDupBackend* backend; + char* passphrase; +}; + +struct _DejaDupOperationClass { + GObjectClass parent_class; + void (*start) (DejaDupOperation* self, GError** error); + void (*connect_to_dup) (DejaDupOperation* self); + void (*operation_finished) (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); + GList* (*make_argv) (DejaDupOperation* self, GError** error); +}; +struct _DejaDupOperationRestore { + DejaDupOperation parent_instance; + DejaDupOperationRestorePrivate * priv; +}; + +struct _DejaDupOperationRestoreClass { + DejaDupOperationClass parent_class; +}; struct _DejaDupOperationRestorePrivate { char* dest; @@ -20,6 +117,19 @@ GList* _restore_files; }; +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; + + + +GType deja_dup_operation_get_type (void); +GType deja_dup_duplicity_get_type (void); +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_restore_get_type (void); #define DEJA_DUP_OPERATION_RESTORE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestorePrivate)) enum { DEJA_DUP_OPERATION_RESTORE_DUMMY_PROPERTY, @@ -27,18 +137,43 @@ }; static void _g_list_free_g_free (GList* self); static void _g_list_free_g_object_unref (GList* self); +static void deja_dup_operation_set_toplevel (DejaDupOperation* self, GtkWindow* value); +static void deja_dup_operation_set_uppermost_xid (DejaDupOperation* self, guint value); +void deja_dup_operation_restore_set_restore_files (DejaDupOperationRestore* self, GList* value); +GList* deja_dup_operation_restore_get_restore_files (DejaDupOperationRestore* self); +void deja_dup_duplicity_set_restore_files (DejaDupDuplicity* self, GList* value); +GType deja_dup_operation_mode_get_type (void); +static void deja_dup_operation_set_mode (DejaDupOperation* self, DejaDupOperationMode value); +DejaDupOperationRestore* deja_dup_operation_restore_new (GtkWindow* win, const char* dest_in, const char* time_in, GList* files_in, guint xid); +DejaDupOperationRestore* deja_dup_operation_restore_construct (GType object_type, GtkWindow* win, const char* dest_in, const char* time_in, GList* files_in, guint xid); +DejaDupOperationRestore* deja_dup_operation_restore_new (GtkWindow* win, const char* dest_in, const char* time_in, GList* files_in, guint xid); +void deja_dup_operation_start (DejaDupOperation* self, GError** error); static void deja_dup_operation_restore_real_start (DejaDupOperation* base, GError** error); +void deja_dup_duplicity_set_local (DejaDupDuplicity* self, const char* value); static GList* deja_dup_operation_restore_real_make_argv (DejaDupOperation* base, GError** error); -static void deja_dup_operation_restore_real_operation_finished (DejaDupOperation* base, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); static void deja_dup_operation_restore_fixup_home_dir (DejaDupOperationRestore* self); -static void deja_dup_operation_restore_show_errors (DejaDupOperationRestore* self); -static void deja_dup_operation_restore_add_error (DejaDupOperationRestore* self, const char* relpath, const char* errstr); -static void deja_dup_operation_restore_mv_error (DejaDupOperationRestore* self, DejaDupRecursiveMove* move, GFile* src, GFile* dst, const char* errstr); -static void _deja_dup_operation_restore_mv_error_deja_dup_recursive_op_raise_error (DejaDupRecursiveMove* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self); static gboolean deja_dup_operation_restore_mv_source_to_dest (DejaDupOperationRestore* self); +void deja_dup_update_last_run_timestamp (GError** error); static void deja_dup_operation_restore_cleanup_source (DejaDupOperationRestore* self); +void deja_dup_operation_operation_finished (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); +static void deja_dup_operation_restore_real_operation_finished (DejaDupOperation* base, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); +static void deja_dup_operation_restore_show_errors (DejaDupOperationRestore* self); +static void deja_dup_operation_restore_add_error (DejaDupOperationRestore* self, const char* relpath, const char* errstr); +GType deja_dup_recursive_op_get_type (void); +static void deja_dup_operation_restore_mv_error (DejaDupOperationRestore* self, DejaDupRecursiveOp* move, GFile* src, GFile* dst, const char* errstr); +DejaDupRecursiveMove* deja_dup_recursive_move_new (GFile* source, GFile* dest); +DejaDupRecursiveMove* deja_dup_recursive_move_construct (GType object_type, GFile* source, GFile* dest); +GType deja_dup_recursive_move_get_type (void); +static void _deja_dup_operation_restore_mv_error_deja_dup_recursive_op_raise_error (DejaDupRecursiveOp* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self); +void deja_dup_recursive_op_start (DejaDupRecursiveOp* self); +DejaDupRecursiveDelete* deja_dup_recursive_delete_new (GFile* source); +DejaDupRecursiveDelete* deja_dup_recursive_delete_construct (GType object_type, GFile* source); +GType deja_dup_recursive_delete_get_type (void); static gpointer deja_dup_operation_restore_parent_class = NULL; static void deja_dup_operation_restore_finalize (GObject* obj); +static void deja_dup_operation_restore_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_operation_restore_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static int _vala_strcmp0 (const char * str1, const char * str2); @@ -60,10 +195,10 @@ GParameter * __params; GParameter * __params_it; DejaDupOperationRestore * self; - char* _tmp1; - const char* _tmp0; - char* _tmp3; - const char* _tmp2; + char* _tmp1_; + const char* _tmp0_; + char* _tmp3_; + const char* _tmp2_; g_return_val_if_fail (dest_in != NULL, NULL); __params = g_new0 (GParameter, 3); __params_it = __params; @@ -80,12 +215,12 @@ g_value_set_enum (&__params_it->value, DEJA_DUP_OPERATION_MODE_RESTORE); __params_it++; self = g_object_newv (object_type, __params_it - __params, __params); - _tmp1 = NULL; - _tmp0 = NULL; - self->priv->dest = (_tmp1 = (_tmp0 = dest_in, (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)), self->priv->dest = (g_free (self->priv->dest), NULL), _tmp1); - _tmp3 = NULL; - _tmp2 = NULL; - self->priv->time = (_tmp3 = (_tmp2 = time_in, (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)), self->priv->time = (g_free (self->priv->time), NULL), _tmp3); + _tmp1_ = NULL; + _tmp0_ = NULL; + self->priv->dest = (_tmp1_ = (_tmp0_ = dest_in, (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)), self->priv->dest = (g_free (self->priv->dest), NULL), _tmp1_); + _tmp3_ = NULL; + _tmp2_ = NULL; + self->priv->time = (_tmp3_ = (_tmp2_ = time_in, (_tmp2_ == NULL) ? NULL : g_strdup (_tmp2_)), self->priv->time = (g_free (self->priv->time), NULL), _tmp3_); deja_dup_operation_restore_set_restore_files (self, files_in); deja_dup_duplicity_set_restore_files (((DejaDupOperation*) self)->dup, deja_dup_operation_restore_get_restore_files (self)); while (__params_it > __params) { @@ -104,13 +239,13 @@ static void deja_dup_operation_restore_real_start (DejaDupOperation* base, GError** error) { DejaDupOperationRestore * self; - GError * inner_error; + GError * _inner_error_; self = (DejaDupOperationRestore*) base; - inner_error = NULL; + _inner_error_ = NULL; g_signal_emit_by_name ((DejaDupOperation*) self, "action-desc-changed", _ ("Restoring files...")); - DEJA_DUP_OPERATION_CLASS (deja_dup_operation_restore_parent_class)->start (DEJA_DUP_OPERATION (self), &inner_error); - if (inner_error != NULL) { - g_propagate_error (error, inner_error); + DEJA_DUP_OPERATION_CLASS (deja_dup_operation_restore_parent_class)->start (DEJA_DUP_OPERATION (self), &_inner_error_); + if (_inner_error_ != NULL) { + g_propagate_error (error, _inner_error_); return; } } @@ -118,39 +253,62 @@ static GList* deja_dup_operation_restore_real_make_argv (DejaDupOperation* base, GError** error) { DejaDupOperationRestore * self; - GConfClient* _tmp0; - GConfClient* client; - char* _tmp1; - char* _tmp3; - const char* _tmp2; + char* _tmp0_; + char* _tmp2_; + const char* _tmp1_; GList* argv; - GList* _tmp4; self = (DejaDupOperationRestore*) base; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - _tmp1 = NULL; - self->priv->source = (_tmp1 = g_build_filename (g_get_tmp_dir (), "deja-dup-XXXXXX", NULL), self->priv->source = (g_free (self->priv->source), NULL), _tmp1); - _tmp3 = NULL; - _tmp2 = NULL; - self->priv->source = (_tmp3 = (_tmp2 = mkdtemp (self->priv->source), (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)), self->priv->source = (g_free (self->priv->source), NULL), _tmp3); + _tmp0_ = NULL; + self->priv->source = (_tmp0_ = g_build_filename (g_get_tmp_dir (), "deja-dup-XXXXXX", NULL), self->priv->source = (g_free (self->priv->source), NULL), _tmp0_); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->source = (_tmp2_ = (_tmp1_ = mkdtemp (self->priv->source), (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), self->priv->source = (g_free (self->priv->source), NULL), _tmp2_); argv = NULL; if (self->priv->time != NULL) { argv = g_list_append (argv, g_strdup_printf ("--restore-time=%s", self->priv->time)); } deja_dup_duplicity_set_local (((DejaDupOperation*) self)->dup, self->priv->source); - _tmp4 = NULL; - return (_tmp4 = argv, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), _tmp4); + return argv; } static void deja_dup_operation_restore_real_operation_finished (DejaDupOperation* base, DejaDupDuplicity* dup, gboolean success, gboolean cancelled) { DejaDupOperationRestore * self; + GError * _inner_error_; self = (DejaDupOperationRestore*) base; g_return_if_fail (dup != NULL); + _inner_error_ = NULL; + if (success) { + } if (success) { deja_dup_operation_restore_fixup_home_dir (self); if (!deja_dup_operation_restore_mv_source_to_dest (self)) { success = FALSE; + } else { + { + deja_dup_update_last_run_timestamp (&_inner_error_); + if (_inner_error_ != NULL) { + goto __catch48_g_error; + goto __finally48; + } + } + goto __finally48; + __catch48_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + g_warning ("OperationRestore.vala:88: %s\n", e->message); + (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); + } + } + __finally48: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); + return; + } } } else { if (!cancelled) { @@ -174,13 +332,13 @@ * to its destination. */ static void deja_dup_operation_restore_fixup_home_dir (DejaDupOperationRestore* self) { - GError * inner_error; + GError * _inner_error_; char* ideal_home; char* current_home; char* strd; GDir* d; g_return_if_fail (self != NULL); - inner_error = NULL; + _inner_error_ = NULL; ideal_home = g_build_filename (self->priv->source, g_get_home_dir (), NULL); if (g_file_test (ideal_home, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)) { ideal_home = (g_free (ideal_home), NULL); @@ -192,47 +350,47 @@ strd = g_build_filename (self->priv->source, "home", NULL); d = NULL; { - GDir* _tmp0; - GDir* _tmp1; - _tmp0 = g_dir_open (strd, 0, &inner_error); - if (inner_error != NULL) { - if (inner_error->domain == G_FILE_ERROR) { - goto __catch15_g_file_error; + GDir* _tmp0_; + GDir* _tmp1_; + _tmp0_ = g_dir_open (strd, 0, &_inner_error_); + if (_inner_error_ != NULL) { + if (_inner_error_->domain == G_FILE_ERROR) { + goto __catch49_g_file_error; } - goto __finally15; + goto __finally49; } - _tmp1 = NULL; - d = (_tmp1 = _tmp0, (d == NULL) ? NULL : (d = (g_dir_close (d), NULL)), _tmp1); + _tmp1_ = NULL; + d = (_tmp1_ = _tmp0_, (d == NULL) ? NULL : (d = (g_dir_close (d), NULL)), _tmp1_); } - goto __finally15; - __catch15_g_file_error: + goto __finally49; + __catch49_g_file_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - GDir* _tmp2; - _tmp2 = NULL; - d = (_tmp2 = NULL, (d == NULL) ? NULL : (d = (g_dir_close (d), NULL)), _tmp2); + GDir* _tmp2_; + _tmp2_ = NULL; + d = (_tmp2_ = NULL, (d == NULL) ? NULL : (d = (g_dir_close (d), NULL)), _tmp2_); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally15: - if (inner_error != NULL) { + __finally49: + if (_inner_error_ != NULL) { ideal_home = (g_free (ideal_home), NULL); current_home = (g_free (current_home), NULL); strd = (g_free (strd), NULL); (d == NULL) ? NULL : (d = (g_dir_close (d), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } if (d != NULL) { - const char* _tmp3; + const char* _tmp3_; char* child; const char* end; - _tmp3 = NULL; - child = (_tmp3 = g_dir_read_name (d), (_tmp3 == NULL) ? NULL : g_strdup (_tmp3)); + _tmp3_ = NULL; + child = (_tmp3_ = g_dir_read_name (d), (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)); end = g_dir_read_name (d); if (end != NULL) { child = (g_free (child), NULL); @@ -244,27 +402,27 @@ } /* more than one home dir, we don't know which they want*/ if (child != NULL) { - char* _tmp4; + char* _tmp4_; /* exactly one home dir, will rename*/ - _tmp4 = NULL; - current_home = (_tmp4 = g_build_filename (strd, child, NULL), current_home = (g_free (current_home), NULL), _tmp4); + _tmp4_ = NULL; + current_home = (_tmp4_ = g_build_filename (strd, child, NULL), current_home = (g_free (current_home), NULL), _tmp4_); if (!g_file_test (current_home, G_FILE_TEST_IS_DIR)) { - char* _tmp5; - _tmp5 = NULL; - current_home = (_tmp5 = NULL, current_home = (g_free (current_home), NULL), _tmp5); + char* _tmp5_; + _tmp5_ = NULL; + current_home = (_tmp5_ = NULL, current_home = (g_free (current_home), NULL), _tmp5_); } } child = (g_free (child), NULL); } if (current_home == NULL) { - char* _tmp6; + char* _tmp6_; /* hmm, no home dirs... Check /root*/ - _tmp6 = NULL; - current_home = (_tmp6 = g_build_filename (self->priv->source, "root", NULL), current_home = (g_free (current_home), NULL), _tmp6); + _tmp6_ = NULL; + current_home = (_tmp6_ = g_build_filename (self->priv->source, "root", NULL), current_home = (g_free (current_home), NULL), _tmp6_); if (!g_file_test (current_home, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)) { - char* _tmp7; - _tmp7 = NULL; - current_home = (_tmp7 = NULL, current_home = (g_free (current_home), NULL), _tmp7); + char* _tmp7_; + _tmp7_ = NULL; + current_home = (_tmp7_ = NULL, current_home = (g_free (current_home), NULL), _tmp7_); } } if (current_home != NULL) { @@ -293,51 +451,51 @@ len = g_list_length (self->priv->errors); detail = NULL; if (len > 1) { - char** _tmp0; + char** _tmp0_; gint error_array_size; gint error_array_length1; char** error_array; gint i; - char* _tmp5; - char* _tmp6; - _tmp0 = NULL; - error_array = (_tmp0 = g_new0 (char*, (len + 1) + 1), error_array_length1 = len + 1, error_array_size = error_array_length1, _tmp0); + char* _tmp5_; + char* _tmp6_; + _tmp0_ = NULL; + error_array = (_tmp0_ = g_new0 (char*, (len + 1) + 1), error_array_length1 = len + 1, error_array_size = error_array_length1, _tmp0_); i = 0; { GList* err_collection; GList* err_it; err_collection = self->priv->errors; for (err_it = err_collection; err_it != NULL; err_it = err_it->next) { - const char* _tmp4; + const char* _tmp4_; char* err; - _tmp4 = NULL; - err = (_tmp4 = (const char*) err_it->data, (_tmp4 == NULL) ? NULL : g_strdup (_tmp4)); + _tmp4_ = NULL; + err = (_tmp4_ = (const char*) err_it->data, (_tmp4_ == NULL) ? NULL : g_strdup (_tmp4_)); { - gint _tmp3; - char* _tmp2; - const char* _tmp1; - _tmp2 = NULL; - _tmp1 = NULL; - _tmp3 = i++; - error_array[_tmp3] = (_tmp2 = (_tmp1 = err, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), error_array[_tmp3] = (g_free (error_array[_tmp3]), NULL), _tmp2); + char* _tmp3_; + char* *_tmp2_; + const char* _tmp1_; + _tmp3_ = NULL; + _tmp1_ = NULL; + _tmp2_ = &error_array[i++]; + (*_tmp2_) = (_tmp3_ = (_tmp1_ = err, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), (*_tmp2_) = (g_free ((*_tmp2_)), NULL), _tmp3_); err = (g_free (err), NULL); } } } - _tmp5 = NULL; - error_array[i] = (_tmp5 = NULL, error_array[i] = (g_free (error_array[i]), NULL), _tmp5); - _tmp6 = NULL; - detail = (_tmp6 = g_strjoinv ("\n\n", error_array), detail = (g_free (detail), NULL), _tmp6); + _tmp5_ = NULL; + error_array[i] = (_tmp5_ = NULL, error_array[i] = (g_free (error_array[i]), NULL), _tmp5_); + _tmp6_ = NULL; + detail = (_tmp6_ = g_strjoinv ("\n\n", error_array), detail = (g_free (detail), NULL), _tmp6_); error_array = (_vala_array_free (error_array, error_array_length1, (GDestroyNotify) g_free), NULL); } error_text = g_strdup_printf (_ ("Not all files could be restored. Any files that could not be restored may still be found in %s."), self->priv->source); if (detail == NULL) { - char* _tmp8; - char* _tmp7; - _tmp8 = NULL; - _tmp7 = NULL; - error_text = (_tmp8 = g_strconcat (error_text, _tmp7 = (g_strconcat ("\n\n", (const char*) self->priv->errors->data, NULL)), NULL), error_text = (g_free (error_text), NULL), _tmp8); - _tmp7 = (g_free (_tmp7), NULL); + char* _tmp8_; + char* _tmp7_; + _tmp8_ = NULL; + _tmp7_ = NULL; + error_text = (_tmp8_ = g_strconcat (error_text, _tmp7_ = g_strconcat ("\n\n", (const char*) self->priv->errors->data, NULL), NULL), error_text = (g_free (error_text), NULL), _tmp8_); + _tmp7_ = (g_free (_tmp7_), NULL); } g_signal_emit_by_name ((DejaDupOperation*) self, "raise-error", error_text, detail); detail = (g_free (detail), NULL); @@ -353,10 +511,10 @@ } -static void deja_dup_operation_restore_mv_error (DejaDupOperationRestore* self, DejaDupRecursiveMove* move, GFile* src, GFile* dst, const char* errstr) { +static void deja_dup_operation_restore_mv_error (DejaDupOperationRestore* self, DejaDupRecursiveOp* move, GFile* src, GFile* dst, const char* errstr) { GFile* dest_top; char* relative_dst; - gboolean _tmp0; + gboolean _tmp0_; g_return_if_fail (self != NULL); g_return_if_fail (move != NULL); g_return_if_fail (src != NULL); @@ -364,18 +522,18 @@ g_return_if_fail (errstr != NULL); dest_top = g_file_new_for_path (self->priv->dest); relative_dst = g_file_get_relative_path (dest_top, dst); - _tmp0 = FALSE; + _tmp0_ = FALSE; if (relative_dst == NULL) { - _tmp0 = TRUE; + _tmp0_ = TRUE; } else { - _tmp0 = _vala_strcmp0 (relative_dst, "") == 0; + _tmp0_ = _vala_strcmp0 (relative_dst, "") == 0; } - if (_tmp0) { - char* _tmp2; - const char* _tmp1; - _tmp2 = NULL; - _tmp1 = NULL; - relative_dst = (_tmp2 = (_tmp1 = self->priv->dest, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), relative_dst = (g_free (relative_dst), NULL), _tmp2); + if (_tmp0_) { + char* _tmp2_; + const char* _tmp1_; + _tmp2_ = NULL; + _tmp1_ = NULL; + relative_dst = (_tmp2_ = (_tmp1_ = self->priv->dest, (_tmp1_ == NULL) ? NULL : g_strdup (_tmp1_)), relative_dst = (g_free (relative_dst), NULL), _tmp2_); } deja_dup_operation_restore_add_error (self, relative_dst, errstr); (dest_top == NULL) ? NULL : (dest_top = (g_object_unref (dest_top), NULL)); @@ -383,18 +541,18 @@ } -static void _deja_dup_operation_restore_mv_error_deja_dup_recursive_op_raise_error (DejaDupRecursiveMove* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self) { +static void _deja_dup_operation_restore_mv_error_deja_dup_recursive_op_raise_error (DejaDupRecursiveOp* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self) { deja_dup_operation_restore_mv_error (self, _sender, src, dst, errstr); } static gboolean deja_dup_operation_restore_mv_source_to_dest (DejaDupOperationRestore* self) { - GList* _tmp0; + GList* _tmp0_; GFile* destf; GFile* sourcef; g_return_val_if_fail (self != NULL, FALSE); - _tmp0 = NULL; - self->priv->errors = (_tmp0 = NULL, (self->priv->errors == NULL) ? NULL : (self->priv->errors = (_g_list_free_g_free (self->priv->errors), NULL)), _tmp0); + _tmp0_ = NULL; + self->priv->errors = (_tmp0_ = NULL, (self->priv->errors == NULL) ? NULL : (self->priv->errors = (_g_list_free_g_free (self->priv->errors), NULL)), _tmp0_); destf = g_file_new_for_path (self->priv->dest); sourcef = g_file_new_for_path (self->priv->source); /* If we're doing a full restore, just move the whole thing over. @@ -416,10 +574,10 @@ GList* f_it; f_collection = deja_dup_operation_restore_get_restore_files (self); for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp1; + GFile* _tmp1_; GFile* f; - _tmp1 = NULL; - f = (_tmp1 = (GFile*) f_it->data, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); + _tmp1_ = NULL; + f = (_tmp1_ = (GFile*) f_it->data, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); { char* rel_file_path; GFile* full_source; @@ -442,12 +600,12 @@ (root == NULL) ? NULL : (root = (g_object_unref (root), NULL)); } if (self->priv->errors != NULL) { - gboolean _tmp2; + gboolean _tmp2_; deja_dup_operation_restore_show_errors (self); - return (_tmp2 = FALSE, (destf == NULL) ? NULL : (destf = (g_object_unref (destf), NULL)), (sourcef == NULL) ? NULL : (sourcef = (g_object_unref (sourcef), NULL)), _tmp2); + return (_tmp2_ = FALSE, (destf == NULL) ? NULL : (destf = (g_object_unref (destf), NULL)), (sourcef == NULL) ? NULL : (sourcef = (g_object_unref (sourcef), NULL)), _tmp2_); } else { - gboolean _tmp3; - return (_tmp3 = TRUE, (destf == NULL) ? NULL : (destf = (g_object_unref (destf), NULL)), (sourcef == NULL) ? NULL : (sourcef = (g_object_unref (sourcef), NULL)), _tmp3); + gboolean _tmp3_; + return (_tmp3_ = TRUE, (destf == NULL) ? NULL : (destf = (g_object_unref (destf), NULL)), (sourcef == NULL) ? NULL : (sourcef = (g_object_unref (sourcef), NULL)), _tmp3_); } (destf == NULL) ? NULL : (destf = (g_object_unref (destf), NULL)); (sourcef == NULL) ? NULL : (sourcef = (g_object_unref (sourcef), NULL)); @@ -473,34 +631,34 @@ void deja_dup_operation_restore_set_restore_files (DejaDupOperationRestore* self, GList* value) { - GList* _tmp2; + GList* _tmp2_; g_return_if_fail (self != NULL); { GList* f_collection; GList* f_it; f_collection = self->priv->_restore_files; for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp1; + GFile* _tmp1_; GFile* f; - _tmp1 = NULL; - f = (_tmp1 = (GFile*) f_it->data, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)); + _tmp1_ = NULL; + f = (_tmp1_ = (GFile*) f_it->data, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); { g_object_unref ((GObject*) f); (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); } } } - _tmp2 = NULL; - self->priv->_restore_files = (_tmp2 = g_list_copy (value), (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)), _tmp2); + _tmp2_ = NULL; + self->priv->_restore_files = (_tmp2_ = g_list_copy (value), (self->priv->_restore_files == NULL) ? NULL : (self->priv->_restore_files = (_g_list_free_g_object_unref (self->priv->_restore_files), NULL)), _tmp2_); { GList* f_collection; GList* f_it; f_collection = self->priv->_restore_files; for (f_it = f_collection; f_it != NULL; f_it = f_it->next) { - GFile* _tmp3; + GFile* _tmp3_; GFile* f; - _tmp3 = NULL; - f = (_tmp3 = (GFile*) f_it->data, (_tmp3 == NULL) ? NULL : g_object_ref (_tmp3)); + _tmp3_ = NULL; + f = (_tmp3_ = (GFile*) f_it->data, (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); { g_object_ref ((GObject*) f); (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); @@ -511,44 +669,15 @@ } -static void deja_dup_operation_restore_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - DejaDupOperationRestore * self; - gpointer boxed; - self = DEJA_DUP_OPERATION_RESTORE (object); - switch (property_id) { - case DEJA_DUP_OPERATION_RESTORE_RESTORE_FILES: - g_value_set_pointer (value, deja_dup_operation_restore_get_restore_files (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void deja_dup_operation_restore_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - DejaDupOperationRestore * self; - self = DEJA_DUP_OPERATION_RESTORE (object); - switch (property_id) { - case DEJA_DUP_OPERATION_RESTORE_RESTORE_FILES: - deja_dup_operation_restore_set_restore_files (self, g_value_get_pointer (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - static void deja_dup_operation_restore_class_init (DejaDupOperationRestoreClass * klass) { deja_dup_operation_restore_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (DejaDupOperationRestorePrivate)); - G_OBJECT_CLASS (klass)->get_property = deja_dup_operation_restore_get_property; - G_OBJECT_CLASS (klass)->set_property = deja_dup_operation_restore_set_property; - G_OBJECT_CLASS (klass)->finalize = deja_dup_operation_restore_finalize; DEJA_DUP_OPERATION_CLASS (klass)->start = deja_dup_operation_restore_real_start; DEJA_DUP_OPERATION_CLASS (klass)->make_argv = deja_dup_operation_restore_real_make_argv; DEJA_DUP_OPERATION_CLASS (klass)->operation_finished = deja_dup_operation_restore_real_operation_finished; + G_OBJECT_CLASS (klass)->get_property = deja_dup_operation_restore_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_operation_restore_set_property; + G_OBJECT_CLASS (klass)->finalize = deja_dup_operation_restore_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_OPERATION_RESTORE_RESTORE_FILES, g_param_spec_pointer ("restore-files", "restore-files", "restore-files", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); } @@ -580,7 +709,36 @@ } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void deja_dup_operation_restore_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupOperationRestore * self; + gpointer boxed; + self = DEJA_DUP_OPERATION_RESTORE (object); + switch (property_id) { + case DEJA_DUP_OPERATION_RESTORE_RESTORE_FILES: + g_value_set_pointer (value, deja_dup_operation_restore_get_restore_files (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_operation_restore_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupOperationRestore * self; + self = DEJA_DUP_OPERATION_RESTORE (object); + switch (property_id) { + case DEJA_DUP_OPERATION_RESTORE_RESTORE_FILES: + deja_dup_operation_restore_set_restore_files (self, g_value_get_pointer (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -589,6 +747,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/libdeja-dup/OperationRestore.h deja-dup-10.0/libdeja-dup/OperationRestore.h --- deja-dup-7.4/libdeja-dup/OperationRestore.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationRestore.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,47 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __OPERATIONRESTORE_H__ -#define __OPERATIONRESTORE_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <string.h> -#include <Operation.h> -#include <Duplicity.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_OPERATION_RESTORE (deja_dup_operation_restore_get_type ()) -#define DEJA_DUP_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestore)) -#define DEJA_DUP_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass)) -#define DEJA_DUP_IS_OPERATION_RESTORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE)) -#define DEJA_DUP_IS_OPERATION_RESTORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_RESTORE)) -#define DEJA_DUP_OPERATION_RESTORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_RESTORE, DejaDupOperationRestoreClass)) - -typedef struct _DejaDupOperationRestore DejaDupOperationRestore; -typedef struct _DejaDupOperationRestoreClass DejaDupOperationRestoreClass; -typedef struct _DejaDupOperationRestorePrivate DejaDupOperationRestorePrivate; - -struct _DejaDupOperationRestore { - DejaDupOperation parent_instance; - DejaDupOperationRestorePrivate * priv; -}; - -struct _DejaDupOperationRestoreClass { - DejaDupOperationClass parent_class; -}; - - -DejaDupOperationRestore* deja_dup_operation_restore_construct (GType object_type, GtkWindow* win, const char* dest_in, const char* time_in, GList* files_in, guint xid); -DejaDupOperationRestore* deja_dup_operation_restore_new (GtkWindow* win, const char* dest_in, const char* time_in, GList* files_in, guint xid); -GList* deja_dup_operation_restore_get_restore_files (DejaDupOperationRestore* self); -void deja_dup_operation_restore_set_restore_files (DejaDupOperationRestore* self, GList* value); -GType deja_dup_operation_restore_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/OperationRestore.vala deja-dup-10.0/libdeja-dup/OperationRestore.vala --- deja-dup-7.4/libdeja-dup/OperationRestore.vala 2009-02-11 20:31:07.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationRestore.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -62,8 +62,6 @@ protected override List<string>? make_argv() throws Error { - var client = GConf.Client.get_default(); - source = Path.build_filename(Environment.get_tmp_dir(), "deja-dup-XXXXXX"); source = DirUtils.mkdtemp(source); @@ -79,9 +77,16 @@ protected override void operation_finished(Duplicity dup, bool success, bool cancelled) { if (success) { + } + + if (success) { fixup_home_dir(); if (!mv_source_to_dest()) success = false; + else { + try {DejaDup.update_last_run_timestamp();} + catch (Error e) {warning("%s\n", e.message);} + } } else if (!cancelled) { // Error case. TODO: Should tell user about partial restore in /tmp @@ -177,7 +182,7 @@ relpath, errstr)); } - void mv_error(RecursiveMove move, File src, File dst, string errstr) + void mv_error(RecursiveOp move, File src, File dst, string errstr) { var dest_top = File.new_for_path(dest); var relative_dst = dest_top.get_relative_path(dst); @@ -200,7 +205,7 @@ // move each of the specific files over, ignoring their parent directories. if (restore_files == null) { var move = new RecursiveMove(sourcef, destf); - move.raise_error += mv_error; + move.raise_error.connect(mv_error); move.start(); } else { @@ -211,7 +216,7 @@ var full_dest = destf.resolve_relative_path(rel_file_path); var move = new RecursiveMove(full_source, full_dest); - move.raise_error += mv_error; + move.raise_error.connect(mv_error); move.start(); } } diff -Nru deja-dup-7.4/libdeja-dup/OperationStatus.c deja-dup-10.0/libdeja-dup/OperationStatus.c --- deja-dup-7.4/libdeja-dup/OperationStatus.c 2009-02-11 20:35:26.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationStatus.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,16 +1,107 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <OperationStatus.h> -#include <Duplicity.h> +#include <glib.h> +#include <glib-object.h> +#include <stdlib.h> +#include <string.h> +#include <gtk/gtk.h> + + +#define DEJA_DUP_TYPE_OPERATION (deja_dup_operation_get_type ()) +#define DEJA_DUP_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperation)) +#define DEJA_DUP_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) +#define DEJA_DUP_IS_OPERATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_IS_OPERATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION)) +#define DEJA_DUP_OPERATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION, DejaDupOperationClass)) + +typedef struct _DejaDupOperation DejaDupOperation; +typedef struct _DejaDupOperationClass DejaDupOperationClass; +typedef struct _DejaDupOperationPrivate DejaDupOperationPrivate; + +#define DEJA_DUP_TYPE_DUPLICITY (deja_dup_duplicity_get_type ()) +#define DEJA_DUP_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicity)) +#define DEJA_DUP_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) +#define DEJA_DUP_IS_DUPLICITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_IS_DUPLICITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_DUPLICITY)) +#define DEJA_DUP_DUPLICITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_DUPLICITY, DejaDupDuplicityClass)) + +typedef struct _DejaDupDuplicity DejaDupDuplicity; +typedef struct _DejaDupDuplicityClass DejaDupDuplicityClass; + +#define DEJA_DUP_TYPE_BACKEND (deja_dup_backend_get_type ()) +#define DEJA_DUP_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackend)) +#define DEJA_DUP_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) +#define DEJA_DUP_IS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_IS_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_BACKEND)) +#define DEJA_DUP_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_BACKEND, DejaDupBackendClass)) + +typedef struct _DejaDupBackend DejaDupBackend; +typedef struct _DejaDupBackendClass DejaDupBackendClass; + +#define DEJA_DUP_TYPE_OPERATION_STATUS (deja_dup_operation_status_get_type ()) +#define DEJA_DUP_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatus)) +#define DEJA_DUP_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass)) +#define DEJA_DUP_IS_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_STATUS)) +#define DEJA_DUP_IS_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_STATUS)) +#define DEJA_DUP_OPERATION_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass)) + +typedef struct _DejaDupOperationStatus DejaDupOperationStatus; +typedef struct _DejaDupOperationStatusClass DejaDupOperationStatusClass; +typedef struct _DejaDupOperationStatusPrivate DejaDupOperationStatusPrivate; + +#define DEJA_DUP_OPERATION_TYPE_MODE (deja_dup_operation_mode_get_type ()) + +struct _DejaDupOperation { + GObject parent_instance; + DejaDupOperationPrivate * priv; + DejaDupDuplicity* dup; + DejaDupBackend* backend; + char* passphrase; +}; + +struct _DejaDupOperationClass { + GObjectClass parent_class; + void (*start) (DejaDupOperation* self, GError** error); + void (*connect_to_dup) (DejaDupOperation* self); + void (*operation_finished) (DejaDupOperation* self, DejaDupDuplicity* dup, gboolean success, gboolean cancelled); + GList* (*make_argv) (DejaDupOperation* self, GError** error); +}; + +struct _DejaDupOperationStatus { + DejaDupOperation parent_instance; + DejaDupOperationStatusPrivate * priv; +}; + +struct _DejaDupOperationStatusClass { + DejaDupOperationClass parent_class; +}; +typedef enum { + DEJA_DUP_OPERATION_MODE_INVALID, + DEJA_DUP_OPERATION_MODE_BACKUP, + DEJA_DUP_OPERATION_MODE_RESTORE, + DEJA_DUP_OPERATION_MODE_STATUS +} DejaDupOperationMode; +GType deja_dup_operation_get_type (void); +GType deja_dup_duplicity_get_type (void); +GType deja_dup_backend_get_type (void); +GType deja_dup_operation_status_get_type (void); enum { DEJA_DUP_OPERATION_STATUS_DUMMY_PROPERTY }; -static void __lambda0 (DejaDupDuplicity* d, GList* dates, DejaDupOperationStatus* self); -static void ___lambda0_deja_dup_duplicity_collection_dates (DejaDupDuplicity* _sender, GList* dates, gpointer self); +static void deja_dup_operation_set_toplevel (DejaDupOperation* self, GtkWindow* value); +static void deja_dup_operation_set_uppermost_xid (DejaDupOperation* self, guint value); +GType deja_dup_operation_mode_get_type (void); +static void deja_dup_operation_set_mode (DejaDupOperation* self, DejaDupOperationMode value); +DejaDupOperationStatus* deja_dup_operation_status_new (GtkWindow* win, guint xid); +DejaDupOperationStatus* deja_dup_operation_status_construct (GType object_type, GtkWindow* win, guint xid); +DejaDupOperationStatus* deja_dup_operation_status_new (GtkWindow* win, guint xid); +static void _lambda17_ (DejaDupDuplicity* d, GList* dates, DejaDupOperationStatus* self); +static void __lambda17__deja_dup_duplicity_collection_dates (DejaDupDuplicity* _sender, GList* dates, gpointer self); +void deja_dup_operation_connect_to_dup (DejaDupOperation* self); static void deja_dup_operation_status_real_connect_to_dup (DejaDupOperation* base); static gpointer deja_dup_operation_status_parent_class = NULL; @@ -49,21 +140,21 @@ } -static void __lambda0 (DejaDupDuplicity* d, GList* dates, DejaDupOperationStatus* self) { +static void _lambda17_ (DejaDupDuplicity* d, GList* dates, DejaDupOperationStatus* self) { g_return_if_fail (d != NULL); g_signal_emit_by_name (self, "collection-dates", dates); } -static void ___lambda0_deja_dup_duplicity_collection_dates (DejaDupDuplicity* _sender, GList* dates, gpointer self) { - __lambda0 (_sender, dates, self); +static void __lambda17__deja_dup_duplicity_collection_dates (DejaDupDuplicity* _sender, GList* dates, gpointer self) { + _lambda17_ (_sender, dates, self); } static void deja_dup_operation_status_real_connect_to_dup (DejaDupOperation* base) { DejaDupOperationStatus * self; self = (DejaDupOperationStatus*) base; - g_signal_connect (((DejaDupOperation*) self)->dup, "collection-dates", (GCallback) ___lambda0_deja_dup_duplicity_collection_dates, self); + g_signal_connect (((DejaDupOperation*) self)->dup, "collection-dates", (GCallback) __lambda17__deja_dup_duplicity_collection_dates, self); DEJA_DUP_OPERATION_CLASS (deja_dup_operation_status_parent_class)->connect_to_dup (DEJA_DUP_OPERATION (self)); } diff -Nru deja-dup-7.4/libdeja-dup/OperationStatus.h deja-dup-10.0/libdeja-dup/OperationStatus.h --- deja-dup-7.4/libdeja-dup/OperationStatus.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationStatus.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,42 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __OPERATIONSTATUS_H__ -#define __OPERATIONSTATUS_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <Operation.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_OPERATION_STATUS (deja_dup_operation_status_get_type ()) -#define DEJA_DUP_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatus)) -#define DEJA_DUP_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass)) -#define DEJA_DUP_IS_OPERATION_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_OPERATION_STATUS)) -#define DEJA_DUP_IS_OPERATION_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_OPERATION_STATUS)) -#define DEJA_DUP_OPERATION_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_OPERATION_STATUS, DejaDupOperationStatusClass)) - -typedef struct _DejaDupOperationStatus DejaDupOperationStatus; -typedef struct _DejaDupOperationStatusClass DejaDupOperationStatusClass; -typedef struct _DejaDupOperationStatusPrivate DejaDupOperationStatusPrivate; - -struct _DejaDupOperationStatus { - DejaDupOperation parent_instance; - DejaDupOperationStatusPrivate * priv; -}; - -struct _DejaDupOperationStatusClass { - DejaDupOperationClass parent_class; -}; - - -DejaDupOperationStatus* deja_dup_operation_status_construct (GType object_type, GtkWindow* win, guint xid); -DejaDupOperationStatus* deja_dup_operation_status_new (GtkWindow* win, guint xid); -GType deja_dup_operation_status_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/OperationStatus.vala deja-dup-10.0/libdeja-dup/OperationStatus.vala --- deja-dup-7.4/libdeja-dup/OperationStatus.vala 2009-02-11 20:31:33.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/OperationStatus.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -33,7 +33,7 @@ protected override void connect_to_dup() { - dup.collection_dates += (d, dates) => {collection_dates(dates);}; + dup.collection_dates.connect((d, dates) => {collection_dates(dates);}); base.connect_to_dup(); } } diff -Nru deja-dup-7.4/libdeja-dup/Operation.vala deja-dup-10.0/libdeja-dup/Operation.vala --- deja-dup-7.4/libdeja-dup/Operation.vala 2009-02-11 20:47:58.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/Operation.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -72,8 +72,8 @@ // Default is to go ahead with password collection. This will be // overridden by anyone else that connects to this signal. - passphrase_required += (o) => {return true;}; - backend_password_required += (o) => {return true;}; + passphrase_required.connect((o) => {return true;}); + backend_password_required.connect((o) => {return true;}); } public virtual void start() throws Error @@ -92,7 +92,7 @@ set_session_inhibited(true); // Get encryption passphrase if needed - var client = GConf.Client.get_default(); + var client = get_gconf_client(); if (client.get_bool(ENCRYPT_KEY) && passphrase == null) get_passphrase(); // will call continue_with_passphrase when ready else @@ -106,17 +106,17 @@ protected virtual void connect_to_dup() { - dup.done += operation_finished; - dup.raise_error += (d, s, detail) => {raise_error(s, detail);}; - dup.action_desc_changed += (d, s) => {action_desc_changed(s);}; - dup.action_file_changed += (d, f) => {action_file_changed(f);}; - dup.progress += (d, p) => {progress(p);}; - backend.envp_ready += continue_with_envp; - backend.need_password += (b) => { + dup.done.connect(operation_finished); + dup.raise_error.connect((d, s, detail) => {raise_error(s, detail);}); + dup.action_desc_changed.connect((d, s) => {action_desc_changed(s);}); + dup.action_file_changed.connect((d, f) => {action_file_changed(f);}); + dup.progress.connect((d, p) => {progress(p);}); + backend.envp_ready.connect(continue_with_envp); + backend.need_password.connect((b) => { bool can_ask_now = backend_password_required(); if (can_ask_now) backend.ask_password(); - }; + }); } void continue_with_passphrase() throws Error @@ -124,8 +124,10 @@ backend.get_envp(); } - void continue_with_envp(DejaDup.Backend b, bool success, List<string>? envp) { + void continue_with_envp(DejaDup.Backend b, bool success, List<string>? envp, string? error) { if (!success) { + if (error != null) + raise_error(error, null); done(false); return; } @@ -138,10 +140,9 @@ try { List<string> argv = make_argv(); + backend.add_argv(mode, ref argv); - string target = backend.get_location(); - - dup.start(backend, target, encrypted, argv, envp); + dup.start(backend, encrypted, argv, envp); } catch (Error e) { raise_error(e.message, null); @@ -222,6 +223,7 @@ } passphrase = dlg.get_password(); + passphrase = passphrase.strip(); if (passphrase != "") { // Save it @@ -271,7 +273,7 @@ uint xid = uppermost_xid; if (xid == 0 && toplevel != null) { toplevel.realize(); - xid = Gdk.x11_drawable_get_xid(toplevel.window); + xid = Gdk.x11_drawable_get_xid(hacks_widget_get_window(toplevel)); } obj.Inhibit(Config.PACKAGE, diff -Nru deja-dup-7.4/libdeja-dup/PassphraseSchema.c deja-dup-10.0/libdeja-dup/PassphraseSchema.c --- deja-dup-7.4/libdeja-dup/PassphraseSchema.c 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/PassphraseSchema.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,4 +1,4 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup © 2008 Michael Terry <mike@mterry.name> diff -Nru deja-dup-7.4/libdeja-dup/PassphraseSchema.h deja-dup-10.0/libdeja-dup/PassphraseSchema.h --- deja-dup-7.4/libdeja-dup/PassphraseSchema.h 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/PassphraseSchema.h 2009-06-02 17:48:48.000000000 -0400 @@ -1,4 +1,4 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup © 2008 Michael Terry <mike@mterry.name> diff -Nru deja-dup-7.4/libdeja-dup/RecursiveDelete.c deja-dup-10.0/libdeja-dup/RecursiveDelete.c --- deja-dup-7.4/libdeja-dup/RecursiveDelete.c 2009-02-10 21:54:22.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveDelete.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,15 +1,71 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <RecursiveDelete.h> +#include <glib.h> +#include <glib-object.h> +#include <gio/gio.h> #include <stdlib.h> #include <string.h> +#define DEJA_DUP_TYPE_RECURSIVE_OP (deja_dup_recursive_op_get_type ()) +#define DEJA_DUP_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOp)) +#define DEJA_DUP_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) +#define DEJA_DUP_IS_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_IS_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_RECURSIVE_OP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) + +typedef struct _DejaDupRecursiveOp DejaDupRecursiveOp; +typedef struct _DejaDupRecursiveOpClass DejaDupRecursiveOpClass; +typedef struct _DejaDupRecursiveOpPrivate DejaDupRecursiveOpPrivate; + +#define DEJA_DUP_TYPE_RECURSIVE_DELETE (deja_dup_recursive_delete_get_type ()) +#define DEJA_DUP_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDelete)) +#define DEJA_DUP_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) +#define DEJA_DUP_IS_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE)) +#define DEJA_DUP_IS_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE)) +#define DEJA_DUP_RECURSIVE_DELETE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) + +typedef struct _DejaDupRecursiveDelete DejaDupRecursiveDelete; +typedef struct _DejaDupRecursiveDeleteClass DejaDupRecursiveDeleteClass; +typedef struct _DejaDupRecursiveDeletePrivate DejaDupRecursiveDeletePrivate; + +struct _DejaDupRecursiveOp { + GObject parent_instance; + DejaDupRecursiveOpPrivate * priv; + GFileType src_type; + GFileType dst_type; +}; + +struct _DejaDupRecursiveOpClass { + GObjectClass parent_class; + void (*handle_file) (DejaDupRecursiveOp* self); + void (*handle_dir) (DejaDupRecursiveOp* self); + void (*finish_dir) (DejaDupRecursiveOp* self); + DejaDupRecursiveOp* (*clone_for_info) (DejaDupRecursiveOp* self, GFileInfo* info); +}; + +struct _DejaDupRecursiveDelete { + DejaDupRecursiveOp parent_instance; + DejaDupRecursiveDeletePrivate * priv; +}; + +struct _DejaDupRecursiveDeleteClass { + DejaDupRecursiveOpClass parent_class; +}; + +GType deja_dup_recursive_op_get_type (void); +GType deja_dup_recursive_delete_get_type (void); enum { DEJA_DUP_RECURSIVE_DELETE_DUMMY_PROPERTY }; +static void deja_dup_recursive_op_set_src (DejaDupRecursiveOp* self, GFile* value); +DejaDupRecursiveDelete* deja_dup_recursive_delete_new (GFile* source); +DejaDupRecursiveDelete* deja_dup_recursive_delete_construct (GType object_type, GFile* source); +DejaDupRecursiveDelete* deja_dup_recursive_delete_new (GFile* source); +GFile* deja_dup_recursive_op_get_src (DejaDupRecursiveOp* self); +GFile* deja_dup_recursive_op_get_dst (DejaDupRecursiveOp* self); static void deja_dup_recursive_delete_real_handle_file (DejaDupRecursiveOp* base); static void deja_dup_recursive_delete_real_finish_dir (DejaDupRecursiveOp* base); static DejaDupRecursiveOp* deja_dup_recursive_delete_real_clone_for_info (DejaDupRecursiveOp* base, GFileInfo* info); @@ -45,31 +101,31 @@ static void deja_dup_recursive_delete_real_handle_file (DejaDupRecursiveOp* base) { DejaDupRecursiveDelete * self; - GError * inner_error; + GError * _inner_error_; self = (DejaDupRecursiveDelete*) base; - inner_error = NULL; + _inner_error_ = NULL; { - g_file_delete (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), NULL, &inner_error); - if (inner_error != NULL) { - goto __catch16_g_error; - goto __finally16; + g_file_delete (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch50_g_error; + goto __finally50; } } - goto __finally16; - __catch16_g_error: + goto __finally50; + __catch50_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name ((DejaDupRecursiveOp*) self, "raise-error", deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally16: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally50: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -77,30 +133,30 @@ static void deja_dup_recursive_delete_real_finish_dir (DejaDupRecursiveOp* base) { DejaDupRecursiveDelete * self; - GError * inner_error; + GError * _inner_error_; self = (DejaDupRecursiveDelete*) base; - inner_error = NULL; + _inner_error_ = NULL; { - g_file_delete (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), NULL, &inner_error); - if (inner_error != NULL) { - goto __catch17_g_error; - goto __finally17; + g_file_delete (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch51_g_error; + goto __finally51; } } - goto __finally17; - __catch17_g_error: + goto __finally51; + __catch51_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally17: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally51: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -113,17 +169,17 @@ a non-empty directory.*/ static DejaDupRecursiveOp* deja_dup_recursive_delete_real_clone_for_info (DejaDupRecursiveOp* base, GFileInfo* info) { DejaDupRecursiveDelete * self; - const char* _tmp0; + const char* _tmp0_; char* child_name; GFile* src_child; - DejaDupRecursiveOp* _tmp1; + DejaDupRecursiveOp* _tmp1_; self = (DejaDupRecursiveDelete*) base; g_return_val_if_fail (info != NULL, NULL); - _tmp0 = NULL; - child_name = (_tmp0 = g_file_info_get_name (info), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + child_name = (_tmp0_ = g_file_info_get_name (info), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); src_child = g_file_get_child (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), child_name); - _tmp1 = NULL; - return (_tmp1 = (DejaDupRecursiveOp*) deja_dup_recursive_delete_new (src_child), child_name = (g_free (child_name), NULL), (src_child == NULL) ? NULL : (src_child = (g_object_unref (src_child), NULL)), _tmp1); + _tmp1_ = NULL; + return (_tmp1_ = (DejaDupRecursiveOp*) deja_dup_recursive_delete_new (src_child), child_name = (g_free (child_name), NULL), (src_child == NULL) ? NULL : (src_child = (g_object_unref (src_child), NULL)), _tmp1_); } diff -Nru deja-dup-7.4/libdeja-dup/RecursiveDelete.h deja-dup-10.0/libdeja-dup/RecursiveDelete.h --- deja-dup-7.4/libdeja-dup/RecursiveDelete.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveDelete.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,42 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __RECURSIVEDELETE_H__ -#define __RECURSIVEDELETE_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gio/gio.h> -#include <RecursiveOp.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_RECURSIVE_DELETE (deja_dup_recursive_delete_get_type ()) -#define DEJA_DUP_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDelete)) -#define DEJA_DUP_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) -#define DEJA_DUP_IS_RECURSIVE_DELETE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE)) -#define DEJA_DUP_IS_RECURSIVE_DELETE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_DELETE)) -#define DEJA_DUP_RECURSIVE_DELETE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_DELETE, DejaDupRecursiveDeleteClass)) - -typedef struct _DejaDupRecursiveDelete DejaDupRecursiveDelete; -typedef struct _DejaDupRecursiveDeleteClass DejaDupRecursiveDeleteClass; -typedef struct _DejaDupRecursiveDeletePrivate DejaDupRecursiveDeletePrivate; - -struct _DejaDupRecursiveDelete { - DejaDupRecursiveOp parent_instance; - DejaDupRecursiveDeletePrivate * priv; -}; - -struct _DejaDupRecursiveDeleteClass { - DejaDupRecursiveOpClass parent_class; -}; - - -DejaDupRecursiveDelete* deja_dup_recursive_delete_construct (GType object_type, GFile* source); -DejaDupRecursiveDelete* deja_dup_recursive_delete_new (GFile* source); -GType deja_dup_recursive_delete_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/RecursiveDelete.vala deja-dup-10.0/libdeja-dup/RecursiveDelete.vala --- deja-dup-7.4/libdeja-dup/RecursiveDelete.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveDelete.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 diff -Nru deja-dup-7.4/libdeja-dup/RecursiveMove.c deja-dup-10.0/libdeja-dup/RecursiveMove.c --- deja-dup-7.4/libdeja-dup/RecursiveMove.c 2009-02-10 21:54:22.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveMove.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,16 +1,81 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <RecursiveMove.h> +#include <glib.h> +#include <glib-object.h> +#include <gio/gio.h> #include <stdlib.h> #include <string.h> +#define DEJA_DUP_TYPE_RECURSIVE_OP (deja_dup_recursive_op_get_type ()) +#define DEJA_DUP_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOp)) +#define DEJA_DUP_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) +#define DEJA_DUP_IS_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_IS_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_RECURSIVE_OP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) + +typedef struct _DejaDupRecursiveOp DejaDupRecursiveOp; +typedef struct _DejaDupRecursiveOpClass DejaDupRecursiveOpClass; +typedef struct _DejaDupRecursiveOpPrivate DejaDupRecursiveOpPrivate; + +#define DEJA_DUP_TYPE_RECURSIVE_MOVE (deja_dup_recursive_move_get_type ()) +#define DEJA_DUP_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMove)) +#define DEJA_DUP_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) +#define DEJA_DUP_IS_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE)) +#define DEJA_DUP_IS_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE)) +#define DEJA_DUP_RECURSIVE_MOVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) + +typedef struct _DejaDupRecursiveMove DejaDupRecursiveMove; +typedef struct _DejaDupRecursiveMoveClass DejaDupRecursiveMoveClass; +typedef struct _DejaDupRecursiveMovePrivate DejaDupRecursiveMovePrivate; + +struct _DejaDupRecursiveOp { + GObject parent_instance; + DejaDupRecursiveOpPrivate * priv; + GFileType src_type; + GFileType dst_type; +}; + +struct _DejaDupRecursiveOpClass { + GObjectClass parent_class; + void (*handle_file) (DejaDupRecursiveOp* self); + void (*handle_dir) (DejaDupRecursiveOp* self); + void (*finish_dir) (DejaDupRecursiveOp* self); + DejaDupRecursiveOp* (*clone_for_info) (DejaDupRecursiveOp* self, GFileInfo* info); +}; + +/** + * Recursively moves one directory into another, merging files. And by merge, + * I mean it overwrites. It skips any files it can't move and reports an + * error, but keeps going. + * + * This is not optimized for remote files. It's mostly async, but it does the + * occasional sync operation. + */ +struct _DejaDupRecursiveMove { + DejaDupRecursiveOp parent_instance; + DejaDupRecursiveMovePrivate * priv; +}; + +struct _DejaDupRecursiveMoveClass { + DejaDupRecursiveOpClass parent_class; +}; + +GType deja_dup_recursive_op_get_type (void); +GType deja_dup_recursive_move_get_type (void); enum { DEJA_DUP_RECURSIVE_MOVE_DUMMY_PROPERTY }; +static void deja_dup_recursive_op_set_src (DejaDupRecursiveOp* self, GFile* value); +static void deja_dup_recursive_op_set_dst (DejaDupRecursiveOp* self, GFile* value); +DejaDupRecursiveMove* deja_dup_recursive_move_new (GFile* source, GFile* dest); +DejaDupRecursiveMove* deja_dup_recursive_move_construct (GType object_type, GFile* source, GFile* dest); +DejaDupRecursiveMove* deja_dup_recursive_move_new (GFile* source, GFile* dest); static void deja_dup_recursive_move_progress_callback (DejaDupRecursiveMove* self, gint64 current_num_bytes, gint64 total_num_bytes); +GFile* deja_dup_recursive_op_get_dst (DejaDupRecursiveOp* self); +GFile* deja_dup_recursive_op_get_src (DejaDupRecursiveOp* self); static void _deja_dup_recursive_move_progress_callback_gfile_progress_callback (gint64 current_num_bytes, gint64 total_num_bytes, gpointer self); static void deja_dup_recursive_move_real_handle_file (DejaDupRecursiveOp* base); static void deja_dup_recursive_move_real_handle_dir (DejaDupRecursiveOp* base); @@ -64,58 +129,58 @@ /* Do nothing right now*/ static void deja_dup_recursive_move_real_handle_file (DejaDupRecursiveOp* base) { DejaDupRecursiveMove * self; - GError * inner_error; + GError * _inner_error_; self = (DejaDupRecursiveMove*) base; - inner_error = NULL; + _inner_error_ = NULL; if (((DejaDupRecursiveOp*) self)->dst_type == G_FILE_TYPE_DIRECTORY) { { - g_file_delete (deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), NULL, &inner_error); - if (inner_error != NULL) { - goto __catch18_g_error; - goto __finally18; + g_file_delete (deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch52_g_error; + goto __finally52; } } - goto __finally18; - __catch18_g_error: + goto __finally52; + __catch52_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name ((DejaDupRecursiveOp*) self, "raise-error", deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); return; } } - __finally18: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally52: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } { - g_file_move (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), (G_FILE_COPY_ALL_METADATA | G_FILE_COPY_NOFOLLOW_SYMLINKS) | G_FILE_COPY_OVERWRITE, NULL, _deja_dup_recursive_move_progress_callback_gfile_progress_callback, self, &inner_error); - if (inner_error != NULL) { - goto __catch19_g_error; - goto __finally19; + g_file_move (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), (G_FILE_COPY_ALL_METADATA | G_FILE_COPY_NOFOLLOW_SYMLINKS) | G_FILE_COPY_OVERWRITE, NULL, _deja_dup_recursive_move_progress_callback_gfile_progress_callback, self, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch53_g_error; + goto __finally53; } } - goto __finally19; - __catch19_g_error: + goto __finally53; + __catch53_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name ((DejaDupRecursiveOp*) self, "raise-error", deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally19: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally53: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -123,40 +188,40 @@ static void deja_dup_recursive_move_real_handle_dir (DejaDupRecursiveOp* base) { DejaDupRecursiveMove * self; - GError * inner_error; - gboolean _tmp0; + GError * _inner_error_; + gboolean _tmp0_; self = (DejaDupRecursiveMove*) base; - inner_error = NULL; - _tmp0 = FALSE; + _inner_error_ = NULL; + _tmp0_ = FALSE; if (((DejaDupRecursiveOp*) self)->dst_type != G_FILE_TYPE_UNKNOWN) { - _tmp0 = ((DejaDupRecursiveOp*) self)->dst_type != G_FILE_TYPE_DIRECTORY; + _tmp0_ = ((DejaDupRecursiveOp*) self)->dst_type != G_FILE_TYPE_DIRECTORY; } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - if (_tmp0) { + if (_tmp0_) { { - g_file_delete (deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), NULL, &inner_error); - if (inner_error != NULL) { - goto __catch20_g_error; - goto __finally20; + g_file_delete (deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch54_g_error; + goto __finally54; } } - goto __finally20; - __catch20_g_error: + goto __finally54; + __catch54_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name ((DejaDupRecursiveOp*) self, "raise-error", deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); return; } } - __finally20: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally54: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } ((DejaDupRecursiveOp*) self)->dst_type = G_FILE_TYPE_UNKNOWN; @@ -164,52 +229,52 @@ /* now the file's gone*/ if (((DejaDupRecursiveOp*) self)->dst_type == G_FILE_TYPE_UNKNOWN) { { - g_file_make_directory (deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), NULL, &inner_error); - if (inner_error != NULL) { - goto __catch21_g_error; - goto __finally21; + g_file_make_directory (deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch55_g_error; + goto __finally55; } } - goto __finally21; - __catch21_g_error: + goto __finally55; + __catch55_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name ((DejaDupRecursiveOp*) self, "raise-error", deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); return; } } - __finally21: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally55: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } { - g_file_copy_attributes (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), G_FILE_COPY_NOFOLLOW_SYMLINKS | G_FILE_COPY_ALL_METADATA, NULL, &inner_error); - if (inner_error != NULL) { - goto __catch22_g_error; - goto __finally22; + g_file_copy_attributes (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), G_FILE_COPY_NOFOLLOW_SYMLINKS | G_FILE_COPY_ALL_METADATA, NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch56_g_error; + goto __finally56; } } - goto __finally22; - __catch22_g_error: + goto __finally56; + __catch56_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally22: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally56: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -219,30 +284,30 @@ can't change and don't care about changing.*/ static void deja_dup_recursive_move_real_finish_dir (DejaDupRecursiveOp* base) { DejaDupRecursiveMove * self; - GError * inner_error; + GError * _inner_error_; self = (DejaDupRecursiveMove*) base; - inner_error = NULL; + _inner_error_ = NULL; { - g_file_delete (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), NULL, &inner_error); - if (inner_error != NULL) { - goto __catch23_g_error; - goto __finally23; + g_file_delete (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), NULL, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch57_g_error; + goto __finally57; } } - goto __finally23; - __catch23_g_error: + goto __finally57; + __catch57_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } - __finally23: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + __finally57: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } } @@ -255,19 +320,19 @@ a non-empty directory.*/ static DejaDupRecursiveOp* deja_dup_recursive_move_real_clone_for_info (DejaDupRecursiveOp* base, GFileInfo* info) { DejaDupRecursiveMove * self; - const char* _tmp0; + const char* _tmp0_; char* child_name; GFile* src_child; GFile* dst_child; - DejaDupRecursiveOp* _tmp1; + DejaDupRecursiveOp* _tmp1_; self = (DejaDupRecursiveMove*) base; g_return_val_if_fail (info != NULL, NULL); - _tmp0 = NULL; - child_name = (_tmp0 = g_file_info_get_name (info), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); + _tmp0_ = NULL; + child_name = (_tmp0_ = g_file_info_get_name (info), (_tmp0_ == NULL) ? NULL : g_strdup (_tmp0_)); src_child = g_file_get_child (deja_dup_recursive_op_get_src ((DejaDupRecursiveOp*) self), child_name); dst_child = g_file_get_child (deja_dup_recursive_op_get_dst ((DejaDupRecursiveOp*) self), child_name); - _tmp1 = NULL; - return (_tmp1 = (DejaDupRecursiveOp*) deja_dup_recursive_move_new (src_child, dst_child), child_name = (g_free (child_name), NULL), (src_child == NULL) ? NULL : (src_child = (g_object_unref (src_child), NULL)), (dst_child == NULL) ? NULL : (dst_child = (g_object_unref (dst_child), NULL)), _tmp1); + _tmp1_ = NULL; + return (_tmp1_ = (DejaDupRecursiveOp*) deja_dup_recursive_move_new (src_child, dst_child), child_name = (g_free (child_name), NULL), (src_child == NULL) ? NULL : (src_child = (g_object_unref (src_child), NULL)), (dst_child == NULL) ? NULL : (dst_child = (g_object_unref (dst_child), NULL)), _tmp1_); } diff -Nru deja-dup-7.4/libdeja-dup/RecursiveMove.h deja-dup-10.0/libdeja-dup/RecursiveMove.h --- deja-dup-7.4/libdeja-dup/RecursiveMove.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveMove.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,50 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __RECURSIVEMOVE_H__ -#define __RECURSIVEMOVE_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gio/gio.h> -#include <RecursiveOp.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_RECURSIVE_MOVE (deja_dup_recursive_move_get_type ()) -#define DEJA_DUP_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMove)) -#define DEJA_DUP_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) -#define DEJA_DUP_IS_RECURSIVE_MOVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE)) -#define DEJA_DUP_IS_RECURSIVE_MOVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_MOVE)) -#define DEJA_DUP_RECURSIVE_MOVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_MOVE, DejaDupRecursiveMoveClass)) - -typedef struct _DejaDupRecursiveMove DejaDupRecursiveMove; -typedef struct _DejaDupRecursiveMoveClass DejaDupRecursiveMoveClass; -typedef struct _DejaDupRecursiveMovePrivate DejaDupRecursiveMovePrivate; - -/** - * Recursively moves one directory into another, merging files. And by merge, - * I mean it overwrites. It skips any files it can't move and reports an - * error, but keeps going. - * - * This is not optimized for remote files. It's mostly async, but it does the - * occasional sync operation. - */ -struct _DejaDupRecursiveMove { - DejaDupRecursiveOp parent_instance; - DejaDupRecursiveMovePrivate * priv; -}; - -struct _DejaDupRecursiveMoveClass { - DejaDupRecursiveOpClass parent_class; -}; - - -DejaDupRecursiveMove* deja_dup_recursive_move_construct (GType object_type, GFile* source, GFile* dest); -DejaDupRecursiveMove* deja_dup_recursive_move_new (GFile* source, GFile* dest); -GType deja_dup_recursive_move_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/RecursiveMove.vala deja-dup-10.0/libdeja-dup/RecursiveMove.vala --- deja-dup-7.4/libdeja-dup/RecursiveMove.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveMove.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 diff -Nru deja-dup-7.4/libdeja-dup/RecursiveOp.c deja-dup-10.0/libdeja-dup/RecursiveOp.c --- deja-dup-7.4/libdeja-dup/RecursiveOp.c 2009-02-10 21:54:22.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveOp.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,17 +1,49 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include <RecursiveOp.h> +#include <glib.h> +#include <glib-object.h> +#include <gio/gio.h> #include <gtk/gtk.h> +#include <hacks.h> +#include <stdlib.h> +#include <string.h> + + +#define DEJA_DUP_TYPE_RECURSIVE_OP (deja_dup_recursive_op_get_type ()) +#define DEJA_DUP_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOp)) +#define DEJA_DUP_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) +#define DEJA_DUP_IS_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_IS_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_OP)) +#define DEJA_DUP_RECURSIVE_OP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) + +typedef struct _DejaDupRecursiveOp DejaDupRecursiveOp; +typedef struct _DejaDupRecursiveOpClass DejaDupRecursiveOpClass; +typedef struct _DejaDupRecursiveOpPrivate DejaDupRecursiveOpPrivate; + +struct _DejaDupRecursiveOp { + GObject parent_instance; + DejaDupRecursiveOpPrivate * priv; + GFileType src_type; + GFileType dst_type; +}; - - +struct _DejaDupRecursiveOpClass { + GObjectClass parent_class; + void (*handle_file) (DejaDupRecursiveOp* self); + void (*handle_dir) (DejaDupRecursiveOp* self); + void (*finish_dir) (DejaDupRecursiveOp* self); + DejaDupRecursiveOp* (*clone_for_info) (DejaDupRecursiveOp* self, GFileInfo* info); +}; struct _DejaDupRecursiveOpPrivate { GFile* _src; GFile* _dst; - gint ref_count; + gint refs; }; + + +GType deja_dup_recursive_op_get_type (void); #define DEJA_DUP_RECURSIVE_OP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpPrivate)) enum { DEJA_DUP_RECURSIVE_OP_DUMMY_PROPERTY, @@ -19,32 +51,42 @@ DEJA_DUP_RECURSIVE_OP_DST }; #define DEJA_DUP_RECURSIVE_OP_NUM_ENUMERATED 16 +void deja_dup_recursive_op_handle_file (DejaDupRecursiveOp* self); static void deja_dup_recursive_op_real_handle_file (DejaDupRecursiveOp* self); +void deja_dup_recursive_op_handle_dir (DejaDupRecursiveOp* self); static void deja_dup_recursive_op_real_handle_dir (DejaDupRecursiveOp* self); +void deja_dup_recursive_op_finish_dir (DejaDupRecursiveOp* self); static void deja_dup_recursive_op_real_finish_dir (DejaDupRecursiveOp* self); +DejaDupRecursiveOp* deja_dup_recursive_op_clone_for_info (DejaDupRecursiveOp* self, GFileInfo* info); static DejaDupRecursiveOp* deja_dup_recursive_op_real_clone_for_info (DejaDupRecursiveOp* self, GFileInfo* info); +void deja_dup_recursive_op_start_async (DejaDupRecursiveOp* self); static gboolean deja_dup_recursive_op_idle_action (DejaDupRecursiveOp* self); static gboolean _deja_dup_recursive_op_idle_action_gsource_func (gpointer self); -static void __lambda2 (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self); -static void ___lambda2_deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self); +static void _lambda16_ (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self); +static void __lambda16__deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self); +void deja_dup_recursive_op_start (DejaDupRecursiveOp* self); +GFile* deja_dup_recursive_op_get_src (DejaDupRecursiveOp* self); +GFile* deja_dup_recursive_op_get_dst (DejaDupRecursiveOp* self); static void deja_dup_recursive_op_do_dir (DejaDupRecursiveOp* self); -static void _deja_dup_recursive_op_do_children_ready1_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self); +static void deja_dup_recursive_op_check_ref (DejaDupRecursiveOp* self); +static void deja_dup_recursive_op_add_ref (DejaDupRecursiveOp* self); static void deja_dup_recursive_op_do_children (DejaDupRecursiveOp* self); -static void _deja_dup_recursive_op_do_children_ready2_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self); static void deja_dup_recursive_op_do_children_ready1 (DejaDupRecursiveOp* self, GObject* obj, GAsyncResult* res); -static void _g_list_free_g_object_unref (GList* self); -static void __lambda0 (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self); -static void ___lambda0_deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self); -static void __lambda1 (DejaDupRecursiveOp* m, GFile* s, GFile* d, const char* e, DejaDupRecursiveOp* self); -static void ___lambda1_deja_dup_recursive_op_raise_error (DejaDupRecursiveOp* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self); -static void deja_dup_recursive_op_do_children_ready2 (DejaDupRecursiveOp* self, GObject* obj, GAsyncResult* res); -static void deja_dup_recursive_op_add_ref (DejaDupRecursiveOp* self); +static void _deja_dup_recursive_op_do_children_ready1_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self); static void deja_dup_recursive_op_remove_ref (DejaDupRecursiveOp* self); -static void deja_dup_recursive_op_check_ref (DejaDupRecursiveOp* self); +static void deja_dup_recursive_op_do_children_ready2 (DejaDupRecursiveOp* self, GObject* obj, GAsyncResult* res); +static void _deja_dup_recursive_op_do_children_ready2_gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self); +static void _g_list_free_g_object_unref (GList* self); +static void _lambda14_ (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self); +static void __lambda14__deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self); +static void _lambda15_ (DejaDupRecursiveOp* m, GFile* s, GFile* d, const char* e, DejaDupRecursiveOp* self); +static void __lambda15__deja_dup_recursive_op_raise_error (DejaDupRecursiveOp* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self); static void deja_dup_recursive_op_set_src (DejaDupRecursiveOp* self, GFile* value); static void deja_dup_recursive_op_set_dst (DejaDupRecursiveOp* self, GFile* value); static gpointer deja_dup_recursive_op_parent_class = NULL; static void deja_dup_recursive_op_finalize (GObject* obj); +static void deja_dup_recursive_op_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_recursive_op_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); @@ -106,21 +148,21 @@ } -static void __lambda2 (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self) { +static void _lambda16_ (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self) { g_return_if_fail (m != NULL); gtk_main_quit (); } -static void ___lambda2_deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self) { - __lambda2 (_sender, self); +static void __lambda16__deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self) { + _lambda16_ (_sender, self); } void deja_dup_recursive_op_start (DejaDupRecursiveOp* self) { g_return_if_fail (self != NULL); g_idle_add (_deja_dup_recursive_op_idle_action_gsource_func, self); - g_signal_connect (self, "done", (GCallback) ___lambda2_deja_dup_recursive_op_done, self); + g_signal_connect (self, "done", (GCallback) __lambda16__deja_dup_recursive_op_done, self); gtk_main (); } @@ -128,10 +170,10 @@ void deja_dup_recursive_op_start_async (DejaDupRecursiveOp* self) { g_return_if_fail (self != NULL); if (self->priv->_src != NULL) { - self->src_type = g_file_query_file_type (self->priv->_src, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL); + self->src_type = hacks_file_query_file_type (self->priv->_src, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS); } if (self->priv->_dst != NULL) { - self->dst_type = g_file_query_file_type (self->priv->_dst, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL); + self->dst_type = hacks_file_query_file_type (self->priv->_dst, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS); } switch (self->src_type) { case G_FILE_TYPE_DIRECTORY: @@ -175,30 +217,30 @@ static void deja_dup_recursive_op_do_children_ready1 (DejaDupRecursiveOp* self, GObject* obj, GAsyncResult* res) { - GError * inner_error; + GError * _inner_error_; GFileEnumerator* enumerator; g_return_if_fail (self != NULL); g_return_if_fail (obj != NULL); g_return_if_fail (res != NULL); - inner_error = NULL; + _inner_error_ = NULL; enumerator = NULL; { - GFileEnumerator* _tmp0; - GFileEnumerator* _tmp1; - _tmp0 = g_file_enumerate_children_finish (self->priv->_src, res, &inner_error); - if (inner_error != NULL) { - goto __catch24_g_error; - goto __finally24; + GFileEnumerator* _tmp0_; + GFileEnumerator* _tmp1_; + _tmp0_ = g_file_enumerate_children_finish (self->priv->_src, res, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch58_g_error; + goto __finally58; } - _tmp1 = NULL; - enumerator = (_tmp1 = _tmp0, (enumerator == NULL) ? NULL : (enumerator = (g_object_unref (enumerator), NULL)), _tmp1); + _tmp1_ = NULL; + enumerator = (_tmp1_ = _tmp0_, (enumerator == NULL) ? NULL : (enumerator = (g_object_unref (enumerator), NULL)), _tmp1_); } - goto __finally24; - __catch24_g_error: + goto __finally58; + __catch58_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name (self, "raise-error", self->priv->_src, self->priv->_dst, e->message); deja_dup_recursive_op_remove_ref (self); @@ -208,11 +250,11 @@ return; } } - __finally24: - if (inner_error != NULL) { + __finally58: + if (_inner_error_ != NULL) { (enumerator == NULL) ? NULL : (enumerator = (g_object_unref (enumerator), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } g_file_enumerator_next_files_async (enumerator, DEJA_DUP_RECURSIVE_OP_NUM_ENUMERATED, G_PRIORITY_DEFAULT, NULL, _deja_dup_recursive_op_do_children_ready2_gasync_ready_callback, self); @@ -226,19 +268,19 @@ } -static void __lambda0 (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self) { +static void _lambda14_ (DejaDupRecursiveOp* m, DejaDupRecursiveOp* self) { g_return_if_fail (m != NULL); deja_dup_recursive_op_remove_ref (self); g_object_unref ((GObject*) m); } -static void ___lambda0_deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self) { - __lambda0 (_sender, self); +static void __lambda14__deja_dup_recursive_op_done (DejaDupRecursiveOp* _sender, gpointer self) { + _lambda14_ (_sender, self); } -static void __lambda1 (DejaDupRecursiveOp* m, GFile* s, GFile* d, const char* e, DejaDupRecursiveOp* self) { +static void _lambda15_ (DejaDupRecursiveOp* m, GFile* s, GFile* d, const char* e, DejaDupRecursiveOp* self) { g_return_if_fail (m != NULL); g_return_if_fail (s != NULL); g_return_if_fail (d != NULL); @@ -247,40 +289,40 @@ } -static void ___lambda1_deja_dup_recursive_op_raise_error (DejaDupRecursiveOp* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self) { - __lambda1 (_sender, src, dst, errstr, self); +static void __lambda15__deja_dup_recursive_op_raise_error (DejaDupRecursiveOp* _sender, GFile* src, GFile* dst, const char* errstr, gpointer self) { + _lambda15_ (_sender, src, dst, errstr, self); } static void deja_dup_recursive_op_do_children_ready2 (DejaDupRecursiveOp* self, GObject* obj, GAsyncResult* res) { - GError * inner_error; - GFileEnumerator* _tmp0; + GError * _inner_error_; + GFileEnumerator* _tmp0_; GFileEnumerator* enumerator; GList* infos; g_return_if_fail (self != NULL); g_return_if_fail (obj != NULL); g_return_if_fail (res != NULL); - inner_error = NULL; - _tmp0 = NULL; - enumerator = (_tmp0 = G_FILE_ENUMERATOR (obj), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); + _inner_error_ = NULL; + _tmp0_ = NULL; + enumerator = (_tmp0_ = G_FILE_ENUMERATOR (obj), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); infos = NULL; { - GList* _tmp1; - GList* _tmp2; - _tmp1 = g_file_enumerator_next_files_finish (enumerator, res, &inner_error); - if (inner_error != NULL) { - goto __catch25_g_error; - goto __finally25; + GList* _tmp1_; + GList* _tmp2_; + _tmp1_ = g_file_enumerator_next_files_finish (enumerator, res, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch59_g_error; + goto __finally59; } - _tmp2 = NULL; - infos = (_tmp2 = _tmp1, (infos == NULL) ? NULL : (infos = (_g_list_free_g_object_unref (infos), NULL)), _tmp2); + _tmp2_ = NULL; + infos = (_tmp2_ = _tmp1_, (infos == NULL) ? NULL : (infos = (_g_list_free_g_object_unref (infos), NULL)), _tmp2_); } - goto __finally25; - __catch25_g_error: + goto __finally59; + __catch59_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_signal_emit_by_name (self, "raise-error", self->priv->_src, self->priv->_dst, e->message); deja_dup_recursive_op_remove_ref (self); @@ -291,12 +333,12 @@ return; } } - __finally25: - if (inner_error != NULL) { + __finally59: + if (_inner_error_ != NULL) { (enumerator == NULL) ? NULL : (enumerator = (g_object_unref (enumerator), NULL)); (infos == NULL) ? NULL : (infos = (_g_list_free_g_object_unref (infos), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } { @@ -304,17 +346,17 @@ GList* info_it; info_collection = infos; for (info_it = info_collection; info_it != NULL; info_it = info_it->next) { - GFileInfo* _tmp3; + GFileInfo* _tmp3_; GFileInfo* info; - _tmp3 = NULL; - info = (_tmp3 = (GFileInfo*) info_it->data, (_tmp3 == NULL) ? NULL : g_object_ref (_tmp3)); + _tmp3_ = NULL; + info = (_tmp3_ = (GFileInfo*) info_it->data, (_tmp3_ == NULL) ? NULL : g_object_ref (_tmp3_)); { DejaDupRecursiveOp* op; deja_dup_recursive_op_add_ref (self); op = deja_dup_recursive_op_clone_for_info (self, info); g_object_ref ((GObject*) op); - g_signal_connect (op, "done", (GCallback) ___lambda0_deja_dup_recursive_op_done, self); - g_signal_connect (op, "raise-error", (GCallback) ___lambda1_deja_dup_recursive_op_raise_error, self); + g_signal_connect (op, "done", (GCallback) __lambda14__deja_dup_recursive_op_done, self); + g_signal_connect (op, "raise-error", (GCallback) __lambda15__deja_dup_recursive_op_raise_error, self); /* percolate up*/ deja_dup_recursive_op_start_async (op); (info == NULL) ? NULL : (info = (g_object_unref (info), NULL)); @@ -335,20 +377,20 @@ /* parent dir itself*/ static void deja_dup_recursive_op_add_ref (DejaDupRecursiveOp* self) { g_return_if_fail (self != NULL); - self->priv->ref_count = self->priv->ref_count + 1; + self->priv->refs = self->priv->refs + 1; } static void deja_dup_recursive_op_remove_ref (DejaDupRecursiveOp* self) { g_return_if_fail (self != NULL); - self->priv->ref_count = self->priv->ref_count - 1; + self->priv->refs = self->priv->refs - 1; deja_dup_recursive_op_check_ref (self); } static void deja_dup_recursive_op_check_ref (DejaDupRecursiveOp* self) { g_return_if_fail (self != NULL); - if (self->priv->ref_count == 0) { + if (self->priv->refs == 0) { if (self->src_type == G_FILE_TYPE_DIRECTORY) { deja_dup_recursive_op_finish_dir (self); } @@ -364,12 +406,12 @@ static void deja_dup_recursive_op_set_src (DejaDupRecursiveOp* self, GFile* value) { - GFile* _tmp2; - GFile* _tmp1; + GFile* _tmp2_; + GFile* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_src = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_src == NULL) ? NULL : (self->priv->_src = (g_object_unref (self->priv->_src), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_src = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_src == NULL) ? NULL : (self->priv->_src = (g_object_unref (self->priv->_src), NULL)), _tmp2_); g_object_notify ((GObject *) self, "src"); } @@ -381,61 +423,26 @@ static void deja_dup_recursive_op_set_dst (DejaDupRecursiveOp* self, GFile* value) { - GFile* _tmp2; - GFile* _tmp1; + GFile* _tmp2_; + GFile* _tmp1_; g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_dst = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_dst == NULL) ? NULL : (self->priv->_dst = (g_object_unref (self->priv->_dst), NULL)), _tmp2); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_dst = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_dst == NULL) ? NULL : (self->priv->_dst = (g_object_unref (self->priv->_dst), NULL)), _tmp2_); g_object_notify ((GObject *) self, "dst"); } -static void deja_dup_recursive_op_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - DejaDupRecursiveOp * self; - gpointer boxed; - self = DEJA_DUP_RECURSIVE_OP (object); - switch (property_id) { - case DEJA_DUP_RECURSIVE_OP_SRC: - g_value_set_object (value, deja_dup_recursive_op_get_src (self)); - break; - case DEJA_DUP_RECURSIVE_OP_DST: - g_value_set_object (value, deja_dup_recursive_op_get_dst (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void deja_dup_recursive_op_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - DejaDupRecursiveOp * self; - self = DEJA_DUP_RECURSIVE_OP (object); - switch (property_id) { - case DEJA_DUP_RECURSIVE_OP_SRC: - deja_dup_recursive_op_set_src (self, g_value_get_object (value)); - break; - case DEJA_DUP_RECURSIVE_OP_DST: - deja_dup_recursive_op_set_dst (self, g_value_get_object (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - static void deja_dup_recursive_op_class_init (DejaDupRecursiveOpClass * klass) { deja_dup_recursive_op_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (DejaDupRecursiveOpPrivate)); - G_OBJECT_CLASS (klass)->get_property = deja_dup_recursive_op_get_property; - G_OBJECT_CLASS (klass)->set_property = deja_dup_recursive_op_set_property; - G_OBJECT_CLASS (klass)->finalize = deja_dup_recursive_op_finalize; DEJA_DUP_RECURSIVE_OP_CLASS (klass)->handle_file = deja_dup_recursive_op_real_handle_file; DEJA_DUP_RECURSIVE_OP_CLASS (klass)->handle_dir = deja_dup_recursive_op_real_handle_dir; DEJA_DUP_RECURSIVE_OP_CLASS (klass)->finish_dir = deja_dup_recursive_op_real_finish_dir; DEJA_DUP_RECURSIVE_OP_CLASS (klass)->clone_for_info = deja_dup_recursive_op_real_clone_for_info; + G_OBJECT_CLASS (klass)->get_property = deja_dup_recursive_op_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_recursive_op_set_property; + G_OBJECT_CLASS (klass)->finalize = deja_dup_recursive_op_finalize; g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_RECURSIVE_OP_SRC, g_param_spec_object ("src", "src", "src", G_TYPE_FILE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_RECURSIVE_OP_DST, g_param_spec_object ("dst", "dst", "dst", G_TYPE_FILE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); g_signal_new ("done", DEJA_DUP_TYPE_RECURSIVE_OP, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); @@ -467,6 +474,41 @@ } +static void deja_dup_recursive_op_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupRecursiveOp * self; + gpointer boxed; + self = DEJA_DUP_RECURSIVE_OP (object); + switch (property_id) { + case DEJA_DUP_RECURSIVE_OP_SRC: + g_value_set_object (value, deja_dup_recursive_op_get_src (self)); + break; + case DEJA_DUP_RECURSIVE_OP_DST: + g_value_set_object (value, deja_dup_recursive_op_get_dst (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_recursive_op_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupRecursiveOp * self; + self = DEJA_DUP_RECURSIVE_OP (object); + switch (property_id) { + case DEJA_DUP_RECURSIVE_OP_SRC: + deja_dup_recursive_op_set_src (self, g_value_get_object (value)); + break; + case DEJA_DUP_RECURSIVE_OP_DST: + deja_dup_recursive_op_set_dst (self, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + static void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_STRING (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT_STRING) (gpointer data1, gpointer arg_1, gpointer arg_2, const char* arg_3, gpointer data2); diff -Nru deja-dup-7.4/libdeja-dup/RecursiveOp.h deja-dup-10.0/libdeja-dup/RecursiveOp.h --- deja-dup-7.4/libdeja-dup/RecursiveOp.h 2009-01-29 15:49:46.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveOp.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,55 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __RECURSIVEOP_H__ -#define __RECURSIVEOP_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gio/gio.h> -#include <stdlib.h> -#include <string.h> - -G_BEGIN_DECLS - - -#define DEJA_DUP_TYPE_RECURSIVE_OP (deja_dup_recursive_op_get_type ()) -#define DEJA_DUP_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOp)) -#define DEJA_DUP_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) -#define DEJA_DUP_IS_RECURSIVE_OP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_RECURSIVE_OP)) -#define DEJA_DUP_IS_RECURSIVE_OP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_RECURSIVE_OP)) -#define DEJA_DUP_RECURSIVE_OP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_RECURSIVE_OP, DejaDupRecursiveOpClass)) - -typedef struct _DejaDupRecursiveOp DejaDupRecursiveOp; -typedef struct _DejaDupRecursiveOpClass DejaDupRecursiveOpClass; -typedef struct _DejaDupRecursiveOpPrivate DejaDupRecursiveOpPrivate; - -struct _DejaDupRecursiveOp { - GObject parent_instance; - DejaDupRecursiveOpPrivate * priv; - GFileType src_type; - GFileType dst_type; -}; - -struct _DejaDupRecursiveOpClass { - GObjectClass parent_class; - void (*handle_file) (DejaDupRecursiveOp* self); - void (*handle_dir) (DejaDupRecursiveOp* self); - void (*finish_dir) (DejaDupRecursiveOp* self); - DejaDupRecursiveOp* (*clone_for_info) (DejaDupRecursiveOp* self, GFileInfo* info); -}; - - -void deja_dup_recursive_op_handle_file (DejaDupRecursiveOp* self); -void deja_dup_recursive_op_handle_dir (DejaDupRecursiveOp* self); -void deja_dup_recursive_op_finish_dir (DejaDupRecursiveOp* self); -DejaDupRecursiveOp* deja_dup_recursive_op_clone_for_info (DejaDupRecursiveOp* self, GFileInfo* info); -void deja_dup_recursive_op_start (DejaDupRecursiveOp* self); -void deja_dup_recursive_op_start_async (DejaDupRecursiveOp* self); -GFile* deja_dup_recursive_op_get_src (DejaDupRecursiveOp* self); -GFile* deja_dup_recursive_op_get_dst (DejaDupRecursiveOp* self); -GType deja_dup_recursive_op_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/libdeja-dup/RecursiveOp.vala deja-dup-10.0/libdeja-dup/RecursiveOp.vala --- deja-dup-7.4/libdeja-dup/RecursiveOp.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/RecursiveOp.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -36,7 +36,7 @@ protected virtual void finish_dir() {} // src is dir we are done with protected abstract RecursiveOp clone_for_info(FileInfo info); - int ref_count; + int refs; bool idle_action() { @@ -47,16 +47,16 @@ public void start() { Idle.add(idle_action); - done += (m) => {Gtk.main_quit();}; + done.connect((m) => {Gtk.main_quit();}); Gtk.main(); } public void start_async() { if (src != null) - src_type = src.query_file_type(FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null); + src_type = hacks_file_query_file_type(src, FileQueryInfoFlags.NOFOLLOW_SYMLINKS); if (dst != null) - dst_type = dst.query_file_type(FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null); + dst_type = hacks_file_query_file_type(dst, FileQueryInfoFlags.NOFOLLOW_SYMLINKS); switch (src_type) { case FileType.DIRECTORY: @@ -122,8 +122,8 @@ add_ref(); var op = clone_for_info(info); op.@ref(); - op.done += (m) => {remove_ref(); m.unref();}; - op.raise_error += (m, s, d, e) => {raise_error(s, d, e);}; // percolate up + op.done.connect((m) => {remove_ref(); m.unref();}); + op.raise_error.connect((m, s, d, e) => {raise_error(s, d, e);}); // percolate up op.start_async(); } @@ -135,16 +135,16 @@ } void add_ref() { - ++ref_count; + ++refs; } void remove_ref() { - --ref_count; + --refs; check_ref(); } void check_ref() { - if (ref_count == 0) { + if (refs == 0) { if (src_type == FileType.DIRECTORY) finish_dir(); done(); diff -Nru deja-dup-7.4/libdeja-dup/ToggleGroup.c deja-dup-10.0/libdeja-dup/ToggleGroup.c --- deja-dup-7.4/libdeja-dup/ToggleGroup.c 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ToggleGroup.c 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,271 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ + +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> + + +#define DEJA_DUP_TYPE_TOGGLABLE (deja_dup_togglable_get_type ()) +#define DEJA_DUP_TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_TOGGLABLE, DejaDupTogglable)) +#define DEJA_DUP_IS_TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_TOGGLABLE)) +#define DEJA_DUP_TOGGLABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), DEJA_DUP_TYPE_TOGGLABLE, DejaDupTogglableIface)) + +typedef struct _DejaDupTogglable DejaDupTogglable; +typedef struct _DejaDupTogglableIface DejaDupTogglableIface; + +#define DEJA_DUP_TYPE_TOGGLE_GROUP (deja_dup_toggle_group_get_type ()) +#define DEJA_DUP_TOGGLE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DEJA_DUP_TYPE_TOGGLE_GROUP, DejaDupToggleGroup)) +#define DEJA_DUP_TOGGLE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), DEJA_DUP_TYPE_TOGGLE_GROUP, DejaDupToggleGroupClass)) +#define DEJA_DUP_IS_TOGGLE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), DEJA_DUP_TYPE_TOGGLE_GROUP)) +#define DEJA_DUP_IS_TOGGLE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), DEJA_DUP_TYPE_TOGGLE_GROUP)) +#define DEJA_DUP_TOGGLE_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DEJA_DUP_TYPE_TOGGLE_GROUP, DejaDupToggleGroupClass)) + +typedef struct _DejaDupToggleGroup DejaDupToggleGroup; +typedef struct _DejaDupToggleGroupClass DejaDupToggleGroupClass; +typedef struct _DejaDupToggleGroupPrivate DejaDupToggleGroupPrivate; + +struct _DejaDupTogglableIface { + GTypeInterface parent_iface; + gboolean (*get_active) (DejaDupTogglable* self); +}; + +struct _DejaDupToggleGroup { + GObject parent_instance; + DejaDupToggleGroupPrivate * priv; +}; + +struct _DejaDupToggleGroupClass { + GObjectClass parent_class; +}; + +struct _DejaDupToggleGroupPrivate { + DejaDupTogglable* _toggle; + GList* dependents; +}; + + + +GType deja_dup_togglable_get_type (void); +gboolean deja_dup_togglable_get_active (DejaDupTogglable* self); +GType deja_dup_toggle_group_get_type (void); +#define DEJA_DUP_TOGGLE_GROUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), DEJA_DUP_TYPE_TOGGLE_GROUP, DejaDupToggleGroupPrivate)) +enum { + DEJA_DUP_TOGGLE_GROUP_DUMMY_PROPERTY, + DEJA_DUP_TOGGLE_GROUP_TOGGLE +}; +static void _g_list_free_g_object_unref (GList* self); +static void deja_dup_toggle_group_set_toggle (DejaDupToggleGroup* self, DejaDupTogglable* value); +DejaDupToggleGroup* deja_dup_toggle_group_new (DejaDupTogglable* toggle); +DejaDupToggleGroup* deja_dup_toggle_group_construct (GType object_type, DejaDupTogglable* toggle); +DejaDupToggleGroup* deja_dup_toggle_group_new (DejaDupTogglable* toggle); +void deja_dup_toggle_group_add_dependent (DejaDupToggleGroup* self, GtkWidget* w); +DejaDupTogglable* deja_dup_toggle_group_get_toggle (DejaDupToggleGroup* self); +void deja_dup_toggle_group_check (DejaDupToggleGroup* self); +static void _lambda18_ (DejaDupTogglable* t, DejaDupToggleGroup* self); +static void __lambda18__deja_dup_togglable_toggled (DejaDupTogglable* _sender, gpointer self); +static GObject * deja_dup_toggle_group_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static gpointer deja_dup_toggle_group_parent_class = NULL; +static void deja_dup_toggle_group_finalize (GObject* obj); +static void deja_dup_toggle_group_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void deja_dup_toggle_group_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); + + + +gboolean deja_dup_togglable_get_active (DejaDupTogglable* self) { + return DEJA_DUP_TOGGLABLE_GET_INTERFACE (self)->get_active (self); +} + + +static void deja_dup_togglable_base_init (DejaDupTogglableIface * iface) { + static gboolean initialized = FALSE; + if (!initialized) { + initialized = TRUE; + g_signal_new ("toggled", DEJA_DUP_TYPE_TOGGLABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + } +} + + +GType deja_dup_togglable_get_type (void) { + static GType deja_dup_togglable_type_id = 0; + if (deja_dup_togglable_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupTogglableIface), (GBaseInitFunc) deja_dup_togglable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + deja_dup_togglable_type_id = g_type_register_static (G_TYPE_INTERFACE, "DejaDupTogglable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (deja_dup_togglable_type_id, G_TYPE_OBJECT); + } + return deja_dup_togglable_type_id; +} + + +static void _g_list_free_g_object_unref (GList* self) { + g_list_foreach (self, (GFunc) g_object_unref, NULL); + g_list_free (self); +} + + +DejaDupToggleGroup* deja_dup_toggle_group_construct (GType object_type, DejaDupTogglable* toggle) { + GParameter * __params; + GParameter * __params_it; + DejaDupToggleGroup * self; + g_return_val_if_fail (toggle != NULL, NULL); + __params = g_new0 (GParameter, 1); + __params_it = __params; + __params_it->name = "toggle"; + g_value_init (&__params_it->value, DEJA_DUP_TYPE_TOGGLABLE); + g_value_set_object (&__params_it->value, toggle); + __params_it++; + self = g_object_newv (object_type, __params_it - __params, __params); + while (__params_it > __params) { + --__params_it; + g_value_unset (&__params_it->value); + } + g_free (__params); + return self; +} + + +DejaDupToggleGroup* deja_dup_toggle_group_new (DejaDupTogglable* toggle) { + return deja_dup_toggle_group_construct (DEJA_DUP_TYPE_TOGGLE_GROUP, toggle); +} + + +void deja_dup_toggle_group_add_dependent (DejaDupToggleGroup* self, GtkWidget* w) { + GtkWidget* _tmp0_; + g_return_if_fail (self != NULL); + g_return_if_fail (w != NULL); + _tmp0_ = NULL; + self->priv->dependents = g_list_append (self->priv->dependents, (_tmp0_ = w, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_))); +} + + +void deja_dup_toggle_group_check (DejaDupToggleGroup* self) { + gboolean on; + g_return_if_fail (self != NULL); + on = deja_dup_togglable_get_active (self->priv->_toggle); + { + GList* w_collection; + GList* w_it; + w_collection = self->priv->dependents; + for (w_it = w_collection; w_it != NULL; w_it = w_it->next) { + GtkWidget* _tmp0_; + GtkWidget* w; + _tmp0_ = NULL; + w = (_tmp0_ = (GtkWidget*) w_it->data, (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); + { + gtk_widget_set_sensitive (w, on); + (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)); + } + } + } +} + + +DejaDupTogglable* deja_dup_toggle_group_get_toggle (DejaDupToggleGroup* self) { + g_return_val_if_fail (self != NULL, NULL); + return self->priv->_toggle; +} + + +static void deja_dup_toggle_group_set_toggle (DejaDupToggleGroup* self, DejaDupTogglable* value) { + DejaDupTogglable* _tmp2_; + DejaDupTogglable* _tmp1_; + g_return_if_fail (self != NULL); + _tmp2_ = NULL; + _tmp1_ = NULL; + self->priv->_toggle = (_tmp2_ = (_tmp1_ = value, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)), (self->priv->_toggle == NULL) ? NULL : (self->priv->_toggle = (g_object_unref (self->priv->_toggle), NULL)), _tmp2_); + g_object_notify ((GObject *) self, "toggle"); +} + + +static void _lambda18_ (DejaDupTogglable* t, DejaDupToggleGroup* self) { + g_return_if_fail (t != NULL); + deja_dup_toggle_group_check (self); +} + + +static void __lambda18__deja_dup_togglable_toggled (DejaDupTogglable* _sender, gpointer self) { + _lambda18_ (_sender, self); +} + + +static GObject * deja_dup_toggle_group_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + DejaDupToggleGroupClass * klass; + GObjectClass * parent_class; + DejaDupToggleGroup * self; + klass = DEJA_DUP_TOGGLE_GROUP_CLASS (g_type_class_peek (DEJA_DUP_TYPE_TOGGLE_GROUP)); + parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = DEJA_DUP_TOGGLE_GROUP (obj); + { + g_signal_connect (self->priv->_toggle, "toggled", (GCallback) __lambda18__deja_dup_togglable_toggled, self); + } + return obj; +} + + +static void deja_dup_toggle_group_class_init (DejaDupToggleGroupClass * klass) { + deja_dup_toggle_group_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (DejaDupToggleGroupPrivate)); + G_OBJECT_CLASS (klass)->get_property = deja_dup_toggle_group_get_property; + G_OBJECT_CLASS (klass)->set_property = deja_dup_toggle_group_set_property; + G_OBJECT_CLASS (klass)->constructor = deja_dup_toggle_group_constructor; + G_OBJECT_CLASS (klass)->finalize = deja_dup_toggle_group_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), DEJA_DUP_TOGGLE_GROUP_TOGGLE, g_param_spec_object ("toggle", "toggle", "toggle", DEJA_DUP_TYPE_TOGGLABLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); +} + + +static void deja_dup_toggle_group_instance_init (DejaDupToggleGroup * self) { + self->priv = DEJA_DUP_TOGGLE_GROUP_GET_PRIVATE (self); +} + + +static void deja_dup_toggle_group_finalize (GObject* obj) { + DejaDupToggleGroup * self; + self = DEJA_DUP_TOGGLE_GROUP (obj); + (self->priv->_toggle == NULL) ? NULL : (self->priv->_toggle = (g_object_unref (self->priv->_toggle), NULL)); + (self->priv->dependents == NULL) ? NULL : (self->priv->dependents = (_g_list_free_g_object_unref (self->priv->dependents), NULL)); + G_OBJECT_CLASS (deja_dup_toggle_group_parent_class)->finalize (obj); +} + + +GType deja_dup_toggle_group_get_type (void) { + static GType deja_dup_toggle_group_type_id = 0; + if (deja_dup_toggle_group_type_id == 0) { + static const GTypeInfo g_define_type_info = { sizeof (DejaDupToggleGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deja_dup_toggle_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DejaDupToggleGroup), 0, (GInstanceInitFunc) deja_dup_toggle_group_instance_init, NULL }; + deja_dup_toggle_group_type_id = g_type_register_static (G_TYPE_OBJECT, "DejaDupToggleGroup", &g_define_type_info, 0); + } + return deja_dup_toggle_group_type_id; +} + + +static void deja_dup_toggle_group_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + DejaDupToggleGroup * self; + gpointer boxed; + self = DEJA_DUP_TOGGLE_GROUP (object); + switch (property_id) { + case DEJA_DUP_TOGGLE_GROUP_TOGGLE: + g_value_set_object (value, deja_dup_toggle_group_get_toggle (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void deja_dup_toggle_group_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + DejaDupToggleGroup * self; + self = DEJA_DUP_TOGGLE_GROUP (object); + switch (property_id) { + case DEJA_DUP_TOGGLE_GROUP_TOGGLE: + deja_dup_toggle_group_set_toggle (self, g_value_get_object (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + + + diff -Nru deja-dup-7.4/libdeja-dup/ToggleGroup.vala deja-dup-10.0/libdeja-dup/ToggleGroup.vala --- deja-dup-7.4/libdeja-dup/ToggleGroup.vala 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/libdeja-dup/ToggleGroup.vala 2009-06-02 17:48:48.000000000 -0400 @@ -0,0 +1,56 @@ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +using GLib; + +namespace DejaDup { + +public interface Togglable : Object +{ + public signal void toggled(); + public abstract bool get_active(); +} + +public class ToggleGroup : Object +{ + public Togglable toggle {get; construct;} + + public ToggleGroup(Togglable toggle) { + this.toggle = toggle; + } + + List<Gtk.Widget> dependents; + public void add_dependent(Gtk.Widget w) { + dependents.append(w); + } + + public void check() + { + bool on = toggle.get_active(); + foreach (Gtk.Widget w in dependents) + w.set_sensitive(on); + } + + construct { + toggle.toggled.connect((t) => {check();}); + } +} + +} + diff -Nru deja-dup-7.4/ltmain.sh deja-dup-10.0/ltmain.sh --- deja-dup-7.4/ltmain.sh 2009-01-29 15:48:51.000000000 -0500 +++ deja-dup-10.0/ltmain.sh 2009-06-02 17:48:49.000000000 -0400 @@ -1,6 +1,6 @@ # Generated from ltmain.m4sh. -# ltmain.sh (GNU libtool) 2.2.4 +# ltmain.sh (GNU libtool) 2.2.6 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. @@ -65,7 +65,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.2.4 Debian-2.2.4-0ubuntu4 +# $progname: (GNU libtool) 2.2.6 Debian-2.2.6a-4 # automake: $automake_version # autoconf: $autoconf_version # @@ -73,9 +73,9 @@ PROGRAM=ltmain.sh PACKAGE=libtool -VERSION="2.2.4 Debian-2.2.4-0ubuntu4" +VERSION="2.2.6 Debian-2.2.6a-4" TIMESTAMP="" -package_revision=1.2976 +package_revision=1.3012 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -805,7 +805,7 @@ case $host in - *cygwin* | *mingw* | *pw32*) + *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; @@ -893,8 +893,9 @@ # determined imposters. func_lalib_p () { - $SED -e 4q "$1" 2>/dev/null \ - | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file @@ -907,7 +908,7 @@ func_lalib_unsafe_p () { lalib_p=no - if test -r "$1" && exec 5<&0 <"$1"; then + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line @@ -1275,7 +1276,7 @@ # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in - cygwin* | mingw* | pw32* | os2*) + cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac @@ -2046,7 +2047,7 @@ 'exit $?' tstripme="$stripme" case $host_os in - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" @@ -2152,7 +2153,7 @@ # Do a test to see if this is really a libtool program. case $host in - *cygwin*|*mingw*) + *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result @@ -2358,7 +2359,7 @@ $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in - *cygwin* | *mingw* ) + *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; @@ -2370,7 +2371,7 @@ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin | *mingw* ) + *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -2426,7 +2427,7 @@ } lt_dlsymlist; " case $host in - *cygwin* | *mingw* ) + *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation @@ -2512,7 +2513,7 @@ # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in - *cygwin* | *mingw* ) + *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` @@ -2691,25 +2692,16 @@ -# func_emit_wrapper arg +# func_emit_wrapper_part1 [arg=no] # -# emit a libtool wrapper script on stdout -# don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variable -# set therein. -# -# arg is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the '.lib' directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () +# Emit the first part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part1 () { - func_emit_wrapper_arg1=no + func_emit_wrapper_part1_arg1=no if test -n "$1" ; then - func_emit_wrapper_arg1=$1 + func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ @@ -2794,10 +2786,27 @@ file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done +" +} +# end: func_emit_wrapper_part1 + +# func_emit_wrapper_part2 [arg=no] +# +# Emit the second part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part2 () +{ + func_emit_wrapper_part2_arg1=no + if test -n "$1" ; then + func_emit_wrapper_part2_arg1=$1 + fi + + $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then @@ -2888,7 +2897,7 @@ " case $host in # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2*) + *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " @@ -2914,7 +2923,207 @@ fi\ " } -# end: func_emit_wrapper +# end: func_emit_wrapper_part2 + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=no + if test -n "$1" ; then + func_emit_wrapper_arg1=$1 + fi + + # split this up so that func_emit_cwrapperexe_src + # can call each part independently. + func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" + func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" +} + + +# func_to_host_path arg +# +# Convert paths to host format when used with build tools. +# Intended for use with "native" mingw (where libtool itself +# is running under the msys shell), or in the following cross- +# build environments: +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# where wine is equipped with the `winepath' executable. +# In the native mingw case, the (msys) shell automatically +# converts paths for any non-msys applications it launches, +# but that facility isn't available from inside the cwrapper. +# Similar accommodations are necessary for $host mingw and +# $build cygwin. Calling this function does no harm for other +# $host/$build combinations not listed above. +# +# ARG is the path (on $build) that should be converted to +# the proper representation for $host. The result is stored +# in $func_to_host_path_result. +func_to_host_path () +{ + func_to_host_path_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + case $build in + *mingw* ) # actually, msys + # awkward: cmd appends spaces to result + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_path_tmp1=`( cmd //c echo "$1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_path_tmp1=`cygpath -w "$1"` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # Unfortunately, winepath does not exit with a non-zero + # error code, so we are forced to check the contents of + # stdout. On the other hand, if the command is not + # found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both + # error code of zero AND non-empty stdout, which explains + # the odd construction: + func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + else + # Allow warning below. + func_to_host_path_result="" + fi + ;; + esac + if test -z "$func_to_host_path_result" ; then + func_error "Could not determine host path corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_path_result="$1" + fi + ;; + esac + fi +} +# end: func_to_host_path + +# func_to_host_pathlist arg +# +# Convert pathlists to host format when used with build tools. +# See func_to_host_path(), above. This function supports the +# following $build/$host combinations (but does no harm for +# combinations not listed here): +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# +# Path separators are also converted from $build format to +# $host format. If ARG begins or ends with a path separator +# character, it is preserved (but converted to $host format) +# on output. +# +# ARG is a pathlist (on $build) that should be converted to +# the proper representation on $host. The result is stored +# in $func_to_host_pathlist_result. +func_to_host_pathlist () +{ + func_to_host_pathlist_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_to_host_pathlist_tmp2="$1" + # Once set for this call, this variable should not be + # reassigned. It is used in tha fallback case. + func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e 's|^:*||' -e 's|:*$||'` + case $build in + *mingw* ) # Actually, msys. + # Awkward: cmd appends spaces to result. + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # unfortunately, winepath doesn't convert pathlists + func_to_host_pathlist_result="" + func_to_host_pathlist_oldIFS=$IFS + IFS=: + for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do + IFS=$func_to_host_pathlist_oldIFS + if test -n "$func_to_host_pathlist_f" ; then + func_to_host_path "$func_to_host_pathlist_f" + if test -n "$func_to_host_path_result" ; then + if test -z "$func_to_host_pathlist_result" ; then + func_to_host_pathlist_result="$func_to_host_path_result" + else + func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" + fi + fi + fi + IFS=: + done + IFS=$func_to_host_pathlist_oldIFS + ;; + esac + if test -z "$func_to_host_pathlist_result" ; then + func_error "Could not determine the host path(s) corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This may break if $1 contains DOS-style drive + # specifications. The fix is not to complicate the expression + # below, but for the user to provide a working wine installation + # with winepath so that path translation in the cross-to-mingw + # case works properly. + lt_replace_pathsep_nix_to_dos="s|:|;|g" + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_replace_pathsep_nix_to_dos"` + fi + # Now, add the leading and trailing path separators back + case "$1" in + :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" + ;; + esac + case "$1" in + *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" + ;; + esac + ;; + esac + fi +} +# end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout @@ -2951,6 +3160,12 @@ # include <stdint.h> # ifdef __CYGWIN__ # include <io.h> +# define HAVE_SETENV +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif # endif #endif #include <malloc.h> @@ -3057,29 +3272,105 @@ int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_opt_process_env_set (const char *arg); +void lt_opt_process_env_prepend (const char *arg); +void lt_opt_process_env_append (const char *arg); +int lt_split_name_value (const char *arg, char** name, char** value); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); -static const char *script_text = +static const char *script_text_part1 = EOF - func_emit_wrapper yes | + func_emit_wrapper_part1 yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ "/' -e 's/$/\\n"/' + echo ";" + cat <<EOF + +static const char *script_text_part2 = +EOF + func_emit_wrapper_part2 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <<EOF const char * MAGIC_EXE = "$magic_exe"; +const char * LIB_PATH_VARNAME = "$shlibpath_var"; +EOF + + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + func_to_host_pathlist "$temp_rpath" + cat <<EOF +const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; +EOF + else + cat <<"EOF" +const char * LIB_PATH_VALUE = ""; +EOF + fi + + if test -n "$dllsearchpath"; then + func_to_host_pathlist "$dllsearchpath:" + cat <<EOF +const char * EXE_PATH_VARNAME = "PATH"; +const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; +EOF + else + cat <<"EOF" +const char * EXE_PATH_VARNAME = ""; +const char * EXE_PATH_VALUE = ""; +EOF + fi + + if test "$fast_install" = yes; then + cat <<EOF +const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ +EOF + else + cat <<EOF +const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ +EOF + fi + + + cat <<"EOF" + +#define LTWRAPPER_OPTION_PREFIX "--lt-" +#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 + +static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; +static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; + +static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; + +static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; +static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; + /* argument is putenv-style "foo=bar", value of foo is set to bar */ + +static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; +static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; + /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ + +static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; +static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; + /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ int main (int argc, char *argv[]) { char **newargz; + int newargc; char *tmp_pathspec; char *actual_cwrapper_path; - char *shwrapper_name; + char *actual_cwrapper_name; + char *target_name; + char *lt_argv_zero; intptr_t rval = 127; - FILE *shwrapper; - const char *dumpscript_opt = "--lt-dump-script"; int i; program_name = (char *) xstrdup (base_name (argv[0])); @@ -3099,38 +3390,14 @@ ;; esac - cat <<EOF - printf ("%s", script_text); + cat <<"EOF" + printf ("%s", script_text_part1); + printf ("%s", script_text_part2); return 0; } } - newargz = XMALLOC (char *, argc + 2); -EOF - - if test -n "$TARGETSHELL" ; then - # no path translation at all - lt_newargv0=$TARGETSHELL - else - case "$host" in - *mingw* ) - # awkward: cmd appends spaces to result - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - lt_newargv0=`( cmd //c echo $SHELL | $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo $SHELL` - case $lt_newargv0 in - *.exe | *.EXE) ;; - *) lt_newargv0=$lt_newargv0.exe ;; - esac - ;; - * ) lt_newargv0=$SHELL ;; - esac - fi - - cat <<EOF - newargz[0] = (char *) xstrdup ("$lt_newargv0"); -EOF - - cat <<"EOF" + newargz = XMALLOC (char *, argc + 1); tmp_pathspec = find_executable (argv[0]); if (tmp_pathspec == NULL) lt_fatal ("Couldn't find %s", argv[0]); @@ -3142,39 +3409,60 @@ actual_cwrapper_path)); XFREE (tmp_pathspec); - shwrapper_name = (char *) xstrdup (base_name (actual_cwrapper_path)); - strendzap (actual_cwrapper_path, shwrapper_name); + actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); + strendzap (actual_cwrapper_path, actual_cwrapper_name); + + /* wrapper name transforms */ + strendzap (actual_cwrapper_name, ".exe"); + tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); + XFREE (actual_cwrapper_name); + actual_cwrapper_name = tmp_pathspec; + tmp_pathspec = 0; - /* shwrapper_name transforms */ - strendzap (shwrapper_name, ".exe"); - tmp_pathspec = XMALLOC (char, (strlen (shwrapper_name) + - strlen ("_ltshwrapperTMP") + 1)); - strcpy (tmp_pathspec, shwrapper_name); - strcat (tmp_pathspec, "_ltshwrapperTMP"); - XFREE (shwrapper_name); - shwrapper_name = tmp_pathspec; + /* target_name transforms -- use actual target program name; might have lt- prefix */ + target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); + strendzap (target_name, ".exe"); + tmp_pathspec = lt_extend_str (target_name, ".exe", 1); + XFREE (target_name); + target_name = tmp_pathspec; tmp_pathspec = 0; - LTWRAPPER_DEBUGPRINTF (("(main) libtool shell wrapper name: %s\n", - shwrapper_name)); + + LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", + target_name)); EOF cat <<EOF - newargz[1] = + newargz[0] = XMALLOC (char, (strlen (actual_cwrapper_path) + - strlen ("$objdir") + 1 + strlen (shwrapper_name) + 1)); - strcpy (newargz[1], actual_cwrapper_path); - strcat (newargz[1], "$objdir"); - strcat (newargz[1], "/"); - strcat (newargz[1], shwrapper_name); + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); + strcpy (newargz[0], actual_cwrapper_path); + strcat (newargz[0], "$objdir"); + strcat (newargz[0], "/"); EOF + cat <<"EOF" + /* stop here, and copy so we don't have to do this twice */ + tmp_pathspec = xstrdup (newargz[0]); + + /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ + strcat (newargz[0], actual_cwrapper_name); + + /* DO want the lt- prefix here if it exists, so use target_name */ + lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); + XFREE (tmp_pathspec); + tmp_pathspec = NULL; +EOF case $host_os in mingw*) cat <<"EOF" { char* p; - while ((p = strchr (newargz[1], '\\')) != NULL) + while ((p = strchr (newargz[0], '\\')) != NULL) + { + *p = '/'; + } + while ((p = strchr (lt_argv_zero, '\\')) != NULL) { *p = '/'; } @@ -3184,55 +3472,114 @@ esac cat <<"EOF" - XFREE (shwrapper_name); + XFREE (target_name); XFREE (actual_cwrapper_path); + XFREE (actual_cwrapper_name); - /* always write in binary mode */ - if ((shwrapper = fopen (newargz[1], FOPEN_WB)) == 0) - { - lt_fatal ("Could not open %s for writing", newargz[1]); - } - fprintf (shwrapper, "%s", script_text); - fclose (shwrapper); - - make_executable (newargz[1]); + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); + lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + newargc=0; for (i = 1; i < argc; i++) - newargz[i + 1] = xstrdup (argv[i]); - newargz[argc + 1] = NULL; + { + if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) + { + if (argv[i][env_set_opt_len] == '=') + { + const char *p = argv[i] + env_set_opt_len + 1; + lt_opt_process_env_set (p); + } + else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) + { + lt_opt_process_env_set (argv[++i]); /* don't copy */ + } + else + lt_fatal ("%s missing required argument", env_set_opt); + continue; + } + if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) + { + if (argv[i][env_prepend_opt_len] == '=') + { + const char *p = argv[i] + env_prepend_opt_len + 1; + lt_opt_process_env_prepend (p); + } + else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) + { + lt_opt_process_env_prepend (argv[++i]); /* don't copy */ + } + else + lt_fatal ("%s missing required argument", env_prepend_opt); + continue; + } + if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) + { + if (argv[i][env_append_opt_len] == '=') + { + const char *p = argv[i] + env_append_opt_len + 1; + lt_opt_process_env_append (p); + } + else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) + { + lt_opt_process_env_append (argv[++i]); /* don't copy */ + } + else + lt_fatal ("%s missing required argument", env_append_opt); + continue; + } + if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) + { + /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX + namespace, but it is not one of the ones we know about and + have already dealt with, above (inluding dump-script), then + report an error. Otherwise, targets might begin to believe + they are allowed to use options in the LTWRAPPER_OPTION_PREFIX + namespace. The first time any user complains about this, we'll + need to make LTWRAPPER_OPTION_PREFIX a configure-time option + or a configure.ac-settable value. + */ + lt_fatal ("Unrecognized option in %s namespace: '%s'", + ltwrapper_option_prefix, argv[i]); + } + /* otherwise ... */ + newargz[++newargc] = xstrdup (argv[i]); + } + newargz[++newargc] = NULL; - for (i = 0; i < argc + 1; i++) + LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); + for (i = 0; i < newargc; i++) { - LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, newargz[i])); + LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); } EOF case $host_os in mingw*) - cat <<EOF + cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ - rval = _spawnv (_P_WAIT, "$lt_newargv0", (const char * const *) newargz); + rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ - LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"$lt_newargv0\": errno = %d\n", errno)); + LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; -} EOF ;; *) - cat <<EOF - execv ("$lt_newargv0", newargz); + cat <<"EOF" + execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ -} EOF ;; esac cat <<"EOF" +} void * xmalloc (size_t num) @@ -3506,6 +3853,177 @@ lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } + +void +lt_setenv (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", + (name ? name : "<NULL>"), + (value ? value : "<NULL>"))); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +int +lt_split_name_value (const char *arg, char** name, char** value) +{ + const char *p; + int len; + if (!arg || !*arg) + return 1; + + p = strchr (arg, (int)'='); + + if (!p) + return 1; + + *value = xstrdup (++p); + + len = strlen (arg) - strlen (*value); + *name = XMALLOC (char, len); + strncpy (*name, arg, len-1); + (*name)[len - 1] = '\0'; + + return 0; +} + +void +lt_opt_process_env_set (const char *arg) +{ + char *name = NULL; + char *value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); + } + + lt_setenv (name, value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_prepend (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_append (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 1); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + (name ? name : "<NULL>"), + (value ? value : "<NULL>"))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + (name ? name : "<NULL>"), + (value ? value : "<NULL>"))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + + EOF } # end: func_emit_cwrapperexe_src @@ -3515,7 +4033,7 @@ { $opt_debug case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra @@ -3959,6 +4477,13 @@ -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result + if test -z "$dir"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -3977,14 +4502,16 @@ ;; esac case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; + ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; @@ -3995,7 +4522,7 @@ -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4072,7 +4599,7 @@ -no-install) case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" @@ -4820,19 +5347,19 @@ # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_duplicate_deps ; then - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac - fi - tmp_libs="$tmp_libs $deplib" - done continue fi # $pass = conv @@ -5032,7 +5559,7 @@ if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in - *cygwin* | *mingw*) + *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no @@ -5102,7 +5629,7 @@ elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin* | mingw*) + *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" @@ -5369,6 +5896,7 @@ if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do + path= case $deplib in -L*) path="$deplib" ;; *.la) @@ -5884,7 +6412,7 @@ tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in - *.$objext) + *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then @@ -5955,7 +6483,7 @@ if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) @@ -6454,7 +6982,7 @@ orig_export_symbols= case $host_os in - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then @@ -7079,14 +7607,16 @@ esac fi case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; @@ -7156,6 +7686,10 @@ wrappers_required=no fi ;; + *cegcc) + # Disable wrappers for cegcc, we are cross compiling anyway. + wrappers_required=no + ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no @@ -7308,11 +7842,10 @@ func_emit_cwrapperexe_src > $cwrappersource - # we should really use a build-platform specific compiler - # here, but OTOH, the wrappers (shell script and this C one) - # are only useful if you want to execute the "real" binary. - # Since the "real" binary is built for $host, then this - # wrapper might as well be built for $host, too. + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper @@ -7597,7 +8130,7 @@ # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file diff -Nru deja-dup-7.4/m4/gnome-doc-utils.m4 deja-dup-10.0/m4/gnome-doc-utils.m4 --- deja-dup-7.4/m4/gnome-doc-utils.m4 2009-01-29 15:48:54.000000000 -0500 +++ deja-dup-10.0/m4/gnome-doc-utils.m4 2009-06-02 17:48:47.000000000 -0400 @@ -36,7 +36,8 @@ # GNOME_DOC_INIT ([MINIMUM-VERSION],[ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) # AC_DEFUN([GNOME_DOC_INIT], -[ +[AC_REQUIRE([AC_PROG_LN_S])dnl + ifelse([$1],,[gdu_cv_version_required=0.3.2],[gdu_cv_version_required=$1]) PKG_CHECK_EXISTS([gnome-doc-utils >= $gdu_cv_version_required], diff -Nru deja-dup-7.4/m4/intltool.m4 deja-dup-10.0/m4/intltool.m4 --- deja-dup-7.4/m4/intltool.m4 2009-01-29 15:48:54.000000000 -0500 +++ deja-dup-10.0/m4/intltool.m4 2009-06-02 17:48:47.000000000 -0400 @@ -75,25 +75,25 @@ INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' -AC_SUBST(INTLTOOL_DESKTOP_RULE) -AC_SUBST(INTLTOOL_DIRECTORY_RULE) -AC_SUBST(INTLTOOL_KEYS_RULE) -AC_SUBST(INTLTOOL_PROP_RULE) -AC_SUBST(INTLTOOL_OAF_RULE) -AC_SUBST(INTLTOOL_PONG_RULE) -AC_SUBST(INTLTOOL_SERVER_RULE) -AC_SUBST(INTLTOOL_SHEET_RULE) -AC_SUBST(INTLTOOL_SOUNDLIST_RULE) -AC_SUBST(INTLTOOL_UI_RULE) -AC_SUBST(INTLTOOL_XAM_RULE) -AC_SUBST(INTLTOOL_KBD_RULE) -AC_SUBST(INTLTOOL_XML_RULE) -AC_SUBST(INTLTOOL_XML_NOMERGE_RULE) -AC_SUBST(INTLTOOL_CAVES_RULE) -AC_SUBST(INTLTOOL_SCHEMAS_RULE) -AC_SUBST(INTLTOOL_THEME_RULE) -AC_SUBST(INTLTOOL_SERVICE_RULE) -AC_SUBST(INTLTOOL_POLICY_RULE) +_IT_SUBST(INTLTOOL_DESKTOP_RULE) +_IT_SUBST(INTLTOOL_DIRECTORY_RULE) +_IT_SUBST(INTLTOOL_KEYS_RULE) +_IT_SUBST(INTLTOOL_PROP_RULE) +_IT_SUBST(INTLTOOL_OAF_RULE) +_IT_SUBST(INTLTOOL_PONG_RULE) +_IT_SUBST(INTLTOOL_SERVER_RULE) +_IT_SUBST(INTLTOOL_SHEET_RULE) +_IT_SUBST(INTLTOOL_SOUNDLIST_RULE) +_IT_SUBST(INTLTOOL_UI_RULE) +_IT_SUBST(INTLTOOL_XAM_RULE) +_IT_SUBST(INTLTOOL_KBD_RULE) +_IT_SUBST(INTLTOOL_XML_RULE) +_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) +_IT_SUBST(INTLTOOL_CAVES_RULE) +_IT_SUBST(INTLTOOL_SCHEMAS_RULE) +_IT_SUBST(INTLTOOL_THEME_RULE) +_IT_SUBST(INTLTOOL_SERVICE_RULE) +_IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) @@ -110,12 +110,17 @@ AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi -AC_PATH_PROG(INTLTOOL_PERL, [perl]) +AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then - AC_MSG_ERROR([perl not found; required for intltool]) + AC_MSG_ERROR([perl not found]) fi -if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then - AC_MSG_ERROR([perl 5.x required for intltool]) +AC_MSG_CHECKING([for perl >= 5.8.1]) +$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 +if test $? -ne 0; then + AC_MSG_ERROR([perl 5.8.1 is required for intltool]) +else + IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" + AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) @@ -171,7 +176,7 @@ dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ - if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" ]; then + if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" @@ -193,6 +198,17 @@ ])dnl ]) +# _IT_SUBST(VARIABLE) +# ------------------- +# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +# +AC_DEFUN([_IT_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) + # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: diff -Nru deja-dup-7.4/m4/libtool.m4 deja-dup-10.0/m4/libtool.m4 --- deja-dup-7.4/m4/libtool.m4 2009-01-29 15:48:51.000000000 -0500 +++ deja-dup-10.0/m4/libtool.m4 2009-06-02 17:48:47.000000000 -0400 @@ -380,12 +380,12 @@ # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], -[_$0(m4_quote(m4_default([$1], [[, ]])), - m4_quote(m4_if([$2], [], - m4_quote(lt_decl_tag_varnames), - m4_quote(m4_shift($@)))), - m4_split(m4_normalize(m4_quote(_LT_TAGS))))]) -m4_define([_lt_decl_varnames_tagged], [lt_combine([$1], [$2], [_], $3)]) +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) @@ -945,10 +945,10 @@ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on + darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? + # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; @@ -990,7 +990,11 @@ _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" - if test "$GCC" = "yes"; then + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" @@ -1512,7 +1516,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -1680,10 +1684,6 @@ # endif #endif -#ifdef __cplusplus -extern "C" void exit (int); -#endif - void fnord() { int i=42;} int main () { @@ -1699,7 +1699,7 @@ else puts (dlerror ()); - exit (status); + return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then @@ -1738,7 +1738,7 @@ lt_cv_dlopen_self=yes ;; - mingw* | pw32*) + mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; @@ -2035,6 +2035,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], @@ -2199,14 +2200,14 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32*) + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -2229,7 +2230,7 @@ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; - mingw*) + mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` @@ -2667,7 +2668,7 @@ version_type=linux need_lib_prefix=no need_version=no - library_name_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes @@ -2691,7 +2692,7 @@ if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi - + if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi @@ -2968,6 +2969,7 @@ # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' @@ -3018,6 +3020,12 @@ fi ;; +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; @@ -3329,7 +3337,7 @@ aix*) symcode='[[BCDT]]' ;; -cygwin* | mingw* | pw32*) +cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) @@ -3575,7 +3583,7 @@ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; - mingw* | cygwin* | os2* | pw32*) + mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -3602,10 +3610,11 @@ fi ;; hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. case $host_cpu in - hppa*64*|ia64*) + hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' @@ -3703,12 +3712,19 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; - icpc* | ecpc* ) - # Intel C++ + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -3874,7 +3890,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -3890,10 +3906,11 @@ ;; hpux*) - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. case $host_cpu in - hppa*64*|ia64*) + hppa*64*) # +Z the default ;; *) @@ -3943,7 +3960,7 @@ fi ;; - mingw* | cygwin* | pw32* | os2*) + mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], @@ -3974,11 +3991,25 @@ linux* | k*bsd*-gnu) case $cc_basename in - icc* | ecc* | ifort*) + # old Intel for x86_64 which still supported -KPIC. + ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) @@ -4160,7 +4191,7 @@ pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; - cygwin* | mingw*) + cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) @@ -4215,7 +4246,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -4230,6 +4261,9 @@ openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -4302,7 +4336,7 @@ fi ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' @@ -4368,6 +4402,9 @@ tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; @@ -4600,6 +4637,7 @@ fi fi + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes @@ -4654,7 +4692,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -4758,7 +4796,7 @@ _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' @@ -5543,6 +5581,7 @@ fi fi + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. @@ -5601,7 +5640,7 @@ esac ;; - cygwin* | mingw* | pw32*) + cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' @@ -6986,6 +7025,18 @@ ]) +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates diff -Nru deja-dup-7.4/m4/ltoptions.m4 deja-dup-10.0/m4/ltoptions.m4 --- deja-dup-7.4/m4/ltoptions.m4 2009-01-29 15:48:51.000000000 -0500 +++ deja-dup-10.0/m4/ltoptions.m4 2009-06-02 17:48:47.000000000 -0400 @@ -125,7 +125,7 @@ [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) diff -Nru deja-dup-7.4/m4/ltsugar.m4 deja-dup-10.0/m4/ltsugar.m4 --- deja-dup-7.4/m4/ltsugar.m4 2009-01-29 15:48:52.000000000 -0500 +++ deja-dup-10.0/m4/ltsugar.m4 2009-06-02 17:48:47.000000000 -0400 @@ -1,13 +1,13 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. -# Written by Gary V. Vaughan, 2004 +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 5 ltsugar.m4 +# serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) @@ -63,14 +63,14 @@ # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], -[m4_if([$2], [], [], - [m4_if([$4], [], [], - [lt_join(m4_quote(m4_default([$1], [[, ]])), - lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_prefix, [$2], - [m4_foreach(_Lt_suffix, lt_car([m4_shiftn(3, $@)]), - [_Lt_prefix[]$3[]_Lt_suffix ])])))))])])dnl -]) +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) diff -Nru deja-dup-7.4/m4/ltversion.m4 deja-dup-10.0/m4/ltversion.m4 --- deja-dup-7.4/m4/ltversion.m4 2009-01-29 15:48:52.000000000 -0500 +++ deja-dup-10.0/m4/ltversion.m4 2009-06-02 17:48:47.000000000 -0400 @@ -9,15 +9,15 @@ # Generated from ltversion.in. -# serial 2976 ltversion.m4 +# serial 3012 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.4]) -m4_define([LT_PACKAGE_REVISION], [1.2976]) +m4_define([LT_PACKAGE_VERSION], [2.2.6]) +m4_define([LT_PACKAGE_REVISION], [1.3012]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.4' -macro_revision='1.2976' +[macro_version='2.2.6' +macro_revision='1.3012' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff -Nru deja-dup-7.4/Makefile.am deja-dup-10.0/Makefile.am --- deja-dup-7.4/Makefile.am 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/Makefile.am 2009-06-02 17:48:47.000000000 -0400 @@ -1,11 +1,24 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- -SUBDIRS = data po vapi libdeja-dup applet monitor preferences deja-dup nautilus help +SUBDIRS = data po vapi libdeja-dup applet monitor preferences deja-dup nautilus help tests # Distribute pot file -dist-hook: +update-po: + rm -f "po/$(GETTEXT_PACKAGE).pot" $(MAKE) -C "$(srcdir)/po" "$(GETTEXT_PACKAGE).pot" - cp "$(srcdir)/po/$(GETTEXT_PACKAGE).pot" "$(distdir)/po/" + $(MAKE) -C "$(srcdir)/help" update-po +dist-hook: + (cd po && INTLTOOL_EXTRACT=@INTLTOOL_EXTRACT@ srcdir=../$(srcdir)/po @INTLTOOL_UPDATE@ --gettext-package $(GETTEXT_PACKAGE) --pot) + for lang in $(shell cat "$(srcdir)/po/LINGUAS"); do \ + msgmerge $(srcdir)/po/$$lang.po po/$(GETTEXT_PACKAGE).pot -o po/$$lang.po; \ + done + +distclean-local: clean-local-@USE_NLS@ +clean-local-no: +clean-local-yes: + for lang in $(shell cat "$(srcdir)/po/LINGUAS"); do \ + test "$(srcdir)" = "." || rm -f po/$$lang.po; \ + done ACLOCAL_AMFLAGS = -I m4 @@ -16,7 +29,6 @@ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ - COPYING-DOCS \ gnome-doc-utils.make DISTCLEANFILES = \ diff -Nru deja-dup-7.4/Makefile.in deja-dup-10.0/Makefile.in --- deja-dup-7.4/Makefile.in 2009-02-11 21:13:32.000000000 -0500 +++ deja-dup-10.0/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -129,29 +129,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -179,6 +160,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -191,6 +173,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -254,16 +237,16 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = data po vapi libdeja-dup applet monitor preferences deja-dup nautilus help +SUBDIRS = data po vapi libdeja-dup applet monitor preferences deja-dup nautilus help tests ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ autogen.sh \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ - COPYING-DOCS \ gnome-doc-utils.make DISTCLEANFILES = \ @@ -334,7 +317,7 @@ -rm -rf .libs _libs distclean-libtool: - -rm -f libtool + -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -411,7 +394,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -655,7 +638,7 @@ -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ - distclean-libtool distclean-tags + distclean-libtool distclean-local distclean-tags dvi: dvi-recursive @@ -713,22 +696,36 @@ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-generic distclean-hdr \ - distclean-libtool distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-recursive uninstall uninstall-am + distclean-libtool distclean-local distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am # Distribute pot file -dist-hook: +update-po: + rm -f "po/$(GETTEXT_PACKAGE).pot" $(MAKE) -C "$(srcdir)/po" "$(GETTEXT_PACKAGE).pot" - cp "$(srcdir)/po/$(GETTEXT_PACKAGE).pot" "$(distdir)/po/" + $(MAKE) -C "$(srcdir)/help" update-po +dist-hook: + (cd po && INTLTOOL_EXTRACT=@INTLTOOL_EXTRACT@ srcdir=../$(srcdir)/po @INTLTOOL_UPDATE@ --gettext-package $(GETTEXT_PACKAGE) --pot) + for lang in $(shell cat "$(srcdir)/po/LINGUAS"); do \ + msgmerge $(srcdir)/po/$$lang.po po/$(GETTEXT_PACKAGE).pot -o po/$$lang.po; \ + done + +distclean-local: clean-local-@USE_NLS@ +clean-local-no: +clean-local-yes: + for lang in $(shell cat "$(srcdir)/po/LINGUAS"); do \ + test "$(srcdir)" = "." || rm -f po/$$lang.po; \ + done # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -Nru deja-dup-7.4/monitor/Makefile.am deja-dup-10.0/monitor/Makefile.am --- deja-dup-7.4/monitor/Makefile.am 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/monitor/Makefile.am 2009-06-02 17:48:49.000000000 -0400 @@ -1,4 +1,4 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- bin_PROGRAMS = deja-dup-monitor @@ -20,7 +20,6 @@ deja_dup_monitor_SOURCES = \ $(deja_dup_monitor_VALASOURCES:.vala=.c) \ - $(deja_dup_monitor_VALASOURCES:.vala=.h) \ $(deja_dup_monitor_VALASOURCES) deja-dup-monitor.stamp: $(deja_dup_monitor_VALASOURCES) diff -Nru deja-dup-7.4/monitor/Makefile.in deja-dup-10.0/monitor/Makefile.in --- deja-dup-7.4/monitor/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/monitor/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -58,8 +58,7 @@ PROGRAMS = $(bin_PROGRAMS) am__objects_1 = monitor.$(OBJEXT) am__objects_2 = -am_deja_dup_monitor_OBJECTS = $(am__objects_1) $(am__objects_2) \ - $(am__objects_2) +am_deja_dup_monitor_OBJECTS = $(am__objects_1) $(am__objects_2) deja_dup_monitor_OBJECTS = $(am_deja_dup_monitor_OBJECTS) am__DEPENDENCIES_1 = deja_dup_monitor_DEPENDENCIES = $(am__DEPENDENCIES_1) @@ -127,29 +126,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -177,6 +157,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -189,6 +170,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -252,6 +234,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ VALA_CFLAGS = \ @@ -272,7 +255,6 @@ deja_dup_monitor_SOURCES = \ $(deja_dup_monitor_VALASOURCES:.vala=.c) \ - $(deja_dup_monitor_VALASOURCES:.vala=.h) \ $(deja_dup_monitor_VALASOURCES) deja_dup_monitor_LDADD = $(MONITOR_LIBS) @INTLLIBS@ @@ -291,8 +273,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -388,7 +370,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS diff -Nru deja-dup-7.4/monitor/monitor.c deja-dup-10.0/monitor/monitor.c --- deja-dup-7.4/monitor/monitor.c 2009-01-29 15:50:12.000000000 -0500 +++ deja-dup-10.0/monitor/monitor.c 2009-06-02 17:48:49.000000000 -0400 @@ -1,24 +1,66 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "monitor.h" +#include <glib.h> +#include <glib-object.h> #include <glib/gi18n-lib.h> -#include <stdlib.h> -#include <string.h> #include <config.h> +#include <string.h> #include <gconf/gconf-client.h> +#include <stdlib.h> #include <time.h> #include <gconf/gconf.h> -#include <string.h> +#define TYPE_MONITOR (monitor_get_type ()) +#define MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITOR, Monitor)) +#define MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MONITOR, MonitorClass)) +#define IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITOR)) +#define IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MONITOR)) +#define MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MONITOR, MonitorClass)) + +typedef struct _Monitor Monitor; +typedef struct _MonitorClass MonitorClass; +typedef struct _MonitorPrivate MonitorPrivate; +/* + Déjà Dup Monitor + © 2008,2009 Michael Terry <mike@mterry.name> + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +struct _Monitor { + GObject parent_instance; + MonitorPrivate * priv; +}; + +struct _MonitorClass { + GObjectClass parent_class; +}; + + + +GType monitor_get_type (void); enum { MONITOR_DUMMY_PROPERTY }; +static GMainLoop* monitor_loop; static GMainLoop* monitor_loop = NULL; +static guint monitor_timeout_id; static guint monitor_timeout_id = 0U; +static GPid monitor_pid; static GPid monitor_pid = 0; +static gboolean monitor_show_version; static gboolean monitor_show_version = FALSE; #define MONITOR_GCONF_DIR "/apps/deja-dup" #define MONITOR_LAST_RUN_KEY "/apps/deja-dup/last-run" @@ -31,18 +73,22 @@ static GTimeVal monitor_date_to_timeval (const GDate* date); static glong monitor_seconds_until (const GDate* date); static void monitor_close_pid (GPid child_pid, gint status); +static gboolean monitor_seconds_until_next_run (glong* secs); +static void monitor_prepare_next_run (void); +static void monitor_prepare_tomorrow (void); static void _monitor_close_pid_gchild_watch_func (GPid pid, gint status, gpointer self); static gboolean monitor_kickoff (void); -static gboolean monitor_seconds_until_next_run (glong* secs); static gboolean _monitor_kickoff_gsource_func (gpointer self); static void monitor_prepare_run (glong wait_time); -static void monitor_prepare_tomorrow (void); -static void monitor_prepare_next_run (void); static void _monitor_prepare_next_run_gconf_client_notify_func (GConfClient* client, guint cnxn_id, GConfEntry* entry, gpointer self); static void monitor_watch_gconf (void); static gint monitor_main (char** args, int args_length1); +Monitor* monitor_new (void); +Monitor* monitor_construct (GType object_type); +Monitor* monitor_new (void); static gpointer monitor_parent_class = NULL; static void monitor_finalize (GObject* obj); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static const GOptionEntry MONITOR_options[] = {{"version", (gchar) 0, 0, G_OPTION_ARG_NONE, &monitor_show_version, N_ ("Show version"), NULL}, {NULL}}; @@ -59,27 +105,27 @@ static GDate monitor_today (void) { - GTimeVal _tmp0 = {0}; + GTimeVal _tmp0_ = {0}; GTimeVal cur_time; - GDate _tmp1 = {0}; + GDate _tmp1_ = {0}; GDate cur_date; - cur_time = (g_get_current_time (&_tmp0), _tmp0); + cur_time = (g_get_current_time (&_tmp0_), _tmp0_); g_get_current_time (&cur_time); - cur_date = (memset (&_tmp1, 0, sizeof (GDate)), _tmp1); + cur_date = (memset (&_tmp1_, 0, sizeof (GDate)), _tmp1_); g_date_set_time_val (&cur_date, &cur_time); return cur_date; } static GDate monitor_most_recent_scheduled_date (gint period) { - GDate _tmp0 = {0}; + GDate _tmp0_ = {0}; GDate epoch; GDate cur_date; gint between; gint mod; /* Compare days between epoch and current days. Mod by period to find scheduled dates.*/ - epoch = (memset (&_tmp0, 0, sizeof (GDate)), _tmp0); + epoch = (memset (&_tmp0_, 0, sizeof (GDate)), _tmp0_); g_date_set_dmy (&epoch, (GDateDay) 1, 1, (GDateYear) 1970); cur_date = monitor_today (); between = g_date_days_between (&epoch, &cur_date); @@ -90,100 +136,100 @@ static GDate monitor_next_run_date (void) { - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; + GConfClient* _tmp0_; GConfClient* client; gboolean periodic; char* last_run_string; gint period_days; - GDate _tmp11 = {0}; + GDate _tmp11_ = {0}; GDate last_run; - GTimeVal _tmp12 = {0}; + GTimeVal _tmp12_ = {0}; GTimeVal last_run_tval; GDate last_scheduled; - GDate _tmp15 = {0}; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); + GDate _tmp15_ = {0}; + _inner_error_ = NULL; + _tmp0_ = NULL; + client = (_tmp0_ = gconf_client_get_default (), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); periodic = FALSE; last_run_string = NULL; period_days = 0; { - gboolean _tmp1; - const char* _tmp2; - char* _tmp4; - const char* _tmp3; - gint _tmp5; - _tmp1 = gconf_client_get_bool (client, MONITOR_PERIODIC_KEY, &inner_error); - if (inner_error != NULL) { + gboolean _tmp1_; + const char* _tmp2_; + char* _tmp4_; + const char* _tmp3_; + gint _tmp5_; + _tmp1_ = gconf_client_get_bool (client, MONITOR_PERIODIC_KEY, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch0_g_error; goto __finally0; } - periodic = _tmp1; - _tmp2 = gconf_client_get_string (client, MONITOR_LAST_RUN_KEY, &inner_error); - if (inner_error != NULL) { + periodic = _tmp1_; + _tmp2_ = gconf_client_get_string (client, MONITOR_LAST_RUN_KEY, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch0_g_error; goto __finally0; } - _tmp4 = NULL; - _tmp3 = NULL; - last_run_string = (_tmp4 = (_tmp3 = _tmp2, (_tmp3 == NULL) ? NULL : g_strdup (_tmp3)), last_run_string = (g_free (last_run_string), NULL), _tmp4); - _tmp5 = gconf_client_get_int (client, MONITOR_PERIODIC_PERIOD_KEY, &inner_error); - if (inner_error != NULL) { + _tmp4_ = NULL; + _tmp3_ = NULL; + last_run_string = (_tmp4_ = (_tmp3_ = _tmp2_, (_tmp3_ == NULL) ? NULL : g_strdup (_tmp3_)), last_run_string = (g_free (last_run_string), NULL), _tmp4_); + _tmp5_ = gconf_client_get_int (client, MONITOR_PERIODIC_PERIOD_KEY, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch0_g_error; goto __finally0; } - period_days = _tmp5; + period_days = _tmp5_; } goto __finally0; __catch0_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - GDate _tmp6 = {0}; - GDate _tmp7 = {0}; + GDate _tmp6_ = {0}; + GDate _tmp7_ = {0}; g_error ("monitor.vala:91: %s", e->message); - return (_tmp7 = (memset (&_tmp6, 0, sizeof (GDate)), _tmp6), (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp7); + return (_tmp7_ = (memset (&_tmp6_, 0, sizeof (GDate)), _tmp6_), (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp7_); } } __finally0: - if (inner_error != NULL) { + if (_inner_error_ != NULL) { (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); last_run_string = (g_free (last_run_string), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } if (!periodic) { - GDate _tmp8 = {0}; - GDate _tmp9 = {0}; - return (_tmp9 = (memset (&_tmp8, 0, sizeof (GDate)), _tmp8), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp9); + GDate _tmp8_ = {0}; + GDate _tmp9_ = {0}; + return (_tmp9_ = (memset (&_tmp8_, 0, sizeof (GDate)), _tmp8_), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp9_); } if (last_run_string == NULL) { - GDate _tmp10 = {0}; - return (_tmp10 = monitor_today (), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp10); + GDate _tmp10_ = {0}; + return (_tmp10_ = monitor_today (), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp10_); } if (period_days <= 0) { period_days = 1; } - last_run = (memset (&_tmp11, 0, sizeof (GDate)), _tmp11); - last_run_tval = (g_get_current_time (&_tmp12), _tmp12); + last_run = (memset (&_tmp11_, 0, sizeof (GDate)), _tmp11_); + last_run_tval = (g_get_current_time (&_tmp12_), _tmp12_); if (!g_time_val_from_iso8601 (last_run_string, &last_run_tval)) { - GDate _tmp13 = {0}; - return (_tmp13 = monitor_today (), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp13); + GDate _tmp13_ = {0}; + return (_tmp13_ = monitor_today (), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp13_); } g_date_set_time_val (&last_run, &last_run_tval); if (!g_date_valid (&last_run)) { - GDate _tmp14 = {0}; - return (_tmp14 = monitor_today (), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp14); + GDate _tmp14_ = {0}; + return (_tmp14_ = monitor_today (), (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp14_); } last_scheduled = monitor_most_recent_scheduled_date (period_days); if (g_date_compare (&last_scheduled, &last_run) <= 0) { g_date_add_days (&last_scheduled, (guint) period_days); } - return (_tmp15 = last_scheduled, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp15); + return (_tmp15_ = last_scheduled, (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)), last_run_string = (g_free (last_run_string), NULL), _tmp15_); } @@ -193,7 +239,7 @@ static GTimeVal monitor_date_to_timeval (const GDate* date) { struct tm time = {0}; time_t timet; - GTimeVal _tmp0 = {0}; + GTimeVal _tmp0_ = {0}; GTimeVal tval; g_date_to_struct_tm (&(*date), &time); /* to_time says that sub-day values are sensible, but meaningless. This @@ -202,7 +248,7 @@ time.tm_min = 0; time.tm_sec = 0; timet = mktime (&time); - tval = (g_get_current_time (&_tmp0), _tmp0); + tval = (g_get_current_time (&_tmp0_), _tmp0_); tval.tv_sec = (glong) timet; tval.tv_usec = (glong) 0; return tval; @@ -210,10 +256,10 @@ static glong monitor_seconds_until (const GDate* date) { - GTimeVal _tmp0 = {0}; + GTimeVal _tmp0_ = {0}; GTimeVal cur_time; GTimeVal next_time; - cur_time = (g_get_current_time (&_tmp0), _tmp0); + cur_time = (g_get_current_time (&_tmp0_), _tmp0_); g_get_current_time (&cur_time); next_time = monitor_date_to_timeval (&(*date)); return next_time.tv_sec - cur_time.tv_sec; @@ -232,9 +278,9 @@ static gboolean monitor_kickoff (void) { - GError * inner_error; + GError * _inner_error_; glong wait_time; - inner_error = NULL; + _inner_error_ = NULL; wait_time = 0L; if (!monitor_seconds_until_next_run (&wait_time)) { return FALSE; @@ -252,20 +298,20 @@ /* Don't run right now if an applet is already running*/ if (monitor_pid == ((GPid) 0)) { { - char** _tmp2; + char** _tmp2_; gint argv_size; gint argv_length1; char** argv; - char* _tmp3; - char* _tmp4; - _tmp2 = NULL; - argv = (_tmp2 = g_new0 (char*, 2 + 1), argv_length1 = 2, argv_size = argv_length1, _tmp2); - _tmp3 = NULL; - argv[0] = (_tmp3 = g_strdup ("deja-dup-applet"), argv[0] = (g_free (argv[0]), NULL), _tmp3); - _tmp4 = NULL; - argv[1] = (_tmp4 = NULL, argv[1] = (g_free (argv[1]), NULL), _tmp4); - g_spawn_async (NULL, argv, NULL, ((G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD) | G_SPAWN_STDOUT_TO_DEV_NULL) | G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &monitor_pid, &inner_error); - if (inner_error != NULL) { + char* _tmp3_; + char* _tmp4_; + _tmp2_ = NULL; + argv = (_tmp2_ = g_new0 (char*, 2 + 1), argv_length1 = 2, argv_size = argv_length1, _tmp2_); + _tmp3_ = NULL; + argv[0] = (_tmp3_ = g_strdup ("deja-dup-applet"), argv[0] = (g_free (argv[0]), NULL), _tmp3_); + _tmp4_ = NULL; + argv[1] = (_tmp4_ = NULL, argv[1] = (g_free (argv[1]), NULL), _tmp4_); + g_spawn_async (NULL, argv, NULL, ((G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD) | G_SPAWN_STDOUT_TO_DEV_NULL) | G_SPAWN_STDERR_TO_DEV_NULL, NULL, NULL, &monitor_pid, &_inner_error_); + if (_inner_error_ != NULL) { argv = (_vala_array_free (argv, argv_length1, (GDestroyNotify) g_free), NULL); goto __catch1_g_error; goto __finally1; @@ -277,17 +323,17 @@ __catch1_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_warning ("monitor.vala:191: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally1: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return FALSE; } } else { @@ -355,30 +401,30 @@ static void monitor_watch_gconf (void) { - GError * inner_error; - GConfClient* _tmp0; + GError * _inner_error_; + GConfClient* _tmp0_; GConfClient* client; - inner_error = NULL; - _tmp0 = NULL; - client = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); + _inner_error_ = NULL; + _tmp0_ = NULL; + client = (_tmp0_ = gconf_client_get_default (), (_tmp0_ == NULL) ? NULL : g_object_ref (_tmp0_)); { - gconf_client_add_dir (client, MONITOR_GCONF_DIR, GCONF_CLIENT_PRELOAD_NONE, &inner_error); - if (inner_error != NULL) { + gconf_client_add_dir (client, MONITOR_GCONF_DIR, GCONF_CLIENT_PRELOAD_NONE, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch2_g_error; goto __finally2; } - gconf_client_notify_add (client, MONITOR_LAST_RUN_KEY, _monitor_prepare_next_run_gconf_client_notify_func, NULL, NULL, &inner_error); - if (inner_error != NULL) { + gconf_client_notify_add (client, MONITOR_LAST_RUN_KEY, _monitor_prepare_next_run_gconf_client_notify_func, NULL, NULL, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch2_g_error; goto __finally2; } - gconf_client_notify_add (client, MONITOR_PERIODIC_KEY, _monitor_prepare_next_run_gconf_client_notify_func, NULL, NULL, &inner_error); - if (inner_error != NULL) { + gconf_client_notify_add (client, MONITOR_PERIODIC_KEY, _monitor_prepare_next_run_gconf_client_notify_func, NULL, NULL, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch2_g_error; goto __finally2; } - gconf_client_notify_add (client, MONITOR_PERIODIC_PERIOD_KEY, _monitor_prepare_next_run_gconf_client_notify_func, NULL, NULL, &inner_error); - if (inner_error != NULL) { + gconf_client_notify_add (client, MONITOR_PERIODIC_PERIOD_KEY, _monitor_prepare_next_run_gconf_client_notify_func, NULL, NULL, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch2_g_error; goto __finally2; } @@ -387,18 +433,18 @@ __catch2_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { g_warning ("monitor.vala:256: %s\n", e->message); (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); } } __finally2: - if (inner_error != NULL) { + if (_inner_error_ != NULL) { (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return; } (client == NULL) ? NULL : (client = (g_object_unref (client), NULL)); @@ -406,12 +452,12 @@ static gint monitor_main (char** args, int args_length1) { - GError * inner_error; + GError * _inner_error_; GOptionContext* context; gint status; - GMainLoop* _tmp3; - gint _tmp4; - inner_error = NULL; + GMainLoop* _tmp3_; + gint _tmp4_; + _inner_error_ = NULL; textdomain (GETTEXT_PACKAGE); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); @@ -422,8 +468,8 @@ context = g_option_context_new (""); g_option_context_add_main_entries (context, MONITOR_options, GETTEXT_PACKAGE); { - g_option_context_parse (context, &args_length1, &args, &inner_error); - if (inner_error != NULL) { + g_option_context_parse (context, &args_length1, &args, &_inner_error_); + if (_inner_error_ != NULL) { goto __catch3_g_error; goto __finally3; } @@ -432,35 +478,35 @@ __catch3_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - char* _tmp0; - gint _tmp1; - _tmp0 = NULL; - g_printerr ("%s\n\n%s", e->message, _tmp0 = g_option_context_get_help (context, TRUE, NULL)); - _tmp0 = (g_free (_tmp0), NULL); - return (_tmp1 = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1); + char* _tmp0_; + gint _tmp1_; + _tmp0_ = NULL; + g_printerr ("%s\n\n%s", e->message, _tmp0_ = g_option_context_get_help (context, TRUE, NULL)); + _tmp0_ = (g_free (_tmp0_), NULL); + return (_tmp1_ = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1_); } } __finally3: - if (inner_error != NULL) { + if (_inner_error_ != NULL) { (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return 0; } status = 0; if (!monitor_handle_options (&status)) { - gint _tmp2; - return (_tmp2 = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2); + gint _tmp2_; + return (_tmp2_ = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2_); } - _tmp3 = NULL; - monitor_loop = (_tmp3 = g_main_loop_new (NULL, FALSE), (monitor_loop == NULL) ? NULL : (monitor_loop = (g_main_loop_unref (monitor_loop), NULL)), _tmp3); + _tmp3_ = NULL; + monitor_loop = (_tmp3_ = g_main_loop_new (NULL, FALSE), (monitor_loop == NULL) ? NULL : (monitor_loop = (g_main_loop_unref (monitor_loop), NULL)), _tmp3_); monitor_prepare_next_run (); monitor_watch_gconf (); g_main_loop_run (monitor_loop); - return (_tmp4 = 0, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp4); + return (_tmp4_ = 0, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp4_); } @@ -472,7 +518,7 @@ /* Déjà Dup Monitor - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -526,7 +572,7 @@ } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -535,6 +581,11 @@ } } } +} + + +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); g_free (array); } diff -Nru deja-dup-7.4/monitor/monitor.h deja-dup-10.0/monitor/monitor.h --- deja-dup-7.4/monitor/monitor.h 2009-01-29 15:50:12.000000000 -0500 +++ deja-dup-10.0/monitor/monitor.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,57 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __MONITOR_H__ -#define __MONITOR_H__ - -#include <glib.h> -#include <glib-object.h> - -G_BEGIN_DECLS - - -#define TYPE_MONITOR (monitor_get_type ()) -#define MONITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MONITOR, Monitor)) -#define MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MONITOR, MonitorClass)) -#define IS_MONITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MONITOR)) -#define IS_MONITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MONITOR)) -#define MONITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MONITOR, MonitorClass)) - -typedef struct _Monitor Monitor; -typedef struct _MonitorClass MonitorClass; -typedef struct _MonitorPrivate MonitorPrivate; - -/* - Déjà Dup Monitor - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _Monitor { - GObject parent_instance; - MonitorPrivate * priv; -}; - -struct _MonitorClass { - GObjectClass parent_class; -}; - - -Monitor* monitor_construct (GType object_type); -Monitor* monitor_new (void); -GType monitor_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/monitor/monitor.vala deja-dup-10.0/monitor/monitor.vala --- deja-dup-7.4/monitor/monitor.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/monitor/monitor.vala 2009-06-02 17:48:49.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup Monitor - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 diff -Nru deja-dup-7.4/nautilus/Makefile.am deja-dup-10.0/nautilus/Makefile.am --- deja-dup-7.4/nautilus/Makefile.am 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/nautilus/Makefile.am 2009-06-02 17:48:47.000000000 -0400 @@ -1,4 +1,4 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- nautilusdir = $(NAUTILUS_EXTENSION_DIR) diff -Nru deja-dup-7.4/nautilus/Makefile.in deja-dup-10.0/nautilus/Makefile.in --- deja-dup-7.4/nautilus/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/nautilus/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -133,29 +133,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -183,6 +164,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -195,6 +177,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -258,6 +241,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ nautilusdir = $(NAUTILUS_EXTENSION_DIR) @@ -279,8 +263,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -374,7 +358,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS diff -Nru deja-dup-7.4/NEWS deja-dup-10.0/NEWS --- deja-dup-7.4/NEWS 2009-02-11 21:05:23.000000000 -0500 +++ deja-dup-10.0/NEWS 2009-06-05 09:37:30.000000000 -0400 @@ -1,4 +1,74 @@ -deja-dup 7.4 (2008-02-11) +Déjà Dup 10.0 (2009-06-05) +-------------------------- +* Use GIO, letting one backup to FTP, WebDAV, and Windows Networking servers. +* Add a 'Details' box when backing up or restoring. This lets you see the + full path of each file as it is touched (rather than just the filename). +* If the user tries to backup or restore for the first time, show the relevant + preferences in the wizard directly. Don't require that they first open the + Preferences window. +* Add a more complete summary right before user approves a backup or restore. +* Bug fixes and UI tweaks +* New Indonesian and Turkish translations +* Updated Finnish, French, and Russian translations + +Déjà Dup 9.3 (2009-05-30) +------------------------- +* Exclude ~/.Private, not ~/Private. This means we no longer backup the + encrypted version of ecryptfs files, but the unencrypted version. So + encrypt your backups appropriately. This change lets us work more elegantly + in all ecryptfs setups, especially when your whole home directory is + encrypted. +* Update icons to Tango style ones +* Relicense help documentation from GFDL to GPL-3+ +* Some minor bug fixes + +Déjà Dup 9.2 (2009-05-09) +------------------------- +* Re-enable some kinder, specific messages for certain duplicity exceptions, + including I/O errors and 'destination out of space' errors +* Enable translation of user documentation (man pages and manual) +* Updated English (UK), French, German, and Russian translations + +Déjà Dup 9.1 (2009-04-27) +------------------------- +* Strip spaces from the ends of passwords, they are likely just cut+paste + errors from web sites -- notably Amazon's S3 password page (LP: #362899). +* Make bleeding-edge GTK+ symbols introduced by vala 0.7 optional, so we now + compile again with GTK+ 2.12. + +Déjà Dup 9.0 (2009-04-26) +------------------------- +* Use 'nice' for duplicity subprocess to be less of a resource hog +* Make folder include/exclude lists scrollable if too large +* Add some additional default excludes and document all such defaults in the + user help: + ~/.xsession-errors + ~/.recently-used.xbel + ~/.recent-applications.xbel + ~/Private (LP: #320019) +* Support recent duplicity feature that allows migrating vfat users to new + filename scheme +* Show exception text if duplicity fails +* Fix crash if gconf schema isn't installed (LP: #318146) +* Let user cancel 'add directory' dialog (LP: #364690) +* New Finnish, Pashto, and Russian translations + +Déjà Dup 8.1 (2009-04-03) +------------------------- +* Fix use of ionice program that prevent deja-dup from working on kernels + versions less than 2.6.25. LP: #352492 + +Déjà Dup 8.0 (2009-03-29) +------------------------- +* Support Ubuntu-9.10-style notifications without action buttons +* Don't backup the backup destination directory +* Don't forcibly migrate FAT32 users to new duplicity (>= 0.5.10) naming scheme +* Lower GTK+ requirement to 2.12 from 2.14 +* Add test suite +* New Arabic, Danish, and English (United Kingdom) translations +* Updated Dutch, French, German, and Swedish translations + +Déjà Dup 7.4 (2009-02-11) ------------------------- * Don't ask for S3 bucket name (and default to deja-dup). Buckets are S3-global and that default is certainly taken. Instead, generate bucket name @@ -10,28 +80,28 @@ * New Dutch translation * Updated French, Hebrew, and Spanish translations -deja-dup 7.3 +Déjà Dup 7.3 ------------ * Fix SSH password problem, preventing the SSH backend from working -deja-dup 7.2 +Déjà Dup 7.2 ------------ * Enforce volume size of 5M, regardless of duplicity's default * New Norwegian Bokmal translation * Updated German and Swedish translations -deja-dup 7.1 +Déjà Dup 7.1 ------------ * Fix mangled German translation, whoops -deja-dup 7.0 +Déjà Dup 7.0 ------------ * Add nautilus extension to restore files via a right click * Fix crash when restoring from an empty folder or from FAT32 * Make backup progress bar more accurate for large backups * Updated German and Swedish translations -deja-dup 6.0 +Déjà Dup 6.0 ------------ * Allow restoring from any backup time point, not just the most recent * Allow backing up to a Windows partition @@ -42,17 +112,17 @@ * Be more forceful about killing duplicity subprocesses, to avoid orphaned ones * New Galician and German translations -deja-dup 5.2 +Déjà Dup 5.2 ------------ * Don't backup ~/.gvfs * Fix crash when cancelling while preparing a backup -deja-dup 5.1 +Déjà Dup 5.1 ------------ * Fixed a bug that caused deja-dup to hang if encryption is requested * Updated Swedish translation -deja-dup 5.0 +Déjà Dup 5.0 ------------ * Use a (short) wizard for backing up too, just like restoring * Progress during backup is now indicated by showing what file is being @@ -61,7 +131,7 @@ * New help documentation and man pages * New Swedish translation -deja-dup 4.0 +Déjà Dup 4.0 ------------ * New SSH backend * Uses ionice if available to not fight with user for disk access @@ -74,19 +144,19 @@ * Added Spanish translation * Updated French translation -deja-dup 3.0 +Déjà Dup 3.0 ------------ * Added ability to set a regular backup schedule (daily, weekly, biweekly, or monthly). * Added --version * Added French translation -deja-dup 2.1 +Déjà Dup 2.1 ------------ * Finish reading all output from duplicity before closing -- this fixes the 'silent failure' problem if an error occurs -deja-dup 2.0 +Déjà Dup 2.0 ------------ * Fix typo that caused encryption preference to default to off * Fix menu icon @@ -96,7 +166,7 @@ * Require duplicity 0.5.03 * New Hebrew and Lithuanian translations -deja-dup 1.0 +Déjà Dup 1.0 ------------ * Initial release * Supports backing up to Amazon S3 or a local directory diff -Nru deja-dup-7.4/po/ar.po deja-dup-10.0/po/ar.po --- deja-dup-7.4/po/ar.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/ar.po 2009-06-05 14:52:24.000000000 -0400 @@ -0,0 +1,767 @@ +# Arabic translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:36+0000\n" +"Last-Translator: Amr Hassan <amr.hassan@gmail.com>\n" +"Language-Team: Arabic <ar@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " +"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "عمل نسخة احتياطية من الملفات" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "ديجا-دوب" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "مراقب ديجا-دوب" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "" + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "" + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Amr Hassan https://launchpad.net/~amr-hassan\n" +"\n" +"Launchpad Contributions:\n" +" Amr Hassan https://launchpad.net/~amr-hassan" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "" +msgstr[1] "" + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "" diff -Nru deja-dup-7.4/po/da.po deja-dup-10.0/po/da.po --- deja-dup-7.4/po/da.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/da.po 2009-06-05 14:52:24.000000000 -0400 @@ -0,0 +1,770 @@ +# Danish translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:36+0000\n" +"Last-Translator: Michael Terry <michael.terry@canonical.com>\n" +"Language-Team: Danish <da@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "Backup dine filer" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "Déjà Dup Backup Værktøj" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "Déjà Dup Overvågning" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "Planlæg backups med faste mellemrum" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "Hvor ofte backup skal finde sted" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "" + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "" + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Peter Skov https://launchpad.net/~a0peter\n" +"\n" +"Launchpad Contributions:\n" +" Michael Terry https://launchpad.net/~mterry\n" +" Peter Skov https://launchpad.net/~a0peter" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "" +msgstr[1] "" + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Mappe i dit system som skal indeholde backup filerne" diff -Nru deja-dup-7.4/po/deja-dup.pot deja-dup-10.0/po/deja-dup.pot --- deja-dup-7.4/po/deja-dup.pot 2009-02-11 21:16:25.000000000 -0500 +++ deja-dup-10.0/po/deja-dup.pot 1969-12-31 19:00:00.000000000 -0500 @@ -1,739 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: mike@mterry.name\n" -"POT-Creation-Date: 2009-02-11 21:16-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: LANGUAGE <LL@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: ../data/deja-dup.desktop.in.h:1 -msgid "Backup your files" -msgstr "" - -#: ../data/deja-dup.desktop.in.h:2 -msgid "Déjà Dup Backup Utility" -msgstr "" - -#. Translators: Monitor in this sense means something akin to 'watcher', not -#. a computer monitor. This program acts like a daemon that kicks off -#. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 -msgid "Déjà Dup Monitor" -msgstr "" - -#: ../data/deja-dup-monitor.desktop.in.h:2 -msgid "Schedule backups at regular intervals" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Access Key ID" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:2 -msgid "" -"An optional folder name to store files in. This folder will be created in " -"the chosen bucket." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:3 -msgid "Directories not to backup" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:4 -msgid "Directories to backup" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:5 -msgid "Folder on your system in which to hold the backup files." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:6 -msgid "How often to periodically backup" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:7 -msgid "Local backup location" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:8 -msgid "SSH directory" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:9 -msgid "SSH port" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:10 -msgid "SSH server" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:11 -msgid "SSH username" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:12 -msgid "The Amazon S3 bucket name to use" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:13 -msgid "The Amazon S3 folder" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:14 -msgid "The directory used for SSH connections." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:15 -msgid "The last time Déjà Dup was run" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:16 -msgid "The last time Déjà Dup was run, in ISO 8601 format." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:17 -msgid "The number of days between backups." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:18 -msgid "The port used for SSH connections." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:19 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:20 -msgid "The server used for SSH connections." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:21 -msgid "The user used for SSH connections." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:22 -msgid "" -"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " -"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " -"and $VIDEO are recognized as the user's special directories. Relative " -"entries are relative to the user's home directory." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:23 -msgid "" -"This list of directories will not be backed up. Reserved values $HOME, " -"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " -"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " -"directories. Relative entries are relative to the user's home directory. " -"This list takes precedence over the include list." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:24 -msgid "Type of location to store backup" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:25 -msgid "Whether to automatically backup on a regular schedule." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:26 -msgid "Whether to encrypt your backup" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:27 -msgid "" -"Whether to encrypt your backup files in the storage location. It's strongly " -"recommended to leave this as 'true'." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:28 -msgid "Whether to periodically backup" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:29 -msgid "" -"Which Amazon S3 bucket to store files in. This does not need to exist " -"already. Only legal hostname strings are valid." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:30 -msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." -msgstr "" - -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 -msgid "Show version" -msgstr "" - -#. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 -msgid "Déjà Dup Applet" -msgstr "" - -#: ../applet/StatusIcon.vala:74 -#, c-format -msgid "%.1f%% complete" -msgstr "" - -#: ../applet/StatusIcon.vala:113 -msgid "Backup about to start" -msgstr "" - -#: ../applet/StatusIcon.vala:114 -msgid "" -"A scheduled backup will shortly begin. You can instead choose to backup " -"later or not at all." -msgstr "" - -#: ../applet/StatusIcon.vala:116 -msgid "Skip Backup" -msgstr "" - -#: ../applet/StatusIcon.vala:117 -msgid "Backup Later" -msgstr "" - -#: ../applet/StatusIcon.vala:133 -msgid "Encryption password needed" -msgstr "" - -#: ../applet/StatusIcon.vala:134 -msgid "Please enter the encryption password for your backup files." -msgstr "" - -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 -msgid "Enter" -msgstr "" - -#: ../applet/StatusIcon.vala:150 -msgid "Server password needed" -msgstr "" - -#: ../applet/StatusIcon.vala:151 -msgid "Please enter the server password for your backup." -msgstr "" - -#: ../applet/StatusIcon.vala:169 -msgid "Backup error occurred" -msgstr "" - -#: ../applet/StatusIcon.vala:171 -msgid "Rerun" -msgstr "" - -#: ../applet/StatusIcon.vala:246 -msgid "Backup _Later" -msgstr "" - -#: ../applet/StatusIcon.vala:250 -msgid "_Skip Backup" -msgstr "" - -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 -msgid "Could not open preferences" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:27 -msgid "Backup" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 -msgid "Backup location:" -msgstr "" - -#. Translators: This is the phrase 'Backing up' in the larger phrase -#. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 -msgid "Backing up" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:99 -msgid "Backup Failed" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:101 -msgid "Backup Finished" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:102 -msgid "Your files were successfully backed up." -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 -msgid "Backing up..." -msgstr "" - -#: ../deja-dup/AssistantOperation.vala:173 -msgid "Summary" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:71 -msgid "Restore" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:101 -msgid "_Date:" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:124 -msgid "Restore files to _original locations" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:129 -msgid "Restore to _specific folder" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:139 -msgid "Choose destination for restored files" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:143 -msgid "Restore _folder:" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:175 -msgid "Restore date:" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:181 -msgid "Restore folder:" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:222 -msgid "Checking for Backups" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:233 -msgid "Restore from When?" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:244 -msgid "Restore to Where?" -msgstr "" - -#. Translators: This is the word 'Restoring' in the phrase -#. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 -msgid "Restoring" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:302 -msgid "No backups to restore" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:404 -msgid "Original location" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:417 -msgid "File to restore:" -msgid_plural "Files to restore:" -msgstr[0] "" -msgstr[1] "" - -#: ../deja-dup/AssistantRestore.vala:439 -msgid "Restore Failed" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:441 -msgid "Restore Finished" -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:442 -msgid "Your files were successfully restored." -msgstr "" - -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 -msgid "Restoring..." -msgstr "" - -#: ../deja-dup/main.vala:31 -msgid "Restore given files" -msgstr "" - -#. Translators: The name is a play on the French phrase "déjà vu" meaning -#. "already seen", but with the "vu" replaced with "dup". "Dup" in this -#. context is itself a reference to both the underlying command line tool -#. "duplicity" and the act of duplicating data for backup. As a whole, it -#. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 -msgid "Déjà Dup" -msgstr "" - -#: ../deja-dup/main.vala:47 -msgid "No filenames provided" -msgstr "" - -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 -msgid "_Restore" -msgstr "" - -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 -msgid "_Backup" -msgstr "" - -#: ../deja-dup/MainWindow.vala:184 -msgid "_File" -msgstr "" - -#: ../deja-dup/MainWindow.vala:203 -msgid "_Edit" -msgstr "" - -#: ../deja-dup/MainWindow.vala:210 -msgid "_Help" -msgstr "" - -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" -msgstr "" - -#: ../deja-dup/MainWindow.vala:217 -msgid "Get Help _Online..." -msgstr "" - -#: ../deja-dup/MainWindow.vala:221 -msgid "_Translate This Application..." -msgstr "" - -#: ../deja-dup/MainWindow.vala:225 -msgid "_Report a Problem..." -msgstr "" - -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" -msgstr "" - -#: ../libdeja-dup/BackendS3.vala:121 -#, c-format -msgid "Folder %s on Amazon S3" -msgstr "" - -#. Ask user -#: ../libdeja-dup/BackendS3.vala:166 -msgid "Amazon S3 Password" -msgstr "" - -#: ../libdeja-dup/BackendS3.vala:167 -msgid "" -"Enter your Amazon Web Services user ID and secret key. This is not the same " -"as your amazon.com username and password." -msgstr "" - -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" -msgstr "" - -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" -msgstr "" - -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" -msgstr "" - -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" -msgstr "" - -#: ../libdeja-dup/BackendSSH.vala:157 -#, c-format -msgid "Enter your SSH username and password for server %s." -msgstr "" - -#: ../libdeja-dup/DuplicityInfo.vala:117 -msgid "Could not run duplicity" -msgstr "" - -#: ../libdeja-dup/DuplicityInfo.vala:123 -msgid "" -"Could not understand duplicity version.\n" -"\n" -msgstr "" - -#: ../libdeja-dup/DuplicityInfo.vala:125 -#, c-format -msgid "" -"Could not understand duplicity version '%s'.\n" -"\n" -msgstr "" - -#: ../libdeja-dup/DuplicityInfo.vala:127 -msgid "Without duplicity, Déjà Dup cannot function. It will close now." -msgstr "" - -#: ../libdeja-dup/DuplicityInfo.vala:138 -msgid "Duplicity's version is too old" -msgstr "" - -#: ../libdeja-dup/DuplicityInfo.vala:139 -#, c-format -msgid "" -"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " -"version %d.%d.%.2d" -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:127 -msgid "Preparing..." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:177 -msgid "Cleaning up..." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:222 -msgid "Failed with an unknown error." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:294 -#, c-format -msgid "Could not restore '%s': File not found in backup" -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:308 -msgid "Invalid ID." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:310 -msgid "Invalid secret key." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:312 -msgid "Your Amazon Web Services account is not signed up for the S3 service." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:321 -msgid "S3 bucket name is not available." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:326 -msgid "Bad encryption password." -msgstr "" - -#: ../libdeja-dup/Duplicity.vala:343 -msgid "No backup files found" -msgstr "" - -#: ../libdeja-dup/libdeja-dup.vala:95 -#, c-format -msgid "Could not display %s" -msgstr "" - -#: ../libdeja-dup/libdeja-dup.vala:130 -msgid "About Déjà Dup" -msgstr "" - -#: ../libdeja-dup/libdeja-dup.vala:132 -msgid "translator-credits" -msgstr "" - -#: ../libdeja-dup/libdeja-dup.vala:138 -#, c-format -msgid "" -"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 3 of the License, or (at your option) " -"any later version." -msgstr "" - -#: ../libdeja-dup/libdeja-dup.vala:139 -msgid "" -"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 General Public License for " -"more details." -msgstr "" - -#: ../libdeja-dup/libdeja-dup.vala:140 -msgid "" -"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." -msgstr "" - -#: ../libdeja-dup/OperationRestore.vala:59 -msgid "Restoring files..." -msgstr "" - -#: ../libdeja-dup/OperationRestore.vala:167 -#, c-format -msgid "" -"Not all files could be restored. Any files that could not be restored may " -"still be found in %s." -msgstr "" - -#: ../libdeja-dup/OperationRestore.vala:176 -#, c-format -msgid "Could not restore %s: %s" -msgstr "" - -#: ../libdeja-dup/Operation.vala:53 -msgid "Checking for backups..." -msgstr "" - -#. Ask user -#: ../libdeja-dup/Operation.vala:213 -msgid "Encryption Password" -msgstr "" - -#: ../libdeja-dup/Operation.vala:214 -msgid "Enter the password used to encrypt your backup files." -msgstr "" - -#: ../libdeja-dup/Operation.vala:234 -msgid "Déjà Dup backup passphrase" -msgstr "" - -#: ../libdeja-dup/Operation.vala:253 -msgid "Another Déjà Dup is already running" -msgstr "" - -#: ../nautilus/NautilusExtension.c:95 -msgid "Revert to Previous Version..." -msgid_plural "Revert to Previous Versions..." -msgstr[0] "" -msgstr[1] "" - -#: ../nautilus/NautilusExtension.c:99 -msgid "Restore file from backup" -msgid_plural "Restore files from backup" -msgstr[0] "" -msgstr[1] "" - -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "" - -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "" - -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" -msgstr "" - -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "" - -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" -msgstr "" - -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "" - -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "" - -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "" - -#: ../preferences/ConfigList.vala:164 -#, c-format -msgid "%s is already in the list." -msgstr "" - -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" -msgstr "" - -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" -msgstr "" - -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "" - -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "" - -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "" -msgstr[1] "" - -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 Access Key I_D:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:91 -#: ../preferences/PreferencesDialog.vala:110 -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Folder:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "" diff -Nru deja-dup-7.4/po/de.po deja-dup-10.0/po/de.po --- deja-dup-7.4/po/de.po 2009-02-02 20:41:56.000000000 -0500 +++ deja-dup-10.0/po/de.po 2009-06-05 14:52:25.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-01-29 15:51-0500\n" -"PO-Revision-Date: 2009-02-01 22:57+0000\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:36+0000\n" "Last-Translator: Maximilian Blömer <mail@maxbloemer.de>\n" "Language-Team: German <de@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2009-02-03 01:32+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "Déjà Dup Monitor" @@ -39,86 +39,62 @@ msgstr "Datensicherungen in regelmäßigen Abständen durchführen" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" -msgstr "Amazon S3 Key ID" +msgid "Amazon S3 Access Key ID" +msgstr "Amazon S3 Zugangsschlüssel ID" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" -msgstr "Ordner, die nicht gesichert werden sollen" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" +"Optionaler Name eines Ordners, in dem die Dateien gespeichert werden. Der " +"Ordner wird im gewählten S3 bucket erstellt." #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" -msgstr "Ordner, die gesichert werden sollen" +msgid "Backup location" +msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "Position der Datensicherungsdateien" +msgid "Directories not to backup" +msgstr "Ordner, die nicht gesichert werden sollen" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "Datensicherung regelmäßig ausführen" +msgid "Directories to backup" +msgstr "Ordner, die gesichert werden sollen" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "lokaler Ordner für Datensicherung" +msgid "How often to periodically backup" +msgstr "Datensicherung regelmäßig ausführen" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "SSH Ordner" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "SSH Port" - -#: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "SSH Server" - -#: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "SSH Benutzername" - -#: ../data/deja-dup.schemas.in.h:11 msgid "The Amazon S3 bucket name to use" msgstr "der Amazon S3 bucket name, der genutzt werden soll" -#: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "der Ordner, der für SSH-Verbindungen genutzt werden soll" +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "Ordner auf Amazon S3" -#: ../data/deja-dup.schemas.in.h:13 +#: ../data/deja-dup.schemas.in.h:10 msgid "The last time Déjà Dup was run" msgstr "Déjà Dup wurde zuletzt ausgeführt am" -#: ../data/deja-dup.schemas.in.h:14 +#: ../data/deja-dup.schemas.in.h:11 msgid "The last time Déjà Dup was run, in ISO 8601 format." msgstr "Déjà Dup wurde zuletzt ausgeführt am, im ISO 8601-Format" -#: ../data/deja-dup.schemas.in.h:15 +#: ../data/deja-dup.schemas.in.h:12 msgid "The number of days between backups." msgstr "Anzahl der Tage zwischen den Datensicherungen" -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "der Port, der für SSH-Verbindungen verwendet wird" - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" -"Das für Datensicherungen verwendete Protokoll. Gültige Werte sind \"s3\", " -"\"file\" oder \"ssh\"." - -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "Der für SSH-Verbindungen verwendete Server." - -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "Der für SSH-Verbindungen verwendete Benutzer." -#: ../data/deja-dup.schemas.in.h:20 +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -130,7 +106,7 @@ "$TEMPLATES, $TRASH und $VIDEO werden als Spezialordner des Benutzers " "erkannt. Relative Einträge sind relativ zu den Benutzerverzeichnis." -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -144,20 +120,20 @@ "erkannt. Relative Einträge sind relativ zu den Benutzerverzeichnis. Diese " "Liste hat Vorrang gegenüber der Datensicherungsliste." -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "Art des Datensicherungzieles" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "" "Ob eine Datensicherung automatisch regelmäßig durchgeführt werden soll." -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "Ob die Datensicherungen verschlüsselt werden sollen." -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." @@ -165,40 +141,44 @@ "Ob die Datensicherungsdateien im Zielordner verschlüsselt werden sollen. Es " "wird dringend empfohlen, diese Option aktiviert zu belassen." -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" msgstr "Ob die Datensicherung regelmäßig durchgeführt werden soll." -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." msgstr "" +"In welchem Amazon S3 bucket die Dateien gespeichert werden sollen. Der " +"Ordner muss nicht bereits existieren. Nur korrekte Servernamen sind gültig." -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." msgstr "" +"Die Amazon S3 Zugangsschlüsselkennung. Dies fungiert als S3 Benutzername." -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" msgstr "Version anzeigen" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" msgstr "Déjà Dup Kontrolleisten-Icon" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" msgstr "%.1f%% abgeschlossen" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "Datensicherung wird gleich beginnen" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." @@ -206,175 +186,223 @@ "Eine anstehende Datensicherung wird in Kürze starten. Sie können die " "Datensicherung verschieben oder überspringen." -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "Datensicherung überspringen" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" msgstr "Datensicherung verschieben" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "Verschlüsselungspasswort benötigt" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "" "Bitte geben Sie das Verschlüsselungspasswort für die Datensicherungsdateien " "ein." -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "Eingabe" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" msgstr "Serverpasswort benötigt" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." msgstr "Bitte geben Sie das Serverpasswort für Ihre Datensicherung ein." -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" msgstr "Fehler bei der Datensicherung aufgetreten" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" msgstr "Wiederholung" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" msgstr "Daten später sichern" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "Datensicherung überspringen" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" msgstr "Einstellungen konnten nicht aufgerufen werden" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" msgstr "Datensicherung" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "Ort der Datensicherung:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "Datensicherungsdateien verschlüsseln" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" msgstr "Sicherungs-Ort:" +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "Sichere Daten" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "Unbekannt" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" msgstr "Datensicherung fehlgeschlagen" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" msgstr "Datensicherung beendet" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "Ihre Daten wurden erfolgreich gesichert." -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "Sichere Daten..." -#: ../deja-dup/AssistantOperation.vala:173 +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 msgid "Summary" msgstr "Zusammenfassung" -#: ../deja-dup/AssistantRestore.vala:71 +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" msgstr "Wiederherstellen" -#: ../deja-dup/AssistantRestore.vala:101 +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 msgid "_Date:" msgstr "_Datum:" -#: ../deja-dup/AssistantRestore.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" msgstr "Daten an den ursprünglichen Ordner wiederherstellen" -#: ../deja-dup/AssistantRestore.vala:129 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" msgstr "in einen anderen Ordner wiederherstellen" -#: ../deja-dup/AssistantRestore.vala:139 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" msgstr "Position der gesicherten Daten auswählen" -#: ../deja-dup/AssistantRestore.vala:143 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" msgstr "Order für die Wiederherstellung:" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:227 msgid "Restore date:" msgstr "Wiederherstellungsdatum" -#: ../deja-dup/AssistantRestore.vala:181 +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" msgstr "Ordner der Wiederherstellung:" -#: ../deja-dup/AssistantRestore.vala:222 +#: .././po/../deja-dup/AssistantRestore.vala:261 msgid "Checking for Backups" msgstr "Nach Datensicherungen wird gesucht" -#: ../deja-dup/AssistantRestore.vala:233 +#: .././po/../deja-dup/AssistantRestore.vala:272 msgid "Restore from When?" msgstr "Von wann soll wiederhergestellt werden?" -#: ../deja-dup/AssistantRestore.vala:244 +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" msgstr "Wohin soll die Datensicherung wiederhergestellt werden?" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" msgstr "Wiederherstellung von" -#: ../deja-dup/AssistantRestore.vala:302 +#: .././po/../deja-dup/AssistantRestore.vala:340 msgid "No backups to restore" msgstr "keine Datensicherungen zur Wiederherstellung gefunden" -#: ../deja-dup/AssistantRestore.vala:404 +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" msgstr "Ursprünglicher Ordner" -#: ../deja-dup/AssistantRestore.vala:417 +#: .././po/../deja-dup/AssistantRestore.vala:447 msgid "File to restore:" msgid_plural "Files to restore:" msgstr[0] "Datei, die wiederhergestellt werden soll:" msgstr[1] "Dateien, die wiederhergestellt werden sollen:" -#: ../deja-dup/AssistantRestore.vala:439 +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" msgstr "Wiederherstellung fehlgeschlagen" -#: ../deja-dup/AssistantRestore.vala:441 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" msgstr "Wiederherstellung abgeschlossen" -#: ../deja-dup/AssistantRestore.vala:442 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." msgstr "Ihre Daten wurden erfolgreich wiederhergestellt." -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." msgstr "Wiederherstellung läuft..." -#: ../deja-dup/main.vala:31 +#: .././po/../deja-dup/main.vala:31 msgid "Restore given files" msgstr "gegebene Dateiegn wiederherstellen" @@ -383,99 +411,143 @@ #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" msgstr "Déjà Dup" -#: ../deja-dup/main.vala:47 +#: .././po/../deja-dup/main.vala:47 msgid "No filenames provided" msgstr "keine Dateinamen angegeben" -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 msgid "_Restore" msgstr "_Wiederherstellung" -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "_Datensicherung" -#: ../deja-dup/MainWindow.vala:184 +#: .././po/../deja-dup/MainWindow.vala:176 msgid "_File" msgstr "_Datei" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "Bearbeiten" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "_Hilfe" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" -msgstr "Hilfe" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "Online Hilfe erhalten ..." -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "Diese _Anwendung übersetzen..." -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "Fehler melden" -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" -msgstr "Position der Datensicherung auswählen" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" -msgstr "Bucket %s auf Amazon S3" +msgid "Folder %s on Amazon S3" +msgstr "Order %s auf Amazon S3" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "Amazon S3 Passwort" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." msgstr "" +"Bitte Amazon Web Services Benutzer-ID und geheimen Schlüssel eingeben. Dies " +"entspricht nicht dem amazon.com Benutzernamen und Passwort." -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" -msgstr "kein Benutzername angegeben" - -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" -msgstr "Kein Server angegeben" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" -msgstr "%s auf ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" -msgstr "SSH Passwort" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" -#: ../libdeja-dup/BackendSSH.vala:157 -#, c-format -msgid "Enter your SSH username and password for server %s." +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Persönlicher Ordner" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Mülleimer" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" msgstr "" -"Geben Sie den Benutzernamen und das Passwort für den SSH-Server %s ein," -#: ../libdeja-dup/DuplicityInfo.vala:117 +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "täglich" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "wöchentlich" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "zweiwöchentlich" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "monatlich" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "jeden %d Tag" +msgstr[1] "alle %d Tage" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 msgid "Could not run duplicity" msgstr "duplicity konnte nicht ausgeführt werden" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" @@ -483,7 +555,7 @@ "Version von duplicity konnte nicht ausgelesen werden.\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" @@ -492,15 +564,15 @@ "Version '%s' von duplicity konnte nicht ausgelesen werden.\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "Déjà Dup funktioniert ohne duplicity nicht und wird nun beendet." -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "Die Version von duplicity ist zu alt." -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " @@ -509,53 +581,95 @@ "Déjà Dup benötigt mindestens duplicity Version %d.%d.%.2d, es konnte aber " "nur duplicity Version %d.%d.%.2d gefunden werden." -#: ../libdeja-dup/Duplicity.vala:120 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 msgid "Preparing..." msgstr "Daten vorbereiten..." -#: ../libdeja-dup/Duplicity.vala:170 +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." msgstr "Räume auf..." -#: ../libdeja-dup/Duplicity.vala:215 +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 msgid "Failed with an unknown error." msgstr "mit unbekanntem Fehler fehlgeschlagen" -#: ../libdeja-dup/Duplicity.vala:287 +#: .././po/../libdeja-dup/Duplicity.vala:341 #, c-format msgid "Could not restore '%s': File not found in backup" msgstr "" "'%s' konnte nicht wiederhergestellt werden. Datei in Datensicherung nicht " "vorhanden." -#: ../libdeja-dup/Duplicity.vala:301 -msgid "Invalid ID" -msgstr "Ungültige ID" - -#: ../libdeja-dup/Duplicity.vala:303 -msgid "Invalid secret key" -msgstr "Ungültiger Schlüssel" +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "ungültige ID." + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "ungültiger geheimer Schlüssel." + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" +"Der angegebene Amazon Web Services Account ist für den S3 Dienst eingetragen." + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "S3 bucket Name nicht verfügbar." + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "falsches Passwort zum Verschlüsseln" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "Fehler beim Lesen von Datei '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "Fehler beim Schreiben von Datei '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "Nicht genügend Speicherplatz unter %s verfügbar" -#: ../libdeja-dup/Duplicity.vala:320 +#: .././po/../libdeja-dup/Duplicity.vala:407 msgid "No backup files found" msgstr "Keine Datensicherungsdateien gefunden" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/libdeja-dup.vala:95 #, c-format msgid "Could not display %s" msgstr "%s konnte nicht angezeigt werden" -#: ../libdeja-dup/libdeja-dup.vala:130 +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "über Déjà Dup" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" +" Maximilian Blömer https://launchpad.net/~maxbloemer\n" +"\n" +"Launchpad Contributions:\n" +" Daniel Nylander https://launchpad.net/~yeager\n" +" Maximilian Blömer https://launchpad.net/~maxbloemer\n" +"\n" +"Launchpad Contributions:\n" +" Daniel Nylander https://launchpad.net/~yeager\n" +" Maximilian Blömer https://launchpad.net/~maxbloemer\n" +"\n" +"Launchpad Contributions:\n" +" Daniel Nylander https://launchpad.net/~yeager\n" " Maximilian Blömer https://launchpad.net/~maxbloemer" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -569,7 +683,7 @@ "entweder in Version 3 der Lizenz oder (nach Ihrem Ermessen) in jeder " "folgenden Lizenz." -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -581,22 +695,57 @@ "implizierte Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN " "BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License." -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Unbekannt" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "_Benutzername:" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" msgstr "" -"Sie sollten ein Exemplar der GNU General Public License zusammen mit\r\n" -"diesem Programm erhalten haben. Falls nicht, schreiben Sie an die Free\r\n" -"Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, " -"USA." -#: ../libdeja-dup/OperationRestore.vala:59 +#: .././po/../libdeja-dup/OperationRestore.vala:59 msgid "Restoring files..." msgstr "Dateien werden wiederhergestellt..." -#: ../libdeja-dup/OperationRestore.vala:169 +#: .././po/../libdeja-dup/OperationRestore.vala:172 #, c-format msgid "" "Not all files could be restored. Any files that could not be restored may " @@ -605,171 +754,193 @@ "Nicht alle Dateien konnten wiederhergestellt werden. Die Dateien, die nicht " "wiederhergestellt werden konnten, befinden sich möglicherweise noch in %s." -#: ../libdeja-dup/OperationRestore.vala:178 +#: .././po/../libdeja-dup/OperationRestore.vala:181 #, c-format msgid "Could not restore %s: %s" msgstr "%s: %s konnte nicht wiederhergestellt werden" -#: ../libdeja-dup/Operation.vala:53 +#: .././po/../libdeja-dup/Operation.vala:53 msgid "Checking for backups..." msgstr "Nach Datensicherungen wird gesucht..." #. Ask user -#: ../libdeja-dup/Operation.vala:199 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "Verschlüsselungspasswort" -#: ../libdeja-dup/Operation.vala:200 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." msgstr "" "geben Sie das Passwort ein, mit dem die Datensicherung verschlüsselt werden " "soll." -#: ../libdeja-dup/Operation.vala:219 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "Déjà DupDatensicherung Passwortsatz" -#: ../libdeja-dup/Operation.vala:237 +#: .././po/../libdeja-dup/Operation.vala:255 msgid "Another Déjà Dup is already running" msgstr "Déjà Dup wird bereits ausgeführt" -#: ../nautilus/NautilusExtension.c:95 +#: .././po/../nautilus/NautilusExtension.c:95 msgid "Revert to Previous Version..." msgid_plural "Revert to Previous Versions..." msgstr[0] "Alte Version wiederherstellen..." msgstr[1] "Alte Versionen wiederherstellen..." -#: ../nautilus/NautilusExtension.c:99 +#: .././po/../nautilus/NautilusExtension.c:99 msgid "Restore file from backup" msgid_plural "Restore files from backup" msgstr[0] "Datei aus Datensicherung wiederherstellen" msgstr[1] "Dateien aus Datensicherung wiederherstellen" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "Amazon S3" +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Déjà Dup Einstellungen" -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "Lokaler Ordner" - -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" -msgstr "SSH" - -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "Ordner auswählen" +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "S3 Zugangsschlüssel ID" -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" -msgstr "Persönlicher Ordner" +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Ordner:" -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "Mülleimer" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "regelmäßige Datensicherungen erstellen" -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "Ordner wählen" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "Wie _oft gesichert werden soll:" -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "konnte den Ordner nicht hinzufügen" +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Position der Datensicherungsdateien" -#: ../preferences/ConfigList.vala:164 -#, c-format -msgid "%s is already in the list." -msgstr "%s ist bereits in der Liste." +#~ msgid "Local backup location" +#~ msgstr "lokaler Ordner für Datensicherung" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" -msgstr "täglich" +#~ msgid "Choose backup destination" +#~ msgstr "Position der Datensicherung auswählen" -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" -msgstr "wöchentlich" +#~ msgid "Local Folder" +#~ msgstr "Lokaler Ordner" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "zweiwöchentlich" +#~ msgid "Select Folder" +#~ msgstr "Ordner auswählen" -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "monatlich" +#~ msgid "Choose folder" +#~ msgstr "Ordner wählen" -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "jeden %d Tag" -msgstr[1] "alle %d Tage" +#~ msgid "Could not add the folder" +#~ msgstr "konnte den Ordner nicht hinzufügen" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "Déjà Dup Einstellungen" +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Sie sollten ein Exemplar der GNU General Public License zusammen mit\r\n" +#~ "diesem Programm erhalten haben. Falls nicht, schreiben Sie an die Free\r\n" +#~ "Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-" +#~ "1307, USA." -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "Ort der Datensicherung:" +#~ msgid "I_nclude:" +#~ msgstr "_Einbeziehen:" -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "S3 buc_ket:" +#~ msgid "E_xclude:" +#~ msgstr "_Ausschließen:" -#: ../preferences/PreferencesDialog.vala:91 -#, c-format -msgid "S3 I_D:" -msgstr "S3 I_D:" +#~ msgid "SSH directory" +#~ msgstr "SSH Ordner" -#: ../preferences/PreferencesDialog.vala:110 -#, c-format -msgid "_Folder:" -msgstr "_Ordner:" +#~ msgid "SSH port" +#~ msgstr "SSH Port" -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "_Benutzername:" +#~ msgid "SSH server" +#~ msgstr "SSH Server" -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "_Server:" +#~ msgid "SSH username" +#~ msgstr "SSH Benutzername" -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "_Port:" +#~ msgid "The directory used for SSH connections." +#~ msgstr "der Ordner, der für SSH-Verbindungen genutzt werden soll" -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "_Verzeichnis:" +#~ msgid "The port used for SSH connections." +#~ msgstr "der Port, der für SSH-Verbindungen verwendet wird" -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "_Einbeziehen:" +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Das für Datensicherungen verwendete Protokoll. Gültige Werte sind \"s3\", " +#~ "\"file\" oder \"ssh\"." -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "_Ausschließen:" +#~ msgid "The server used for SSH connections." +#~ msgstr "Der für SSH-Verbindungen verwendete Server." -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "Datensicherungsdateien verschlüsseln" +#~ msgid "The user used for SSH connections." +#~ msgstr "Der für SSH-Verbindungen verwendete Benutzer." -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "regelmäßige Datensicherungen erstellen" +#~ msgid "No username specified" +#~ msgstr "kein Benutzername angegeben" -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "Wie _oft gesichert werden soll:" +#~ msgid "No server specified" +#~ msgstr "Kein Server angegeben" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s auf ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH Passwort" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "" +#~ "Geben Sie den Benutzernamen und das Passwort für den SSH-Server %s ein," + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "%s is already in the list." +#~ msgstr "%s ist bereits in der Liste." + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "Contents" +#~ msgstr "Hilfe" + +#~ msgid "deja-dup" +#~ msgstr "deja-dup" + +#~ msgid "%DATE%" +#~ msgstr "%DATE%" + +#~ msgid "USER COMMANDS" +#~ msgstr "USER COMMANDS" + +#~ msgid "NAME" +#~ msgstr "NAME" + +#~ msgid "deja-dup - backup your data" +#~ msgstr "deja-dup - datensicherung" + +#~ msgid "SYNOPSIS" +#~ msgstr "SYNOPSIS" + +#~ msgid "B<deja-dup> [OPTIONS]" +#~ msgstr "B<deja-dup> [OPTIONS]" + +#~ msgid "B<deja-dup> --restore [FILES]" +#~ msgstr "B<deja-dup> --restore [FILES]" -#~ msgid "Could not connect to backup location" -#~ msgstr "Zum Ort der Datensicherung konnte nicht verbunden werden." +#~ msgid "DESCRIPTION" +#~ msgstr "DESCRIPTION" diff -Nru deja-dup-7.4/po/en_GB.po deja-dup-10.0/po/en_GB.po --- deja-dup-7.4/po/en_GB.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/en_GB.po 2009-06-05 14:52:25.000000000 -0400 @@ -0,0 +1,1572 @@ +# English (United Kingdom) translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:36+0000\n" +"Last-Translator: Michael Terry <michael.terry@canonical.com>\n" +"Language-Team: English (United Kingdom) <en_GB@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "Backup your files" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "Déjà Dup Backup Utility" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "Déjà Dup Monitor" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "Schedule backups at regular intervals" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "Amazon S3 Access Key ID" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "Folders not to backup" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "Folders to backup" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "How often to periodically backup" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "The Amazon S3 bucket name to use" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "The Amazon S3 folder" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "The last time Déjà Dup was run" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "The last time Déjà Dup was run, in ISO 8601 format." + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "The number of days between backups." + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" +"This list of folders will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognised as the user's special folders. Relative entries " +"are relative to the user's home folder." + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" +"This list of folders will not be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognised as the user's special folders. Relative entries " +"are relative to the user's home folder. This list takes precedence over the " +"include list." + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "Type of location to store backup" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "Whether to automatically backup on a regular schedule." + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "Whether to encrypt your backup" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "Whether to periodically backup" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "Your Amazon S3 Access Key Identifier. This acts as your S3 username." + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "Show version" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "Déjà Dup Applet" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "%.1f%% complete" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "Backup about to start" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" +"A scheduled backup will shortly begin. Instead, you can choose to backup " +"later or not at all." + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "Skip Backup" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "Backup Later" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "Encryption password needed" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "Please enter the encryption password for your backup files." + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "Enter" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "Server password needed" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "Please enter the server password for your backup." + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "Backup error occurred" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "Rerun" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "Backup _Later" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "_Skip Backup" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "Could not open preferences" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "Backup" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "_Backup location:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "_Encrypt backup files" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "Preferences" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "Backup location:" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "Backing up" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "Backup Failed" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "Backup Finished" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "Your files were successfully backed up." + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "Backing up..." + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "Summary" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "Restore" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "_Date:" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "Restore files to _original locations" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "Restore to _specific folder" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "Choose destination for restored files" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "Restore _folder:" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "Restore date:" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "Restore folder:" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "Checking for Backups" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "Restore from When?" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "Restore to Where?" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "Restoring" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "No backups to restore" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "Original location" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "File to restore:" +msgstr[1] "Files to restore:" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "Restore Failed" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "Restore Finished" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "Your files were successfully restored." + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "Restoring..." + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "Restore given files" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "No filenames provided" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "_Restore" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "_Backup" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "_File" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "_Edit" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "_Help" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "Get Help _Online..." + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "_Translate This Application..." + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "_Report a Problem..." + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "Folder %s on Amazon S3" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "Amazon S3 Password" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Home Folder" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Wastebasket" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Daily" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Weekly" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Biweekly" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Monthly" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Every %d day" +msgstr[1] "Every %d days" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "Could not run duplicity" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" +"Could not understand duplicity version.\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" +"Could not understand duplicity version '%s'.\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "Without duplicity, Déjà Dup cannot function. It will close now." + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "Duplicity's version is too old" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "Preparing..." + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "Cleaning up..." + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "Failed with an unknown error." + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "Could not restore '%s': File not found in backup" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "Invalid ID." + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "Invalid secret key." + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "Your Amazon Web Services account is not signed up for the S3 service." + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "S3 bucket name is not available." + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "Bad encryption password." + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "Error reading file '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "Error writing file '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "No space left in %s" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "No backup files found" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "Could not display %s" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "About Déjà Dup" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Huygens https://launchpad.net/~huygens-25\n" +"\n" +"Launchpad Contributions:\n" +" Huygens https://launchpad.net/~huygens-25\n" +" Mathieu Divaret https://launchpad.net/~joots\n" +"\n" +"Launchpad Contributions:\n" +" Huygens https://launchpad.net/~huygens-25\n" +" Mathieu Divaret https://launchpad.net/~joots\n" +" Michael Terry https://launchpad.net/~mterry" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public Licence as published by the Free " +"Software Foundation; either version 3 of the Licence, or (at your option) " +"any later version." + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" +"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 General Public Licence for " +"more details." + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Unknown" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "_Username:" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "Restoring files..." + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "Could not restore %s: %s" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "Checking for backups..." + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "Encryption Password" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "Enter the password used to encrypt your backup files." + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "Déjà Dup backup passphrase" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "Another Déjà Dup is already running" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "Revert to Previous Version..." +msgstr[1] "Revert to Previous Versions..." + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "Restore file from backup" +msgstr[1] "Restore files from backup" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Déjà Dup Preferences" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "S3 Access Key I_D:" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Folder:" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "_Automatically backup on a regular schedule" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "How _often to backup:" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Folder on your system in which to hold the backup files." + +#~ msgid "Local backup location" +#~ msgstr "Local backup location" + +#~ msgid "Choose backup destination" +#~ msgstr "Choose backup destination" + +#~ msgid "Local Folder" +#~ msgstr "Local Folder" + +#~ msgid "Select Folder" +#~ msgstr "Select Folder" + +#~ msgid "Choose folder" +#~ msgstr "Choose folder" + +#~ msgid "Could not add the folder" +#~ msgstr "Could not add the folder" + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "You should have received a copy of the GNU General Public Licence along " +#~ "with this program; if not, write to the Free Software Foundation, Inc., " +#~ "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." + +#~ msgid "I_nclude:" +#~ msgstr "I_nclude:" + +#~ msgid "E_xclude:" +#~ msgstr "E_xclude:" + +#~ msgid "SSH directory" +#~ msgstr "SSH directory" + +#~ msgid "SSH port" +#~ msgstr "SSH port" + +#~ msgid "SSH server" +#~ msgstr "SSH server" + +#~ msgid "SSH username" +#~ msgstr "SSH username" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "The folder used for SSH connections." + +#~ msgid "The port used for SSH connections." +#~ msgstr "The port used for SSH connections." + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." + +#~ msgid "The server used for SSH connections." +#~ msgstr "The server used for SSH connections." + +#~ msgid "The user used for SSH connections." +#~ msgstr "The user used for SSH connections." + +#~ msgid "No username specified" +#~ msgstr "No username specified" + +#~ msgid "No server specified" +#~ msgstr "No server specified" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s on ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH Password" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Enter your SSH username and password for server %s." + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "%s is already in the list." +#~ msgstr "%s is already in the list." + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "Contents" +#~ msgstr "Contents" + +#~ msgid "deja-dup" +#~ msgstr "deja-dup" + +#~ msgid "%DATE%" +#~ msgstr "%DATE%" + +#~ msgid "USER COMMANDS" +#~ msgstr "USER COMMANDS" + +#~ msgid "NAME" +#~ msgstr "NAME" + +#~ msgid "deja-dup - backup your data" +#~ msgstr "deja-dup - backup your data" + +#~ msgid "SYNOPSIS" +#~ msgstr "SYNOPSIS" + +#~ msgid "B<deja-dup> [OPTIONS]" +#~ msgstr "B<deja-dup> [OPTIONS]" + +#~ msgid "B<deja-dup> --restore [FILES]" +#~ msgstr "B<deja-dup> --restore [FILES]" + +#~ msgid "DESCRIPTION" +#~ msgstr "DESCRIPTION" + +#~ msgid "OPTIONS" +#~ msgstr "OPTIONS" + +#~ msgid "-?, --help" +#~ msgstr "-?, --help" + +#~ msgid "Display usage information" +#~ msgstr "Display usage information" + +#~ msgid "--version" +#~ msgstr "--version" + +#~ msgid "Prints program name and version" +#~ msgstr "Prints program name and version" + +#~ msgid "--restore" +#~ msgstr "--restore" + +#~ msgid "Restores only the specified files" +#~ msgstr "Restores only the specified files" + +#~ msgid "ENVIRONMENT" +#~ msgstr "ENVIRONMENT" + +#~ msgid "DEJA_DUP_DEBUG" +#~ msgstr "DEJA_DUP_DEBUG" + +#~ msgid "Set to 1 to enable more verbose output. Helpful for debugging." +#~ msgstr "Set to 1 to enable more verbose output. Helpful for debugging." + +#~ msgid "SEE ALSO" +#~ msgstr "SEE ALSO" + +#~ msgid "B<duplicity>(1)" +#~ msgstr "B<duplicity>(1)" + +#~ msgid "deja-dup-applet" +#~ msgstr "deja-dup-applet" + +#~ msgid "deja-dup-applet - backup your data" +#~ msgstr "deja-dup-applet - backup your data" + +#~ msgid "B<deja-dup-applet> [OPTIONS]" +#~ msgstr "B<deja-dup-applet> [OPTIONS]" + +#~ msgid "" +#~ "deja-dup-applet is a notification applet that carries out a scheuduled " +#~ "backup. It is usually started automatically by B<deja-dup-monitor>(1)." +#~ msgstr "" +#~ "deja-dup-applet is a notification applet that carries out a scheuduled " +#~ "backup. It is usually started automatically by B<deja-dup-monitor>(1)." + +#~ msgid "B<deja-dup>(1), B<deja-dup-monitor>(1)" +#~ msgstr "B<deja-dup>(1), B<deja-dup-monitor>(1)" + +#~ msgid "deja-dup-monitor" +#~ msgstr "deja-dup-monitor" + +#~ msgid "deja-dup-monitor - backup your data" +#~ msgstr "deja-dup-monitor - backup your data" + +#~ msgid "B<deja-dup-monitor> [OPTIONS]" +#~ msgstr "B<deja-dup-monitor> [OPTIONS]" + +#~ msgid "" +#~ "deja-dup-monitor is a session daemon that handles scheduled backups. It " +#~ "is started by default whenever a user logs in. When a scheduled backup " +#~ "is due, it starts B<deja-dup-applet>(1)." +#~ msgstr "" +#~ "deja-dup-monitor is a session daemon that handles scheduled backups. It " +#~ "is started by default whenever a user logs in. When a scheduled backup is " +#~ "due, it starts B<deja-dup-applet>(1)." + +#~ msgid "B<deja-dup>(1), B<deja-dup-applet>(1)" +#~ msgstr "B<deja-dup>(1), B<deja-dup-applet>(1)" + +#~ msgid "deja-dup-preferences" +#~ msgstr "deja-dup-preferences" + +#~ msgid "deja-dup-preferences - backup your data" +#~ msgstr "deja-dup-preferences - backup your data" + +#~ msgid "B<deja-dup-preferences> [OPTIONS]" +#~ msgstr "B<deja-dup-preferences> [OPTIONS]" + +#~ msgid "deja-dup-preferences is the preferences dialog for B<deja-dup>(1)." +#~ msgstr "deja-dup-preferences is the preferences dialog for B<deja-dup>(1)." + +#~ msgid "B<deja-dup>(1)" +#~ msgstr "B<deja-dup>(1)" + +#~ msgid "C" +#~ msgstr "C" + +#~ msgid "<application>Déjà Dup</application> Manual" +#~ msgstr "<application>Déjà Dup</application> Manual" + +#~ msgid "<application>Déjà Dup</application> is a simple backup utility." +#~ msgstr "<application>Déjà Dup</application> is a simple backup utility." + +#~ msgid " <email>mike@mterry.name</email> " +#~ msgstr " <email>mike@mterry.name</email> " + +#~ msgid "%VERSION%" +#~ msgstr "%VERSION%" + +#~ msgid "Michael Terry <email>mike@mterry.name</email>" +#~ msgstr "Michael Terry <email>mike@mterry.name</email>" + +#~ msgid "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +#~ "\"><application>Déjà Dup</application> Administrators</ulink>" +#~ msgstr "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +#~ "\"><application>Déjà Dup</application> Administrators</ulink>" + +#~ msgid "This manual describes version %VERSION% of Déjà Dup." +#~ msgstr "This manual describes version %VERSION% of Déjà Dup." + +#~ msgid "Feedback" +#~ msgstr "Feedback" + +#~ msgid "" +#~ "To report a bug or make a suggestion regarding the <application>Déjà Dup</" +#~ "application> application or this manual, visit the <ulink url=\"http://" +#~ "bugs.launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</" +#~ "application> project page</ulink>." +#~ msgstr "" +#~ "To report a bug or make a suggestion regarding the <application>Déjà Dup</" +#~ "application> application or this manual, visit the <ulink url=\"http://" +#~ "bugs.launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</" +#~ "application> project page</ulink>." + +#~ msgid "Introduction" +#~ msgstr "Introduction" + +#~ msgid "" +#~ "<application>Déjà Dup</application> is a simple backup program. It hides " +#~ "the complexity of doing backups the 'right way' (encrypted, off-site, and " +#~ "regular) and uses duplicity as the backend." +#~ msgstr "" +#~ "<application>Déjà Dup</application> is a simple backup program. It hides " +#~ "the complexity of doing backups the 'right way' (encrypted, off-site, and " +#~ "regular) and uses duplicity as the backend." + +#~ msgid "<application>Déjà Dup</application> provides the following features:" +#~ msgstr "" +#~ "<application>Déjà Dup</application> provides the following features:" + +#~ msgid "Securely encrypts and compresses your data." +#~ msgstr "Securely encrypts and compresses your data." + +#~ msgid "" +#~ "Incrementally backs up, letting you restore from any particular backup." +#~ msgstr "" +#~ "Incrementally backs up, letting you restore from any particular backup." + +#~ msgid "Schedules regular backups." +#~ msgstr "Schedules regular backups." + +#~ msgid "Integrates well into your GNOME desktop." +#~ msgstr "Integrates well into your GNOME desktop." + +#~ msgid "Getting Started" +#~ msgstr "Getting Started" + +#~ msgid "Starting <application>Déjà Dup</application>" +#~ msgstr "Starting <application>Déjà Dup</application>" + +#~ msgid "" +#~ "You can start <application>Déjà Dup</application> in the following ways:" +#~ msgstr "" +#~ "You can start <application>Déjà Dup</application> in the following ways:" + +#~ msgid "<guimenu>Applications</guimenu> menu" +#~ msgstr "<guimenu>Applications</guimenu> menu" + +#~ msgid "" +#~ "Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà " +#~ "Dup Backup Utility</guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà " +#~ "Dup Backup Utility</guimenuitem></menuchoice>." + +#~ msgid "Command line" +#~ msgstr "Command line" + +#~ msgid "" +#~ "To start <application>Déjà Dup</application> from a command line, type " +#~ "the following command, then press <keycap>Return</keycap>:" +#~ msgstr "" +#~ "To start <application>Déjà Dup</application> from a command line, type " +#~ "the following command, then press <keycap>Return</keycap>:" + +#~ msgid "<command>deja-dup</command>" +#~ msgstr "<command>deja-dup</command>" + +#~ msgid "Backing Up" +#~ msgstr "Backing Up" + +#~ msgid "" +#~ "To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +#~ "guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> " +#~ "button on the main window." +#~ msgstr "" +#~ "To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +#~ "guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> " +#~ "button on the main window." + +#~ msgid "" +#~ "To restore, choose <menuchoice><guimenu>File</" +#~ "guimenu><guimenuitem>Restore</guimenuitem></menuchoice>. Or press the " +#~ "<guibutton>Restore</guibutton> button on the main window." +#~ msgstr "" +#~ "To restore, choose <menuchoice><guimenu>File</" +#~ "guimenu><guimenuitem>Restore</guimenuitem></menuchoice>. Or press the " +#~ "<guibutton>Restore</guibutton> button on the main window." + +#~ msgid "" +#~ "To configure <application>Déjà Dup</application>, choose " +#~ "<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice>." +#~ msgstr "" +#~ "To configure <application>Déjà Dup</application>, choose " +#~ "<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice>." + +#~ msgid "<guilabel>Backup location</guilabel>" +#~ msgstr "<guilabel>Backup location</guilabel>" + +#~ msgid "<guilabel>Amazon S3</guilabel>" +#~ msgstr "<guilabel>Amazon S3</guilabel>" + +#~ msgid "" +#~ "This backup location uses the S3 storage service from Amazon. For a small " +#~ "fee per gigabyte, they hold your data for you. This is the recommended " +#~ "default because it is an easy way to keep your data offsite (meaning out " +#~ "of your home: in case of disaster or theft, your data will still be " +#~ "safe). You can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=" +#~ "\"http\">online</ulink>." +#~ msgstr "" +#~ "This backup location uses the S3 storage service from Amazon. For a small " +#~ "fee per gigabyte, they hold your data for you. This is the recommended " +#~ "default because it is an easy way to keep your data offsite (meaning out " +#~ "of your home: in case of disaster or theft, your data will still be " +#~ "safe). You can sign up <ulink url=\"http://aws.amazon.com/s3/\" type=" +#~ "\"http\">online</ulink>." + +#~ msgid "" +#~ "This service costs money. Read their rates carefully before using it." +#~ msgstr "" +#~ "This service costs money. Read their rates carefully before using it." + +#~ msgid "Default: <guilabel>Amazon S3</guilabel>." +#~ msgstr "Default: <guilabel>Amazon S3</guilabel>." + +#~ msgid "<guilabel>S3 Access Key ID</guilabel>" +#~ msgstr "<guilabel>S3 Access Key ID</guilabel>" + +#~ msgid "" +#~ "This option only appears if the <guilabel>Amazon S3</guilabel> backup " +#~ "location has been selected." +#~ msgstr "" +#~ "This option only appears if the <guilabel>Amazon S3</guilabel> backup " +#~ "location has been selected." + +#~ msgid "" +#~ "This is your Access Key ID that Amazon gave you when you signed up for " +#~ "S3. It is like a username for logging into S3. If left empty, you will be " +#~ "prompted for it as you backup or restore." +#~ msgstr "" +#~ "This is your Access Key ID that Amazon gave you when you signed up for " +#~ "S3. It is like a username for logging into S3. If left empty, you will be " +#~ "prompted for it as you backup or restore." + +#~ msgid "<guilabel>Folder</guilabel>" +#~ msgstr "<guilabel>Folder</guilabel>" + +#~ msgid "" +#~ "If you have multiple backups, you may want to keep them separated in " +#~ "multiple folders. Use this option to enter a path on the S3 service in " +#~ "which to put your files." +#~ msgstr "" +#~ "If you have multiple backups, you may want to keep them separated in " +#~ "multiple folders. Use this option to enter a path on the S3 service in " +#~ "which to put your files." + +#~ msgid "" +#~ "Select a list of directories to backup. Press the <guibutton>Add</" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "If you are only interested in backing up your own data, the default of " +#~ "<guilabel>Home Folder</guilabel> is sufficient." +#~ msgstr "" +#~ "Select a list of directories to backup. Press the <guibutton>Add</" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "If you are only interested in backing up your own data, the default of " +#~ "<guilabel>Home Folder</guilabel> is sufficient." + +#~ msgid "" +#~ "Select a list of directories to not backup. Press the <guibutton>Add </" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "This list takes precedence over the list of included directories." +#~ msgstr "" +#~ "Select a list of directories to not backup. Press the <guibutton>Add </" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "This list takes precedence over the list of included directories." + +#~ msgid "" +#~ "Some of your data may be large and not very important to you. In that " +#~ "case, you can save yourself some time and space by not backing them up." +#~ msgstr "" +#~ "Some of your data may be large and not very important to you. In that " +#~ "case, you can save yourself some time and space by not backing them up." + +#~ msgid "" +#~ "There are some locations that <application>Déjà Dup</application> " +#~ "excludes by default:" +#~ msgstr "" +#~ "There are some locations that <application>Déjà Dup</application> " +#~ "excludes by default:" + +#~ msgid "~/.cache" +#~ msgstr "~/.cache" + +#~ msgid "~/.thumbnails" +#~ msgstr "~/.thumbnails" + +#~ msgid "~/.gvfs" +#~ msgstr "~/.gvfs" + +#~ msgid "~/.xsession-errors" +#~ msgstr "~/.xsession-errors" + +#~ msgid "~/.recently-used.xbel" +#~ msgstr "~/.recently-used.xbel" + +#~ msgid "~/.recent-applications.xbel" +#~ msgstr "~/.recent-applications.xbel" + +#~ msgid "/proc" +#~ msgstr "/proc" + +#~ msgid "/tmp" +#~ msgstr "/tmp" + +#~ msgid "/sys" +#~ msgstr "/sys" + +#~ msgid "<guilabel>Encrypt backup files</guilabel>" +#~ msgstr "<guilabel>Encrypt backup files</guilabel>" + +#~ msgid "" +#~ "Encrypting your backup files is recommended to keep your data safe. If " +#~ "you don't have exclusive physical control of your backup location, or if " +#~ "it is stolen, an encrypted backup prevents others from looking at your " +#~ "personal data." +#~ msgstr "" +#~ "Encrypting your backup files is recommended to keep your data safe. If " +#~ "you don't have exclusive physical control of your backup location, or if " +#~ "it is stolen, an encrypted backup prevents others from looking at your " +#~ "personal data." + +#~ msgid "" +#~ "If on, you will be prompted for a password. Keep this password safe, you " +#~ "will need it to restore your data." +#~ msgstr "" +#~ "If on, you will be prompted for a password. Keep this password safe, you " +#~ "will need it to restore your data." + +#~ msgid "Default: <userinput>On</userinput>." +#~ msgstr "Default: <userinput>On</userinput>." + +#~ msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +#~ msgstr "<guilabel>Automatically backup on a regular schedule</guilabel>" + +#~ msgid "" +#~ "Turn this option on to have <application>Déjà Dup</application> " +#~ "automatically backup for you. This is recommended so that you don't " +#~ "forget to backup. Backups are more useful the more recently you have made " +#~ "them, so it is important to regularly do so." +#~ msgstr "" +#~ "Turn this option on to have <application>Déjà Dup</application> " +#~ "automatically backup for you. This is recommended so that you don't " +#~ "forget to backup. Backups are more useful the more recently you have made " +#~ "them, so it is important to regularly do so." + +#~ msgid "Default: <userinput>Off</userinput>." +#~ msgstr "Default: <userinput>Off</userinput>." + +#~ msgid "<guilabel>How often to backup</guilabel>" +#~ msgstr "<guilabel>How often to backup</guilabel>" + +#~ msgid "Choose a schedule for automatic backups." +#~ msgstr "Choose a schedule for automatic backups." + +#~ msgid "Default: <guilabel>Weekly</guilabel>." +#~ msgstr "Default: <guilabel>Weekly</guilabel>." + +#~ msgid "" +#~ "deja-dup is a graphical frontend to B<duplicity>(1). It can backup and " +#~ "restore using Amazon S3, an SSH server, or a local folder, as well as " +#~ "schedule backups at regular intervals." +#~ msgstr "" +#~ "deja-dup is a graphical frontend to B<duplicity>(1). It can backup and " +#~ "restore using Amazon S3, an SSH server, or a local folder, as well as " +#~ "schedule backups at regular intervals." + +#~ msgid "Michael Terry" +#~ msgstr "Michael Terry" + +#~ msgid "<author> <firstname>Michael</firstname> <surname>Terry</surname>" +#~ msgstr "<author> <firstname>Michael</firstname> <surname>Terry</surname>" + +#~ msgid "<indexterm zone=\"index\">" +#~ msgstr "<indexterm zone=\"index\">" + +#~ msgid "</indexterm> <indexterm zone=\"index\">" +#~ msgstr "</indexterm> <indexterm zone=\"index\">" + +#~ msgid "Support for the following backup locations:" +#~ msgstr "Support for the following backup locations:" + +#~ msgid "Local folder" +#~ msgstr "Local folder" + +#~ msgid "When You Start <application>Déjà Dup</application>" +#~ msgstr "When You Start <application>Déjà Dup</application>" + +#~ msgid "" +#~ "If this is the first time you have run <application>Déjà Dup</" +#~ "application>, you should configure your backup before continuing. You'll " +#~ "need to decide where to put the backup files and which folders to include " +#~ "or exclude." +#~ msgstr "" +#~ "If this is the first time you have run <application>Déjà Dup</" +#~ "application>, you should configure your backup before continuing. You'll " +#~ "need to decide where to put the backup files and which folders to include " +#~ "or exclude." + +#~ msgid "" +#~ "Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice> to open the <link linkend=\"deja-dup-prefs" +#~ "\">Preferences window</link>." +#~ msgstr "" +#~ "Choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice> to open the <link linkend=\"deja-dup-prefs" +#~ "\">Preferences window</link>." + +#~ msgid "" +#~ "Use this drop-down list box to specify the backup location that " +#~ "<application>Déjà Dup</application> uses when backing up or restoring. " +#~ "Select one of the following options:" +#~ msgstr "" +#~ "Use this drop-down list box to specify the backup location that " +#~ "<application>Déjà Dup</application> uses when backing up or restoring. " +#~ "Select one of the following options:" + +#~ msgid "<guilabel>Local Folder</guilabel>" +#~ msgstr "<guilabel>Local Folder</guilabel>" + +#~ msgid "" +#~ "This is the backup location to pick if you have an external hard drive " +#~ "that you want to use for backups." +#~ msgstr "" +#~ "This is the backup location to pick if you have an external hard drive " +#~ "that you want to use for backups." + +#~ msgid "<guilabel>SSH</guilabel>" +#~ msgstr "<guilabel>SSH</guilabel>" + +#~ msgid "" +#~ "If you have access to a server running SSH (a protocol that lets remote " +#~ "users log in), pick this location. Web hosts or data servers often " +#~ "provide SSH access." +#~ msgstr "" +#~ "If you have access to a server running SSH (a protocol that lets remote " +#~ "users log in), pick this location. Web hosts or data servers often " +#~ "provide SSH access." + +#~ msgid "" +#~ "This option only appears if the <guilabel>Local Folder</guilabel> backup " +#~ "location has been selected." +#~ msgstr "" +#~ "This option only appears if the <guilabel>Local Folder</guilabel> backup " +#~ "location has been selected." + +#~ msgid "" +#~ "Choose the folder into which you want to store the backup files. This " +#~ "often will be an external drive that you plug in." +#~ msgstr "" +#~ "Choose the folder into which you want to store the backup files. This " +#~ "often will be an external drive that you plug in." + +#~ msgid "<guilabel>Username</guilabel>" +#~ msgstr "<guilabel>Username</guilabel>" + +#~ msgid "" +#~ "This option only appears if the <guilabel>SSH</guilabel> backup location " +#~ "has been selected." +#~ msgstr "" +#~ "This option only appears if the <guilabel>SSH</guilabel> backup location " +#~ "has been selected." + +#~ msgid "Enter the username used to log in to the server." +#~ msgstr "Enter the username used to log in to the server." + +#~ msgid "<guilabel>Server</guilabel>" +#~ msgstr "<guilabel>Server</guilabel>" + +#~ msgid "" +#~ "Enter the address of the server to use. This can either be an IP address " +#~ "(all numbers) or a domain name." +#~ msgstr "" +#~ "Enter the address of the server to use. This can either be an IP address " +#~ "(all numbers) or a domain name." + +#~ msgid "<guilabel>Port</guilabel>" +#~ msgstr "<guilabel>Port</guilabel>" + +#~ msgid "" +#~ "Enter the SSH port for the server. This is almost always best left blank " +#~ "or as the default <userinput>22</userinput>." +#~ msgstr "" +#~ "Enter the SSH port for the server. This is almost always best left blank " +#~ "or as the default <userinput>22</userinput>." + +#~ msgid "<guilabel>Directory</guilabel>" +#~ msgstr "<guilabel>Folder</guilabel>" + +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "Enter the folder to store backup files on the server." + +#~ msgid "<guilabel>Include</guilabel>" +#~ msgstr "<guilabel>Include</guilabel>" + +#~ msgid "<guilabel>Exclude</guilabel>" +#~ msgstr "<guilabel>Exclude</guilabel>" + +#~ msgid "~/Private" +#~ msgstr "~/Private" + +#~ msgid "" +#~ "The <guilabel>Backup</guilabel> dialog will then be displayed. Click " +#~ "<guibutton>Apply</guibutton> to start the backup. A progress bar will " +#~ "appear. If an error occurs, the dialog will display an error message." +#~ msgstr "" +#~ "The <guilabel>Backup</guilabel> dialog will then be displayed. Click " +#~ "<guibutton>Apply</guibutton> to start the backup. A progress bar will " +#~ "appear. If an error occurs, the dialog will display an error message." + +#~ msgid "" +#~ "The <guilabel>Restore</guilabel> dialog will then be displayed. You first " +#~ "must pick where to put the restored files. You can either restore them to " +#~ "their original locations or put them under a folder of your choice." +#~ msgstr "" +#~ "The <guilabel>Restore</guilabel> dialog will then be displayed. You first " +#~ "must pick where to put the restored files. You can either restore them to " +#~ "their original locations or put them under a folder of your choice." + +#~ msgid "" +#~ "After clicking <guibutton>Forward</guibutton>, you can review your " +#~ "restore options, then click <guibutton>Apply</guibutton> to start the " +#~ "restore. A progress bar will appear. If an error occurs, the dialog will " +#~ "display an error message." +#~ msgstr "" +#~ "After clicking <guibutton>Forward</guibutton>, you can review your " +#~ "restore options, then click <guibutton>Apply</guibutton> to start the " +#~ "restore. A progress bar will appear. If an error occurs, the dialog will " +#~ "display an error message." + +#~ msgid "" +#~ "Permission is granted to copy, distribute and/or modify this document " +#~ "under the terms of the GNU Free Documentation License (GFDL), Version 1.1 " +#~ "or any later version published by the Free Software Foundation with no " +#~ "Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You " +#~ "can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl" +#~ "\">link</ulink> or in the file COPYING-DOCS distributed with this manual." +#~ msgstr "" +#~ "Permission is granted to copy, distribute and/or modify this document " +#~ "under the terms of the GNU Free Documentation License (GFDL), Version 1.1 " +#~ "or any later version published by the Free Software Foundation with no " +#~ "Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You " +#~ "can find a copy of the GFDL at this <ulink type=\"help\" url=\"ghelp:fdl" +#~ "\">link</ulink> or in the file COPYING-DOCS distributed with this manual." + +#~ msgid "" +#~ "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE " +#~ "TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER " +#~ "UNDERSTANDING THAT:" +#~ msgstr "" +#~ "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE " +#~ "TERMS OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER " +#~ "UNDERSTANDING THAT:" + +#~ msgid "" +#~ "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +#~ "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES " +#~ "THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +#~ "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +#~ "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +#~ "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +#~ "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +#~ "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES " +#~ "AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED " +#~ "VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS " +#~ "DISCLAIMER; AND UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER " +#~ "IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, " +#~ "INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, " +#~ "BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR " +#~ "CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, " +#~ "DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR " +#~ "MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR " +#~ "RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, " +#~ "EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH " +#~ "DAMAGES." +#~ msgstr "" +#~ "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, " +#~ "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES " +#~ "THAT THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS " +#~ "MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE " +#~ "RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR " +#~ "MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL " +#~ "WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY " +#~ "SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES " +#~ "AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED " +#~ "VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS " +#~ "DISCLAIMER; AND UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER " +#~ "IN TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, " +#~ "INITIAL WRITER, ANY CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR " +#~ "MODIFIED VERSION OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, " +#~ "BE LIABLE TO ANY PERSON FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR " +#~ "CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, " +#~ "DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR " +#~ "MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR LOSSES ARISING OUT OF OR " +#~ "RELATING TO USE OF THE DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT, " +#~ "EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH " +#~ "DAMAGES." diff -Nru deja-dup-7.4/po/es.po deja-dup-10.0/po/es.po --- deja-dup-7.4/po/es.po 2009-02-11 21:05:03.000000000 -0500 +++ deja-dup-10.0/po/es.po 2009-06-05 14:52:25.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-02-02 20:47-0500\n" -"PO-Revision-Date: 2009-02-05 17:48+0000\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:37+0000\n" "Last-Translator: Paco Molinero <paco@byasl.com>\n" "Language-Team: Spanish <es@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2009-02-12 01:56+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "Monitor Déjà Dup" @@ -39,86 +39,60 @@ msgstr "Programe copias de respaldo en intervalos regulares" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" +msgid "Amazon S3 Access Key ID" msgstr "" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" -msgstr "Directorios a no ser respaldados" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" -msgstr "Directorios a ser respaldados" +msgid "Backup location" +msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "Carpeta en su sistema en donde mantener los archivos de respaldo." +msgid "Directories not to backup" +msgstr "Directorios a no ser respaldados" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "Que tan seguido respaldar periódicamente" +msgid "Directories to backup" +msgstr "Directorios a ser respaldados" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "Lugar de respaldo local" +msgid "How often to periodically backup" +msgstr "Que tan seguido respaldar periódicamente" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "Directorio SSH" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "Puerto SSH" - -#: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "Servidor SSH" - -#: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "Nombre de usuario SSH" - -#: ../data/deja-dup.schemas.in.h:11 msgid "The Amazon S3 bucket name to use" msgstr "" -#: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "El directorio usado para conexiones SSH" +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" -#: ../data/deja-dup.schemas.in.h:13 +#: ../data/deja-dup.schemas.in.h:10 msgid "The last time Déjà Dup was run" msgstr "La última vez que Déjà Dup fue ejecutado" -#: ../data/deja-dup.schemas.in.h:14 +#: ../data/deja-dup.schemas.in.h:11 msgid "The last time Déjà Dup was run, in ISO 8601 format." msgstr "La última vez que Déjà Dup fue ejecutado, en formato ISO 8601." -#: ../data/deja-dup.schemas.in.h:15 +#: ../data/deja-dup.schemas.in.h:12 msgid "The number of days between backups." msgstr "El número de días entre copias de respaldo." -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "Puerto usado para conexiones SSH" - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" -"Protocolo usado por el servicio de copias de seguridad. Los valores " -"correctos son 's3', 'archivo' o 'ssh'" -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "El servidor utilizado para conexiones SSH" - -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "El usuario empleado para conexiones SSH" - -#: ../data/deja-dup.schemas.in.h:20 +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -126,7 +100,7 @@ "entries are relative to the user's home directory." msgstr "" -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -135,20 +109,20 @@ "This list takes precedence over the include list." msgstr "" -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "Tipo de lugar donde almacenar su copia de respaldo" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "" "Si realizar copias de respaldo automáticamente o en un programa regular" -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "Si cifrar su copia de respaldo" -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." @@ -156,40 +130,41 @@ "Si cifrar sus archivos respaldados en el lugar de almacenamiento. Es " "altamente recomendado dejar esto como 'verdadero'." -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" msgstr "Si realizar copias de respaldo periódicamente" -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." msgstr "" -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." msgstr "" -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" msgstr "Mostrar versión" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" msgstr "Aplicación Déjà Dup" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" msgstr "%.1f%% completo" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "Copia de seguridad a punto de comenzar" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." @@ -197,174 +172,222 @@ "Una copia de seguridad programada comenzará en breve. Puede elegir " "posponerla o cancelarla." -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "Omitir copia de seguridad" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" msgstr "Respaldar Después" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "Contraseña de cifrado necesitada" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "" "Por favor ingrese la contraseña de cifrado para los archivos de respaldo." -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "Ingrese" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" msgstr "Se necesita contraseña del servidor" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." msgstr "Por favor ingrese la contraseña del servidor para su respaldo." -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" msgstr "Ocurrió error de respaldo" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" msgstr "Volver a ejecutar" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" msgstr "" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "Omitir copia de _seguridad" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" msgstr "No se pudieron abrir las preferencias" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" msgstr "Copia de seguridad" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" msgstr "Ubicación para la copia de seguridad:" +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "Desconocido" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" msgstr "Fallo en la copia de seguridad" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" msgstr "Copia de seguridad finalizada" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "Sus archivos fueron respaldados satisfactoriamente." -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "Creando copia de seguridad" -#: ../deja-dup/AssistantOperation.vala:173 +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 msgid "Summary" msgstr "Resumen" -#: ../deja-dup/AssistantRestore.vala:71 +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" msgstr "Restaurar" -#: ../deja-dup/AssistantRestore.vala:101 +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 msgid "_Date:" msgstr "_Fecha:" -#: ../deja-dup/AssistantRestore.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" msgstr "Recuperar archivos a la _ubicación original" -#: ../deja-dup/AssistantRestore.vala:129 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" msgstr "" -#: ../deja-dup/AssistantRestore.vala:139 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" msgstr "Elegir destino para archivos restaurados" -#: ../deja-dup/AssistantRestore.vala:143 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" msgstr "Restaurar _carpeta:" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:227 msgid "Restore date:" msgstr "Restaurar fecha:" -#: ../deja-dup/AssistantRestore.vala:181 +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:222 +#: .././po/../deja-dup/AssistantRestore.vala:261 msgid "Checking for Backups" msgstr "Comprobando copias de seguridad" -#: ../deja-dup/AssistantRestore.vala:233 +#: .././po/../deja-dup/AssistantRestore.vala:272 msgid "Restore from When?" msgstr "" -#: ../deja-dup/AssistantRestore.vala:244 +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" msgstr "" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" msgstr "" -#: ../deja-dup/AssistantRestore.vala:302 +#: .././po/../deja-dup/AssistantRestore.vala:340 msgid "No backups to restore" msgstr "" -#: ../deja-dup/AssistantRestore.vala:404 +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" msgstr "" -#: ../deja-dup/AssistantRestore.vala:417 +#: .././po/../deja-dup/AssistantRestore.vala:447 msgid "File to restore:" msgid_plural "Files to restore:" msgstr[0] "" msgstr[1] "" -#: ../deja-dup/AssistantRestore.vala:439 +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" msgstr "" -#: ../deja-dup/AssistantRestore.vala:441 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" msgstr "" -#: ../deja-dup/AssistantRestore.vala:442 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." msgstr "Sus archivos fueron restaurados satisfactoriamente." -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." msgstr "" -#: ../deja-dup/main.vala:31 +#: .././po/../deja-dup/main.vala:31 msgid "Restore given files" msgstr "" @@ -373,164 +396,236 @@ #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" msgstr "Déjà Dup" -#: ../deja-dup/main.vala:47 +#: .././po/../deja-dup/main.vala:47 msgid "No filenames provided" msgstr "" -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 msgid "_Restore" msgstr "" -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "" -#: ../deja-dup/MainWindow.vala:184 +#: .././po/../deja-dup/MainWindow.vala:176 msgid "_File" msgstr "" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "" -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "" -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "" -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" -msgstr "Eliga el destino de respaldo" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" +msgid "Folder %s on Amazon S3" msgstr "" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "Contraseña de Amazon S3" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." msgstr "" -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." msgstr "" -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:157 -#, c-format -msgid "Enter your SSH username and password for server %s." +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Carpeta Personal" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Papelera" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:117 +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Diariamente" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Semanalmente" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Bisemanal" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Mensualmente" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Cada %d día" +msgstr[1] "Cada %d dias" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 msgid "Could not run duplicity" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" "\n" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " "version %d.%d.%.2d" msgstr "" -#: ../libdeja-dup/Duplicity.vala:120 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 msgid "Preparing..." msgstr "" -#: ../libdeja-dup/Duplicity.vala:170 +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." msgstr "Limpiando..." -#: ../libdeja-dup/Duplicity.vala:215 +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 msgid "Failed with an unknown error." msgstr "Falló con un error desconocido." -#: ../libdeja-dup/Duplicity.vala:287 +#: .././po/../libdeja-dup/Duplicity.vala:341 #, c-format msgid "Could not restore '%s': File not found in backup" msgstr "" -#: ../libdeja-dup/Duplicity.vala:301 -msgid "Invalid ID" +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." msgstr "" -#: ../libdeja-dup/Duplicity.vala:303 -msgid "Invalid secret key" +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." msgstr "" -#: ../libdeja-dup/Duplicity.vala:320 +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 msgid "No backup files found" msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/libdeja-dup.vala:95 #, c-format msgid "Could not display %s" msgstr "No se pudo mostrar %s" -#: ../libdeja-dup/libdeja-dup.vala:130 +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "Sobre Déjà Dup" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" @@ -546,9 +641,23 @@ " Paco Molinero https://launchpad.net/~franciscomol\n" " davidru85 https://launchpad.net/~davidru85\n" " maty1206 https://launchpad.net/~maty1206\n" +" paketecuento https://launchpad.net/~pagilm\n" +"\n" +"Launchpad Contributions:\n" +" Alexsp92 https://launchpad.net/~alexsp92\n" +" Andres E. Rodriguez Lazo https://launchpad.net/~andreserl\n" +" DiegoJ https://launchpad.net/~diegojromerolopez\n" +" Guillermo Espertino (Gez) https://launchpad.net/~gespertino-gmail\n" +" Jose Edgardo Lopez Vasquez https://launchpad.net/~magjogui\n" +" JoseRojas https://launchpad.net/~joserojas\n" +" Luis J. Claros https://launchpad.net/~luisj-claros\n" +" Paco Molinero https://launchpad.net/~franciscomol\n" +" davidru85 https://launchpad.net/~davidru85\n" +" fosk https://launchpad.net/~oscarrdg\n" +" maty1206 https://launchpad.net/~maty1206\n" " paketecuento https://launchpad.net/~pagilm" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -557,7 +666,7 @@ "any later version." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -565,193 +674,184 @@ "more details." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Desconocido" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" msgstr "" -#: ../libdeja-dup/OperationRestore.vala:59 +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 msgid "Restoring files..." msgstr "Restaurando archivos..." -#: ../libdeja-dup/OperationRestore.vala:169 +#: .././po/../libdeja-dup/OperationRestore.vala:172 #, c-format msgid "" "Not all files could be restored. Any files that could not be restored may " "still be found in %s." msgstr "" -#: ../libdeja-dup/OperationRestore.vala:178 +#: .././po/../libdeja-dup/OperationRestore.vala:181 #, c-format msgid "Could not restore %s: %s" msgstr "" -#: ../libdeja-dup/Operation.vala:53 +#: .././po/../libdeja-dup/Operation.vala:53 msgid "Checking for backups..." msgstr "" #. Ask user -#: ../libdeja-dup/Operation.vala:199 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "Contraseña de Cifrado" -#: ../libdeja-dup/Operation.vala:200 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." msgstr "Ingrese la contraseña usada para cifrar sus archivos de respaldo." -#: ../libdeja-dup/Operation.vala:219 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "" -#: ../libdeja-dup/Operation.vala:237 +#: .././po/../libdeja-dup/Operation.vala:255 msgid "Another Déjà Dup is already running" msgstr "" -#: ../nautilus/NautilusExtension.c:95 +#: .././po/../nautilus/NautilusExtension.c:95 msgid "Revert to Previous Version..." msgid_plural "Revert to Previous Versions..." msgstr[0] "" msgstr[1] "" -#: ../nautilus/NautilusExtension.c:99 +#: .././po/../nautilus/NautilusExtension.c:99 msgid "Restore file from backup" msgid_plural "Restore files from backup" msgstr[0] "" msgstr[1] "" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "Amazon S3" - -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "Carpeta local" +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Preferencias de Déjà Dup" -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" msgstr "" -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "Seleccionar carpeta" - -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" -msgstr "Carpeta Personal" - -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "Papelera" - -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "Elegir carpeta" - -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "No se pudo agregar la carpeta" - -#: ../preferences/ConfigList.vala:164 +#: .././po/../preferences/PreferencesDialog.vala:80 #, c-format -msgid "%s is already in the list." +msgid "_Folder:" msgstr "" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" -msgstr "Diariamente" - -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" -msgstr "Semanalmente" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "Bisemanal" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "" -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "Mensualmente" +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Carpeta en su sistema en donde mantener los archivos de respaldo." -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "Cada %d día" -msgstr[1] "Cada %d dias" +#~ msgid "Local backup location" +#~ msgstr "Lugar de respaldo local" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "Preferencias de Déjà Dup" +#~ msgid "Choose backup destination" +#~ msgstr "Eliga el destino de respaldo" -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "" +#~ msgid "Local Folder" +#~ msgstr "Carpeta local" -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "" +#~ msgid "Select Folder" +#~ msgstr "Seleccionar carpeta" -#: ../preferences/PreferencesDialog.vala:91 -#, c-format -msgid "S3 I_D:" -msgstr "" +#~ msgid "Choose folder" +#~ msgstr "Elegir carpeta" -#: ../preferences/PreferencesDialog.vala:110 -#, c-format -msgid "_Folder:" -msgstr "" +#~ msgid "Could not add the folder" +#~ msgstr "No se pudo agregar la carpeta" -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "" +#~ msgid "SSH directory" +#~ msgstr "Directorio SSH" -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "" +#~ msgid "SSH port" +#~ msgstr "Puerto SSH" -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "" +#~ msgid "SSH server" +#~ msgstr "Servidor SSH" -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "" +#~ msgid "SSH username" +#~ msgstr "Nombre de usuario SSH" -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "" +#~ msgid "The directory used for SSH connections." +#~ msgstr "El directorio usado para conexiones SSH" -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "" +#~ msgid "The port used for SSH connections." +#~ msgstr "Puerto usado para conexiones SSH" -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "" +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Protocolo usado por el servicio de copias de seguridad. Los valores " +#~ "correctos son 's3', 'archivo' o 'ssh'" -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "" +#~ msgid "The server used for SSH connections." +#~ msgstr "El servidor utilizado para conexiones SSH" -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "" +#~ msgid "The user used for SSH connections." +#~ msgstr "El usuario empleado para conexiones SSH" #~ msgid "" -#~ "The protocol used for the backup location. Valid values are 's3' or 'file'." +#~ "The protocol used for the backup location. Valid values are 's3' or " +#~ "'file'." #~ msgstr "" -#~ "El protocolo utilizado para el lugar de respaldo. Valores validos son 's3' o " -#~ "'archivo'." +#~ "El protocolo utilizado para el lugar de respaldo. Valores validos son " +#~ "'s3' o 'archivo'." #~ msgid "Backing up files..." #~ msgstr "Respaldando archivos..." diff -Nru deja-dup-7.4/po/fi.po deja-dup-10.0/po/fi.po --- deja-dup-7.4/po/fi.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/fi.po 2009-06-05 14:52:25.000000000 -0400 @@ -0,0 +1,912 @@ +# Finnish translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-20 20:40+0000\n" +"Last-Translator: papukaija <Unknown>\n" +"Language-Team: Finnish <fi@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "Varmuuskopioi tiedostosi" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "Déjà Dup -varmuuskopiotyökalu" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "Déjà Dup -valvontatyökalu" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "Aseta luomaan varmuuskopio säännöllisesti" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "Amazon S3 avain ID" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" +"Vapaaehtoinen nimi kansiolle johon tiedostot tallennetaan. Tämä kansio " +"luodaan valittuun sijaintiin." + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "Hakemistot joita ei tallenneta" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "Tallennettavat hakemistot" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "Miten usein varmuuskopio luodaan" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "Käytettävän Amazon S3 korin nimi" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "Amazon S3 kansio" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "Milloin Déjà Dupia käytettiin edellisen kerran" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "Milloin Déjà Dupia käytettiin edellisen kerran ISO 8601 formaatissa" + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "Varmuuskopioiden välillä kulunut aika" + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" +"Seuraavan listan hakemistot varmuuskopioidaan. $HOME, $DESKTOP, $DOCUMENTS, " +"$DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, and $VIDEO " +"tunnistetaan käyttäjän erityisinä hakemistoina. Listan muut jäsenet " +"riippuvat käyttäjän kotihakemistosta." + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" +"Seuraavan listan hakemistoja ei varmuuskopioida. $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO tunnistetaan käyttäjän erityisinä hakemistoina. Listan muut " +"jäsenet riippuvat käyttäjän kotihakemistosta. Tämä lista ohittaa " +"mukaanluettujen listan." + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "Varmuuskopioiden sijainnin tyyppi" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "Tehdäänkö varmuuskopio säännöllisesti" + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "Kryptataanko varmuuskopio" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" +"Kryptataanko varmuuskopioidut tiedostot talletuskohteessa. Suositeltavaa." + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "Varmuuskopioidaanko säännöllisesti" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" +"Mihin Amazon S3 koriin tiedostot tallennetaan. Tuon korin ei vielä tarvitse " +"olla olemassa. Vain lailliset nimet ovat päteviä." + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "Amazon S3 avaimen identifioija. Se toimii S3 käyttäjätunnuksenasi." + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "Näytä versio" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "Déjà Dup pienoissovellutus" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "%.1f%% valmiina" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "Varmuuskopiointi alkaa pian" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" +"Ennalta valittu varmuuskopiointi alkaa pian. Voit myös luoda varmuuskopion " +"myöhemmin tai jättää varmuuskopion tekemättä kokonaan." + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "Ohita varmuuskopiointi" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "Luo varmuuskopio myöhemmin" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "Tarvitaan kryptauksen salasana" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "Anna varmuuskopiotiedostojen kryptauksen salasana" + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "Syötä" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "Vaaditaan palvelimen salasana" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "Syötä palvelimen salasana varmuuskopiotasi varten" + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "Varmuuskopionnissa tapahtui virhe" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "Yritä uudelleen" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "Varmuuskopioi _Myöhemmin" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "_Ohita varmuuskopiointi" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "Ei voinut avata preferenssejä" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "Varmuuskopioi" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "_Varmuuskopio sijainti" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "_Kryptaa varmuuskopiotiedostot" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "Varmuuskopion sijainti:" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "Luo varmuuskopiota" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "Varmuuskopiointi epäonnistui" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "Varmuuskopio on valmis" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "Tiedostojesi varmuuskopiointi onnistui" + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "Luo varmuuskopiota..." + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "Yhteenveto" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "Palauta" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "_Päivämäärä:" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "Palauta tiedostot _niiden alkuperäisiin osoitteisiin" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "Palauta _tiettyyn kansioon" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "Valitse kohde palautetuille tiedostoille" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "Palauta _kansio" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "Palauta päivämäärä" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "Palauta kansio:" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "Tarkistaa varmuuskopiot" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "Miten vanhoista tiedoistoista palautus suoritetaan?" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "Minne palautetaan?" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "Palauttaa parhaillaan" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "Ei palautettavia varmuuskopioita" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "Alkuperäinen sijainti" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "Palautettava tiedosto:" +msgstr[1] "Palautettavat tiedostot:" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "Palauttaminen epäonnistui" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "Palautus on suoritettu" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "Tiedostojesi palauttaminen onnistui" + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "Palauttaa parhaillaan..." + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "Palauta valitut tiedostot" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "Tiedostojen nimiä ei ole annettu" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "_Palauta" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "_Varmuuskopio" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "_Tiedosto" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "_Muokkaa" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "_Ohje" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "Hae ohje _Netistä..." + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "Käännä _tämä sovellus..." + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "_Raportoi ongelma" + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "Kansio %s Amazon S3:ssa" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "Amazon S3 salasana" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" +"Anna Amazon Web palveluiden käyttäjätunnus ja avain. Näiden ei tarvitse olla " +"sinun amazon.com käyttäjänimesi ja salasanasi." + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Kotikansio" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Roskakori" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Päivittäin" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Viikottain" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Joka toinen viikko" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Kuukausittain" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Joka %d päivä" +msgstr[1] "%d päivän välein" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "Duplicity:ä ei voitu suorittaa" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" +"Ei kyennyt ymmärtämään Dublicity:n versiota\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" +"Ei kyennyt ymmärtämään Dublicity:n versiota %s\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "Déjà Dup ei toimi ilman Dublicity:ä. Se sulkeutuu nyt." + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "Dublicity:n versio on liian vanha" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" +"Déjà Dup vaatii ainakin version %d.%d.%.2d Duplicity:stä. Vain versio %d.%d." +"%.2d löydettiin." + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "Valmistellaan..." + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "Tehdään jälkitoimenpiteitä..." + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "Epäonnistui tuntemattomasta syystä" + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "Ei voinut palauttaa %s:ää. Tiedostoa ei löytynyt varmuuskopiosta." + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "Virheellinen tunniste." + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "Virheellinen salainen avain" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "Amazon Web Service tiliisi ei kuulu S3 palvelua" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "S3 korin nimi ei ole saatavilla" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "Huono kryptaus salasana" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "Virhe luettaessa tiedostoa '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "Virhe kirjoitettaessa tiedostoa '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "Ei vapaata tilaa jäljellä %s :ssä." + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "Varmuuskopiotiedostoja ei löytynyt" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "Ei voinut näyttää %s" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "Déjà Dupista" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Jussi https://launchpad.net/~jussiphil\n" +"\n" +"Launchpad Contributions:\n" +" Jussi https://launchpad.net/~jussiphil\n" +" Michael Terry https://launchpad.net/~mterry\n" +" papukaija https://launchpad.net/~papukaija" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" +"Tämä ohjelma on vapaa ohjelmisto. Saat levittää ja/tai muokata sitä GNU GPL-" +"lisenssin ehtojen mukaan (Free Software Foundationin julkaisema, joko " +"lisenssin versio 3 tai valitsemasi myöhempi versio)." + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" +"Tätä ohjelmaa levitetään siinä toivossa, että siitä on hyötyä, mutta ILMAN " +"MITÄÄN TAKUUTA; ilman edes taetta MYYNTIKELPOISUUDESTA TAI SOVELTUMISESTA " +"TIETTYYN ERITYISEEN TARKOITUKSEEN. Yksityiskohtien osalta katso GNU:n GPL-" +"lisenssiä." + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Tuntematon" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "_Käyttäjätunnus:" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "Palautetaan tiedostoja..." + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" +"Kaikkia tiedostoja ei voitu palauttaa. Nämä tiedostot voivat löytyä %s:stä." + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "Ei voinut palauttaa %s:%s" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "Etsii varmuuskopioita" + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "Salasana kryptaukseen" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "Anna varmuuskopiotiedostojen kryptaukseen käytetty salasana" + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "Déjà Dup varmuuskopio salalause" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "Toinen Déjà Dup on jo käynnissä" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "Palaa aiempaan versioon..." +msgstr[1] "Palaa aiempiin versioihin" + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "Palauta tiedosto varmuuskopiosta" +msgstr[1] "Palauta tiedostot varmuuskopiosta" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Déjà Dup preferenssit" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "S3 avain I_D" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Kansio:" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "_Varmuuskopioi automaattisesti säännöllisin väliajoin" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "Miten _usein varmuuskopio luodaan:" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Järjestelmäsi kansio varmuuskopioiduille tiedoistoille" + +#~ msgid "Local backup location" +#~ msgstr "Paikallinen sijainti varmuuskopioille" + +#~ msgid "Choose backup destination" +#~ msgstr "Valitse kohde varmuuskopioille" + +#~ msgid "Local Folder" +#~ msgstr "Paikallinen kansio" + +#~ msgid "Select Folder" +#~ msgstr "Valitse kansio" + +#~ msgid "Choose folder" +#~ msgstr "Valitse kansio" + +#~ msgid "Could not add the folder" +#~ msgstr "Ei kyennyt lisäämään kansiota" + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Sinun olisi pitänyt saada kopio GNU GPL-lisenssi tämän ohjelman mukana. " +#~ "Ellet sitä saanut, kirjoita Free Software Foundation, INC.:lle, 59 Temple " +#~ "Place - Suite 330, Boston, MA 02111-1307, USA." + +#~ msgid "I_nclude:" +#~ msgstr "S_alli:" + +#~ msgid "E_xclude:" +#~ msgstr "E_stä:" + +#~ msgid "SSH directory" +#~ msgstr "SSH valikko" + +#~ msgid "SSH port" +#~ msgstr "SSH portti" + +#~ msgid "SSH server" +#~ msgstr "SSH palvelin" + +#~ msgid "SSH username" +#~ msgstr "SSH käyttäjänimi" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "SSH yhteyksiin käytettävä hakemisto" + +#~ msgid "The port used for SSH connections." +#~ msgstr "SSH yhteyksiin käytetty portti" + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Varmuuskopion sijaintiin käytetty protokolla. Joko 'S3', 'kansio', tai " +#~ "'SSH'" + +#~ msgid "The server used for SSH connections." +#~ msgstr "SSH yhteyksiin käytetty palvelin" + +#~ msgid "The user used for SSH connections." +#~ msgstr "SSH yhteyksissä käytetty käyttäjänimi" + +#~ msgid "No username specified" +#~ msgstr "Käyttäjätunnusta ei ole määritelty" + +#~ msgid "No server specified" +#~ msgstr "Palvelinta ei ole määritelty" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s ssh//%s@%s:%d:ssa" + +#~ msgid "SSH Password" +#~ msgstr "SSH salasana" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Anna SSH käyttäjätunnuksesi ja salasanasi serverille %s." + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "%s is already in the list." +#~ msgstr "%s on jo listalle" + +#~ msgid "_Server:" +#~ msgstr "_Palvelin:" + +#~ msgid "_Port:" +#~ msgstr "_Portti:" + +#~ msgid "Contents" +#~ msgstr "Sisältö" + +#~ msgid "deja-dup" +#~ msgstr "DEJA-DUP" + +#~ msgid "%DATE%" +#~ msgstr "%DATE%" + +#~ msgid "USER COMMANDS" +#~ msgstr "KÄYTTÄJÄN KOMENNOT" + +#~ msgid "NAME" +#~ msgstr "NIMI" + +#~ msgid "deja-dup - backup your data" +#~ msgstr "deja-dub - varmuuskopioi datasi" diff -Nru deja-dup-7.4/po/fr.po deja-dup-10.0/po/fr.po --- deja-dup-7.4/po/fr.po 2009-02-11 21:04:34.000000000 -0500 +++ deja-dup-10.0/po/fr.po 2009-06-05 14:52:25.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-02-02 20:47-0500\n" -"PO-Revision-Date: 2009-02-11 23:45+0000\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-06-02 17:07+0000\n" "Last-Translator: Mathieu Divaret <Unknown>\n" "Language-Team: French <fr@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2009-02-12 01:56+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "Superviseur Déjà Dup" @@ -39,87 +39,64 @@ msgstr "Planifier des sauvegardes à intervalles réguliers" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" -msgstr "Clé d'identification Amazon S3" +msgid "Amazon S3 Access Key ID" +msgstr "Access Key ID d'Amazon S3" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" -msgstr "Dossiers à ne pas sauvegarder" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" +"Un nom de répertoire optionnel où y enregistrer des fichiers. Ce répertoire " +"sera créé dans le bucket choisi." #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" -msgstr "Dossiers à sauvegarder" +msgid "Backup location" +msgstr "Emplacement de sauvegarde" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "" -"Dossier sur votre système dans lequel conserver les fichiers sauvegardés." +msgid "Directories not to backup" +msgstr "Dossiers à ne pas sauvegarder" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "Périodicité des sauvegardes ?" +msgid "Directories to backup" +msgstr "Dossiers à sauvegarder" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "Emplacement local des sauvegardes" +msgid "How often to periodically backup" +msgstr "Périodicité des sauvegardes ?" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "Dossier SSH" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "Port SSH" +msgid "The Amazon S3 bucket name to use" +msgstr "Le nom du bucket d'Amazon S3 à utiliser" #: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "Serveur SSH" +msgid "The Amazon S3 folder" +msgstr "Le dossier Amazon S3" #: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "Nom d'utilisateur SSH" - -#: ../data/deja-dup.schemas.in.h:11 -msgid "The Amazon S3 bucket name to use" -msgstr "" - -#: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "Le dossier utilisé pour les connections SSH." - -#: ../data/deja-dup.schemas.in.h:13 msgid "The last time Déjà Dup was run" msgstr "Le dernier lancement de Déjà Dup" -#: ../data/deja-dup.schemas.in.h:14 +#: ../data/deja-dup.schemas.in.h:11 msgid "The last time Déjà Dup was run, in ISO 8601 format." msgstr "Le dernier lancement de Déjà Dup, au format ISO 8601" -#: ../data/deja-dup.schemas.in.h:15 +#: ../data/deja-dup.schemas.in.h:12 msgid "The number of days between backups." msgstr "Le nombre de jours entre les sauvegardes." -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "Le port utilisé pour les connections SSH." - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" -"Le protocole utilisé pour le dossier de sauvegarde. Les valeurs possibles " -"sont 's3', 'fichier', ou 'ssh'," - -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "Le serveur utilisé pour les connections SSH." +"Le type d(emplacement de sauvegarde. Les valeurs valides sont 's3' ou " +"'fichier'." -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "Le nom d'utilisateur utilisé pour les connections SSH." - -#: ../data/deja-dup.schemas.in.h:20 +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -132,7 +109,7 @@ "l'utilisateur. Les entrées relatives sont associées au dossier personnel de " "l'utilisateur." -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -147,19 +124,19 @@ "personnel de l'utilisateur. Cette liste prend le pas sur la liste des " "dossiers inclus." -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "Type de destination pour enregistrer la sauvegarde" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "Si il faut faire des sauvegardes automatiques régulières." -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "Si il faut chiffrer votre sauvegarde" -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." @@ -167,42 +144,45 @@ "Si il faut chiffrer les fichiers de sauvegarde sur l'emplacement de " "stockage. Il est fortement recommandé de laisser cette valeur à 'vrai'." -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" msgstr "Si il faut sauvegarder périodiquement" -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." msgstr "" +"Quel bucket d'Amazon S3 pour y enregistrer les fichiers. Il n'a pas besoin " +"de déjà exister. Seulement un nom de réseau légal est valide." -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." msgstr "" -"Votre clé d'identification Amazon S3. Elle agit en tant que nom " -"d'utilisateur S3." +"Votre identifiant Access Key d'Amazon S3. Il joue le rôle de votre compte " +"utilisateur S3." -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" msgstr "Afficher la version" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" msgstr "Applet Déjà Dup" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" msgstr "%.1f%% accompli" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "La sauvegarde va débuter" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." @@ -210,175 +190,223 @@ "Une sauvegarde planifiée va bientôt commencer. Vous pouvez choisir de " "sauvegarder plus tard ou non." -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "Passer la sauvegarde" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" msgstr "Sauvegarder plus tard" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "Mot de passe de chiffrement nécessaire" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "" "Veuillez entrer le mot de passe de chiffrement pour vos fichiers de " "sauvegarde." -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "Valider" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" msgstr "Mot de passe du serveur nécessaire" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." msgstr "Veuillez saisir le mot de passe du serveur pour votre sauvegarde." -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" msgstr "Une erreur est survenue durant la sauvegarde" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" msgstr "Relancer" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" msgstr "Sauvegarder P_lus tard" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "Pa_sser la sauvegarde" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" msgstr "Impossible d'ouvrir les préférences" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" msgstr "Sauvegarder" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "_Emplacement de la sauvegarde:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "_Chiffrement des fichiers sauvegardés" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "I_nclure les fichiers dans les dossiers:" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "E_xclure es fichiers dans les dossiers:" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "Préférences" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" msgstr "Emplacement de la sauvegarde:" +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "Chiffré:" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "Inclure à partir de:" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "Excepté pour:" + #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "Sauvegarde de" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "Inconnu" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" msgstr "La sauvegarde a échouée" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" msgstr "La sauvegarde est finie" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "Vos fichiers ont été sauvegardés avec succès." -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "Sauvegarde en cours..." -#: ../deja-dup/AssistantOperation.vala:173 +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "_Détails" + +#: .././po/../deja-dup/AssistantOperation.vala:234 msgid "Summary" -msgstr "Sommaire" +msgstr "Résumé" -#: ../deja-dup/AssistantRestore.vala:71 +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" msgstr "Restaurer" -#: ../deja-dup/AssistantRestore.vala:101 +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "Les fichiers de sauvegarde sont _chiffrés" + +#: .././po/../deja-dup/AssistantRestore.vala:138 msgid "_Date:" msgstr "_Date:" -#: ../deja-dup/AssistantRestore.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" msgstr "Restaurer les fichiers dans les localisations _originales" -#: ../deja-dup/AssistantRestore.vala:129 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" msgstr "Restaurer vers un dossier _spécifique" -#: ../deja-dup/AssistantRestore.vala:139 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" msgstr "Choisissez une destination pour les fichiers restaurés" -#: ../deja-dup/AssistantRestore.vala:143 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" msgstr "Restaurer le _dossier:" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:227 msgid "Restore date:" msgstr "Restaurer la date:" -#: ../deja-dup/AssistantRestore.vala:181 +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" msgstr "Restaurer le dossier:" -#: ../deja-dup/AssistantRestore.vala:222 +#: .././po/../deja-dup/AssistantRestore.vala:261 msgid "Checking for Backups" msgstr "Vérification de la présence de sauvegarde" -#: ../deja-dup/AssistantRestore.vala:233 +#: .././po/../deja-dup/AssistantRestore.vala:272 msgid "Restore from When?" msgstr "Restaurer à partir de quelle date?" -#: ../deja-dup/AssistantRestore.vala:244 +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" msgstr "Restaurer à partir de quel dossier?" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" msgstr "Restauration de" -#: ../deja-dup/AssistantRestore.vala:302 +#: .././po/../deja-dup/AssistantRestore.vala:340 msgid "No backups to restore" msgstr "Aucune sauvegarde disponible pour la restauration." -#: ../deja-dup/AssistantRestore.vala:404 +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" msgstr "Localisation originale" -#: ../deja-dup/AssistantRestore.vala:417 +#: .././po/../deja-dup/AssistantRestore.vala:447 msgid "File to restore:" msgid_plural "Files to restore:" msgstr[0] "Fichier à restaurer:" msgstr[1] "Fichiers à restaurer:" -#: ../deja-dup/AssistantRestore.vala:439 +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" msgstr "La restauration a échouée" -#: ../deja-dup/AssistantRestore.vala:441 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" msgstr "La restauration est finie" -#: ../deja-dup/AssistantRestore.vala:442 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." msgstr "Vos fichiers ont été restaurés avec succès." -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." msgstr "Restauration en cours..." -#: ../deja-dup/main.vala:31 +#: .././po/../deja-dup/main.vala:31 msgid "Restore given files" msgstr "Restauration des fichiers sélectionnés" @@ -387,65 +415,68 @@ #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" msgstr "Déjà Dup" -#: ../deja-dup/main.vala:47 +#: .././po/../deja-dup/main.vala:47 msgid "No filenames provided" msgstr "Aucun nom de fichier donné" -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 msgid "_Restore" msgstr "_Restaurer" -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "_Sauvegarder" -#: ../deja-dup/MainWindow.vala:184 +#: .././po/../deja-dup/MainWindow.vala:176 msgid "_File" msgstr "_Fichier" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "_Édition" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "_Aide" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" -msgstr "Sommaire" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "A_ide en ligne..." -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "_Traduire cette application…" -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "_Rapporter un problème..." -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" -msgstr "Choisissez la destination de la sauvegarde" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" -msgstr "" +msgid "Folder %s on Amazon S3" +msgstr "Dossier %s sur Amazon S3" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "Mot de passe Amazon S3" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." @@ -454,35 +485,74 @@ "Amazon. Ce ne sont pas les mêmes que le nom d'utilisateur et le mot de passe " "d' amazon.com." -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" -msgstr "Pas de nom d'utilisateur spécifié" - -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" -msgstr "Pas de serveur spécifié" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" -msgstr "%s dans ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" -msgstr "Mot de passe SSH" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "Oui" -#: ../libdeja-dup/BackendSSH.vala:157 -#, c-format -msgid "Enter your SSH username and password for server %s." +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "Non" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Dossier personnel" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Corbeille" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "Choisissez les dossiers" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" msgstr "" -"Entrer votre nom d'utilisateur SSH et le mot de passe pour le serveur %s." -#: ../libdeja-dup/DuplicityInfo.vala:117 +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Tous les jours" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Toutes les semaines" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Toutes les deux semaines" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Tous les mois" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Chaque %d jour" +msgstr[1] "Tous les %d jours" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 msgid "Could not run duplicity" msgstr "Impossible de lancer duplicity" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" @@ -490,7 +560,7 @@ "Ne peut pas interpréter la version de duplicity.\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" @@ -499,17 +569,17 @@ "Ne peut pas interpréter la version de duplicity '%s'.\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "" "Sans duplicity, Déjà Dup ne peut fonctionner. Le programme va maintenant se " "terminer." -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "La version de Duplicity est trop ancienne" -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " @@ -518,46 +588,76 @@ "Déjà Dup nécessite au moins la version %d.%d.%.2d de duplicity, mais a " "seulement trouvé la version %d.%d.%.2d" -#: ../libdeja-dup/Duplicity.vala:120 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 msgid "Preparing..." msgstr "Préparation en cours..." -#: ../libdeja-dup/Duplicity.vala:170 +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." msgstr "Nettoyage en cours..." -#: ../libdeja-dup/Duplicity.vala:215 +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 msgid "Failed with an unknown error." msgstr "Échec dû à une erreur inconnue." -#: ../libdeja-dup/Duplicity.vala:287 +#: .././po/../libdeja-dup/Duplicity.vala:341 #, c-format msgid "Could not restore '%s': File not found in backup" msgstr "" "Ne peut pas restaurer '%s': le fichier n'a pas été trouvé dans la sauvegarde" -#: ../libdeja-dup/Duplicity.vala:301 -msgid "Invalid ID" -msgstr "Identifiant non valide" - -#: ../libdeja-dup/Duplicity.vala:303 -msgid "Invalid secret key" -msgstr "Clé secrète invalide" +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "Identifiant invalide." -#: ../libdeja-dup/Duplicity.vala:320 +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "Clé secrète invalide." + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" +"Votre compte Amazon Web Services n'est pas enregistré pour le service S3." + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "Le nom du bucket S3 n'est pas disponible." + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "Mauvais mot de passe pour le chiffrage" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "Erreur en lisant le fichier '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "Erreur en écrivant le fichier '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "Plus de place dans '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:407 msgid "No backup files found" msgstr "Aucun fichier de sauvegarde n'a été trouvé" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/libdeja-dup.vala:95 #, c-format msgid "Could not display %s" msgstr "Impossible d'afficher %s" -#: ../libdeja-dup/libdeja-dup.vala:130 +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "À propos de Déjà Dup" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" @@ -573,9 +673,36 @@ " Arnaud Bonatti https://launchpad.net/~arnaud.bonatti\n" " Johan Serre https://launchpad.net/~serre-johan\n" " Mathieu Divaret https://launchpad.net/~joots\n" +" Michael Terry https://launchpad.net/~mterry\n" +"\n" +"Launchpad Contributions:\n" +" Anthony Guéchoum https://launchpad.net/~athael\n" +" Arnaud Bonatti https://launchpad.net/~arnaud.bonatti\n" +" Guillaume Lanquepin https://launchpad.net/~guyomel\n" +" Huygens https://launchpad.net/~huygens-25\n" +" Johan Serre https://launchpad.net/~serre-johan\n" +" Mathieu Divaret https://launchpad.net/~joots\n" +" Michael Terry https://launchpad.net/~mterry\n" +"\n" +"Launchpad Contributions:\n" +" Anthony Guéchoum https://launchpad.net/~athael\n" +" Arnaud Bonatti https://launchpad.net/~arnaud.bonatti\n" +" Guillaume Lanquepin https://launchpad.net/~guyomel\n" +" Huygens https://launchpad.net/~huygens-25\n" +" Johan Serre https://launchpad.net/~serre-johan\n" +" Mathieu Divaret https://launchpad.net/~joots\n" +" Michael Terry https://launchpad.net/~mterry\n" +"\n" +"Launchpad Contributions:\n" +" Anthony Guéchoum https://launchpad.net/~athael\n" +" Arnaud Bonatti https://launchpad.net/~arnaud.bonatti\n" +" Guillaume Lanquepin https://launchpad.net/~guyomel\n" +" Huygens https://launchpad.net/~huygens-25\n" +" Johan Serre https://launchpad.net/~serre-johan\n" +" Mathieu Divaret https://launchpad.net/~joots\n" " Michael Terry https://launchpad.net/~mterry" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -588,7 +715,7 @@ "Software Foundation dans sa version 3 ou, si vous le souhaitez, selon une " "version plus récente." -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -600,218 +727,770 @@ "d'ADAPTATION POUR UN USAGE PARTICULIER. Pour plus de détails, lisez la " "Licence Publique Générale de GNU." -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Inconnu" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" msgstr "" -"Vous avez dû recevoir une copie de la Licence Publique Générale GNU avec ce " -"programme. Si ce n'était pas le cas, écrivez à « Free Software Foundation, " -"Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA »." -#: ../libdeja-dup/OperationRestore.vala:59 +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "Nom d'_utilisateur:" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 msgid "Restoring files..." msgstr "Restauration des fichiers..." -#: ../libdeja-dup/OperationRestore.vala:169 +#: .././po/../libdeja-dup/OperationRestore.vala:172 #, c-format msgid "" "Not all files could be restored. Any files that could not be restored may " "still be found in %s." msgstr "" -"Certains fichiers ne pourront être restaurés. Les fichiers qui ne pourront " -"être restaurés pourront toujours être trouvés dans %s." +"Certains fichiers n'ont pas pu être restaurés. Chaque fichier non restauré " +"peut encore être trouvé dans %s." -#: ../libdeja-dup/OperationRestore.vala:178 +#: .././po/../libdeja-dup/OperationRestore.vala:181 #, c-format msgid "Could not restore %s: %s" msgstr "Ne peut pas restaurer %s: %s" -#: ../libdeja-dup/Operation.vala:53 +#: .././po/../libdeja-dup/Operation.vala:53 msgid "Checking for backups..." msgstr "Vérification de la présence de sauvegarde..." #. Ask user -#: ../libdeja-dup/Operation.vala:199 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "Mot de Passe de chiffrement" -#: ../libdeja-dup/Operation.vala:200 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." -msgstr "" -"Entrez le mot de passe utilisé pour chiffrer vos fichiers sauvegardés." +msgstr "Entrez le mot de passe utilisé pour chiffrer vos fichiers sauvegardés." -#: ../libdeja-dup/Operation.vala:219 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "Phrase secrète de la sauvegarde Déjà Dup" -#: ../libdeja-dup/Operation.vala:237 +#: .././po/../libdeja-dup/Operation.vala:255 msgid "Another Déjà Dup is already running" msgstr "Une autre instance de Déjà Dup est déjà en cours" -#: ../nautilus/NautilusExtension.c:95 +#: .././po/../nautilus/NautilusExtension.c:95 msgid "Revert to Previous Version..." msgid_plural "Revert to Previous Versions..." msgstr[0] "Revenir à la version précédente..." msgstr[1] "Revenir aux versions précédentes..." -#: ../nautilus/NautilusExtension.c:99 +#: .././po/../nautilus/NautilusExtension.c:99 msgid "Restore file from backup" msgid_plural "Restore files from backup" msgstr[0] "Restaurer le fichier de la sauvegarde" msgstr[1] "Restaurer les fichiers de la sauvegarde" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "Amazon S3" +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Préférences de Déjà Dup" -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "Dossier local" - -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" -msgstr "SSH" - -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "Sélectionner un dossier" +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "L'Access Key I_D de S3 :" -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" -msgstr "Dossier personnel" +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Dossier:" -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "Corbeille" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "_Sauvegarder automatiquement selon une planification régulière" -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "Choisir un dossier" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "_Fréquence des sauvegardes:" -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "Impossible d'ajouter le dossier" +#~ msgid "deja-dup" +#~ msgstr "deja-dup" -#: ../preferences/ConfigList.vala:164 -#, c-format -msgid "%s is already in the list." -msgstr "%s est déjà dans la liste." +#~ msgid "%DATE%" +#~ msgstr "%DATE%" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" -msgstr "Tous les jours" +#~ msgid "USER COMMANDS" +#~ msgstr "COMMANDES DE L' UTILISATEUR" -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" -msgstr "Toutes les semaines" +#~ msgid "NAME" +#~ msgstr "NOM" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "Toutes les deux semaines" +#~ msgid "deja-dup - backup your data" +#~ msgstr "dejo-dup - sauvegarder vos données" -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "Tous les mois" +#~ msgid "SYNOPSIS" +#~ msgstr "SYNOPSIS" -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "Chaque %d jour" -msgstr[1] "Tous les %d jours" +#~ msgid "B<deja-dup> [OPTIONS]" +#~ msgstr "B<deja-dup> [OPTIONS]" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "Préférences de Déjà Dup" +#~ msgid "B<deja-dup> --restore [FILES]" +#~ msgstr "B<deja-dup> --restaurer [FICHIERS]" -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "_Emplacement de la sauvegarde:" +#~ msgid "DESCRIPTION" +#~ msgstr "DESCRIPTION" -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "" +#~ msgid "OPTIONS" +#~ msgstr "OPTIONS" -#: ../preferences/PreferencesDialog.vala:91 -#, c-format -msgid "S3 I_D:" -msgstr "S3 I_D" +#~ msgid "-?, --help" +#~ msgstr "-?, --help" -#: ../preferences/PreferencesDialog.vala:110 -#, c-format -msgid "_Folder:" -msgstr "_Dossier:" +#~ msgid "Display usage information" +#~ msgstr "Afficher les informations d'utilisation" -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "Nom d'_utilisateur:" +#~ msgid "--version" +#~ msgstr "--version" -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "_Serveur" +#~ msgid "Prints program name and version" +#~ msgstr "indiquer le nom du programme et la version" -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "_Port:" +#~ msgid "--restore" +#~ msgstr "--restore" -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "_Dossier :" +#~ msgid "Restores only the specified files" +#~ msgstr "Restaurer seulement les fichiers spécifiés" -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "I_nclus :" +#~ msgid "ENVIRONMENT" +#~ msgstr "ENVIRONNEMENT" -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "E_xclus" +#~ msgid "DEJA_DUP_DEBUG" +#~ msgstr "DEJA_DUP_DEBUG" -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "_Chiffrement des fichiers sauvegardés" +#~ msgid "Set to 1 to enable more verbose output. Helpful for debugging." +#~ msgstr "" +#~ "Placez le à 1 pour activer une sortie plus parlante. Peut aider pour " +#~ "trouver les bugs." -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "_Sauvegarder automatiquement selon une planification régulière" +#~ msgid "SEE ALSO" +#~ msgstr "VOIR AUSSI" -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "_Fréquence des sauvegardes:" +#~ msgid "B<duplicity>(1)" +#~ msgstr "B<duplicity>(1)" + +#~ msgid "deja-dup-applet" +#~ msgstr "applet deja-dup" + +#~ msgid "deja-dup-applet - backup your data" +#~ msgstr "applet deja-dup - sauvegarder vos données" + +#~ msgid "B<deja-dup-applet> [OPTIONS]" +#~ msgstr "B<applet deja-dup> [OPTIONS]" #~ msgid "" -#~ "The protocol used for the backup location. Valid values are 's3' or 'file'." +#~ "deja-dup-applet is a notification applet that carries out a scheuduled " +#~ "backup. It is usually started automatically by B<deja-dup-monitor>(1)." #~ msgstr "" -#~ "Le protocole utilisé pour l'emplacement de de la sauvegarde. Les valeurs " -#~ "possibles sont 's3' ou 'fichier'." +#~ "applet deja-dup est un applet de notification qui s'occupe des " +#~ "sauvegardes planifiées. Il se lance automatiquement avec B<superviseur " +#~ "deja-dup>(1)." -#~ msgid "Backing up files..." -#~ msgstr "Restauration..." +#~ msgid "B<deja-dup>(1), B<deja-dup-monitor>(1)" +#~ msgstr "B<deja-dup>(1), B<superviseur deja-dup>(1)" -#~ msgid "Could not connect to backup location" -#~ msgstr "Impossible de se connecter à l'emplacement de la sauvegarde" +#~ msgid "deja-dup-monitor" +#~ msgstr "superviseur deja-dup" -#~ msgid "Error occurred" -#~ msgstr "Une erreur est survenue" +#~ msgid "deja-dup-monitor - backup your data" +#~ msgstr "superviseur deja-dup - sauvegarder vos données" -#~ msgid "Backup finished" -#~ msgstr "Sauvegarde terminée" +#~ msgid "B<deja-dup-monitor> [OPTIONS]" +#~ msgstr "B<superviseur deja-dup> [OPTIONS]" -#~ msgid "Restore finished" -#~ msgstr "Restauration terminée" +#~ msgid "" +#~ "deja-dup-monitor is a session daemon that handles scheduled backups. It " +#~ "is started by default whenever a user logs in. When a scheduled backup " +#~ "is due, it starts B<deja-dup-applet>(1)." +#~ msgstr "" +#~ "Le superviseur deja-dup est un démon de session qui gère les sauvegardes " +#~ "planifiées. Il se lance par défaut quand un utilisateur se connecte. " +#~ "Quand une sauvegarde planifié doit être faite, il lance B<deja-dup-applet>" +#~ "(1)" -#~ msgid "Couldn't understand duplicity version" -#~ msgstr "Impossible d'identifier la version de duplicity" +#~ msgid "B<deja-dup>(1), B<deja-dup-applet>(1)" +#~ msgstr "B<deja-dup>(1), B<applet deja-dup>(1)" -#, c-format -#~ msgid "Couldn't understand duplicity version '%s'" -#~ msgstr "Impossible d'identifier la version '%s' de duplicity" +#~ msgid "deja-dup-preferences" +#~ msgstr "préférences de deja-dup" + +#~ msgid "deja-dup-preferences - backup your data" +#~ msgstr "préférences de deja-dup - sauvegarder vos données" + +#~ msgid "B<deja-dup-preferences> [OPTIONS]" +#~ msgstr "B<préférences de deja-dup> [OPTIONS]" + +#~ msgid "deja-dup-preferences is the preferences dialog for B<deja-dup>(1)." +#~ msgstr "" +#~ "préférences de deja-dup est la boite de dialogue pour les préférences de " +#~ "B<deja-dup>(1)." + +#~ msgid "B<deja-dup>(1)" +#~ msgstr "B<deja-dup>(1)" + +#~ msgid "C" +#~ msgstr "C" + +#~ msgid "<application>Déjà Dup</application> Manual" +#~ msgstr "Manuel de <application>Déjà Dup</application>" + +#~ msgid "<application>Déjà Dup</application> is a simple backup utility." +#~ msgstr "" +#~ "<application>Déjà Dup</application> est un utilitaire de sauvegarde " +#~ "simplifié." + +#~ msgid "Michael" +#~ msgstr "Michael" + +#~ msgid "Terry" +#~ msgstr "Terry" + +#~ msgid " <email>mike@mterry.name</email> " +#~ msgstr " <email>mike@mterry.name</email> " + +#~ msgid "%VERSION%" +#~ msgstr "%VERSION%" + +#~ msgid "Michael Terry <email>mike@mterry.name</email>" +#~ msgstr "Michael Terry <email>mike@mterry.name</email>" + +#~ msgid "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +#~ "\"><application>Déjà Dup</application> Administrators</ulink>" +#~ msgstr "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http\">Les " +#~ "administrateurs de<application>Déjà Dup</application> </ulink>" + +#~ msgid "This manual describes version %VERSION% of Déjà Dup." +#~ msgstr "Ce manuel décrit la version %VERSION% de Déja Dup." + +#~ msgid "Feedback" +#~ msgstr "Retour des utilisateurs" + +#~ msgid "" +#~ "To report a bug or make a suggestion regarding the <application>Déjà Dup</" +#~ "application> application or this manual, visit the <ulink url=\"http://" +#~ "bugs.launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</" +#~ "application> project page</ulink>." +#~ msgstr "" +#~ "Pour rapporter un bug ou faire une suggestion concernant l'application " +#~ "<application>Déjà Dup</application> ou ce manuel, visitez la <ulink url=" +#~ "\"http://bugs.launchpad.net/deja-dup\" type=\"http\">page du " +#~ "projet<application>Déjà Dup</application></ulink>." + +#~ msgid "Introduction" +#~ msgstr "Introduction" + +#~ msgid "" +#~ "<application>Déjà Dup</application> is a simple backup program. It hides " +#~ "the complexity of doing backups the 'right way' (encrypted, off-site, and " +#~ "regular) and uses duplicity as the backend." +#~ msgstr "" +#~ "<application>Déjà Dup</application> est un programme simplifié de " +#~ "sauvegarde. Il fait disparaitre la complexité de faire des sauvegardes de " +#~ "\"la bonne manière\" (chiffrement, hors-ligne, et régulièrement) et " +#~ "utilise duplicity comme base." + +#~ msgid "<application>Déjà Dup</application> provides the following features:" +#~ msgstr "" +#~ "<application>Déjà Dup</application> apporte les caractéristiques " +#~ "suivantes:" + +#~ msgid "Support for local or remote backup locations, including Amazon S3" +#~ msgstr "" +#~ "Supporte un emplacement de sauvegarde local ou en ligne, incluant Amazon " +#~ "S3" + +#~ msgid "Securely encrypts and compresses your data." +#~ msgstr "Chiffrer et compresser vos données en toute sécurité." + +#~ msgid "" +#~ "Incrementally backs up, letting you restore from any particular backup." +#~ msgstr "" +#~ "Sauvegarder par incrémentation, en vous permettant de restaurer n'importe " +#~ "quelle sauvegarde." + +#~ msgid "Schedules regular backups." +#~ msgstr "Planifier des sauvegardes régulières." + +#~ msgid "Integrates well into your GNOME desktop." +#~ msgstr "S' intégrer au mieux dans votre environement GNOME." + +#~ msgid "Getting Started" +#~ msgstr "Pour commencer" + +#~ msgid "Starting <application>Déjà Dup</application>" +#~ msgstr "Démarrer <application>Déjà Dup</application>" + +#~ msgid "" +#~ "You can start <application>Déjà Dup</application> in the following ways:" +#~ msgstr "" +#~ "Vous pouvez démarrer <application>Déjà Dup</application> de ces " +#~ "différentes manières:" + +#~ msgid "<guimenu>Applications</guimenu> menu" +#~ msgstr "Menu <guimenu>Applications</guimenu>" + +#~ msgid "" +#~ "Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà " +#~ "Dup Backup Utility</guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Choisissez <menuchoice><guisubmenu>Accessoires</" +#~ "guisubmenu><guimenuitem>Utilitaire de sauvegarde Déjà Dup</guimenuitem></" +#~ "menuchoice>." + +#~ msgid "Command line" +#~ msgstr "Ligne de commande" + +#~ msgid "" +#~ "To start <application>Déjà Dup</application> from a command line, type " +#~ "the following command, then press <keycap>Return</keycap>:" +#~ msgstr "" +#~ "Pour démarrer <application>Déjà Dup</application> en ligne de commande, " +#~ "tapez la commande suivante, puis appuyez sur <keycap>Entrée</keycap>:" + +#~ msgid "<command>deja-dup</command>" +#~ msgstr "<command>deja-dup</command>" + +#~ msgid "Backing Up" +#~ msgstr "Sauvegarder" + +#~ msgid "" +#~ "To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +#~ "guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> " +#~ "button on the main window." +#~ msgstr "" +#~ "Pour sauvegarder, choisissez <menuchoice><guimenu>Fichier</" +#~ "guimenu><guimenuitem>Sauvegarder</guimenuitem></menuchoice>. Ou appuyez " +#~ "sur le bouton <guibutton>Sauvegarder</guibutton> de la fenêtre principale." + +#~ msgid "" +#~ "To restore, choose <menuchoice><guimenu>File</" +#~ "guimenu><guimenuitem>Restore</guimenuitem></menuchoice>. Or press the " +#~ "<guibutton>Restore</guibutton> button on the main window." +#~ msgstr "" +#~ "Pour restaurer, choisissez <menuchoice><guimenu>Fichier</" +#~ "guimenu><guimenuitem>Restaurer</guimenuitem></menuchoice>. Ou appuyez sur " +#~ "le bouton <guibutton>Restaurer</guibutton> de la fenêtre principale." + +#~ msgid "" +#~ "To configure <application>Déjà Dup</application>, choose " +#~ "<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Pour configurer <application>Déjà Dup</application>, choisissez " +#~ "<menuchoice><guimenu>Édition</guimenu><guimenuitem>Préférences</" +#~ "guimenuitem></menuchoice>" + +#~ msgid "<guilabel>Backup location</guilabel>" +#~ msgstr "<guilabel>Emplacement de la sauvegarde</guilabel>" + +#~ msgid "<guilabel>Amazon S3</guilabel>" +#~ msgstr "<guilabel>Amazon S3</guilabel>" + +#~ msgid "" +#~ "This service costs money. Read their rates carefully before using it." +#~ msgstr "" +#~ "Ce service est payant. Lisez attentivement leur tarif avant de l'utiliser." + +#~ msgid "Connected Servers" +#~ msgstr "Serveurs connectés" + +#~ msgid "Local Folders" +#~ msgstr "Dossiers locaux" + +#~ msgid "Default: <guilabel>Amazon S3</guilabel>." +#~ msgstr "Par défaut: <guilabel>Amazon S3</guilabel>." + +#~ msgid "<guilabel>S3 Access Key ID</guilabel>" +#~ msgstr "<guilabel>S3 Access Key ID</guilabel>" + +#~ msgid "" +#~ "This option only appears if the <guilabel>Amazon S3</guilabel> backup " +#~ "location has been selected." +#~ msgstr "" +#~ "Cette option apparait seulement si l'emplacement de sauvegarde " +#~ "<guilabel>Amazon S3> a été sélectionné." + +#~ msgid "<guilabel>Folder</guilabel>" +#~ msgstr "<guilabel>Dossier</guilabel>" + +#~ msgid "" +#~ "If you have multiple backups, you may want to keep them separated in " +#~ "multiple folders. Use this option to enter a path on the S3 service in " +#~ "which to put your files." +#~ msgstr "" +#~ "Si vous avez plusieurs sauvegardes, vous pouvoir vouloir les garder " +#~ "séparé dans des dossiers différents. UItilisez cette option pour entrer " +#~ "un emplacement sur le service S3 où placer vos fichiers." + +#~ msgid "<guilabel>Include files in folders</guilabel>" +#~ msgstr "<guilabel>Inclure les fichiers dans les dossiers</guilabel>" + +#~ msgid "" +#~ "Select a list of directories to backup. Press the <guibutton>Add</" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "If you are only interested in backing up your own data, the default of " +#~ "<guilabel>Home Folder</guilabel> is sufficient." +#~ msgstr "" +#~ "Choisissez une liste de dossiers à sauvegarder. Appuyez sur les boutons " +#~ "<guibutton>Ajouter</guibutton> ou <guibutton>Enlever</guibutton> pour " +#~ "modifier la liste. Si vous êtes seulement intéressé par une sauvegarde de " +#~ "vos propres données, laisser par défaut <guilabel>Dossier Personnel</" +#~ "guilabel> sera suffisant." + +#~ msgid "<guilabel>Except files in folders</guilabel>" +#~ msgstr "<guilabel>Exclurer les fichiers dans les dossiers</guilabel>" + +#~ msgid "" +#~ "Select a list of directories to not backup. Press the <guibutton>Add </" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "This list takes precedence over the list of included directories." +#~ msgstr "" +#~ "Choisissez une liste de dossiers à ne pas sauvegarder. Appuyez sur les " +#~ "boutons <guibutton>Ajouter</guibutton> ou <guibutton>Enlever</guibutton> " +#~ "pour modifier la liste. Cette liste est prioritaire devant la liste de " +#~ "dossiers inclus." + +#~ msgid "" +#~ "Some of your data may be large and not very important to you. In that " +#~ "case, you can save yourself some time and space by not backing them up." +#~ msgstr "" +#~ "Certaines de vos données peuvent être lourdes en poids et ne pas être " +#~ "importantes pour vous. Dans ce cas, vous pouvez gagner du temps et de la " +#~ "place en ne les sauvegardant pas." + +#~ msgid "" +#~ "There are some locations that <application>Déjà Dup</application> " +#~ "excludes by default:" +#~ msgstr "" +#~ "Il y a certains emplacements que <application>Déjà Dup</application> " +#~ "exclus par défaut:" + +#~ msgid "~/.cache" +#~ msgstr "~/.cache" + +#~ msgid "~/.thumbnails" +#~ msgstr "~/.thumbnails" + +#~ msgid "~/.gvfs" +#~ msgstr "~/.gvfs" + +#~ msgid "~/.xsession-errors" +#~ msgstr "~/.xsession-errors" + +#~ msgid "~/.recently-used.xbel" +#~ msgstr "~/.recently-used.xbel" + +#~ msgid "~/.recent-applications.xbel" +#~ msgstr "~/.recent-applications.xbel" + +#~ msgid "~/.Private" +#~ msgstr "~/.Private" + +#~ msgid "/proc" +#~ msgstr "/proc" + +#~ msgid "/tmp" +#~ msgstr "/tmp" + +#~ msgid "/sys" +#~ msgstr "/sys" + +#~ msgid "<guilabel>Encrypt backup files</guilabel>" +#~ msgstr "<guilabel>Chiffrement des fichiers sauvegardés</guilabel>" + +#~ msgid "" +#~ "Encrypting your backup files is recommended to keep your data safe. If " +#~ "you don't have exclusive physical control of your backup location, or if " +#~ "it is stolen, an encrypted backup prevents others from looking at your " +#~ "personal data." +#~ msgstr "" +#~ "Chiffrer vos fichiers de sauvegarde est recommandé pour garder vos " +#~ "données en sécurité. Si vous n\"avez pas le contrôle physique exclusif de " +#~ "l'emplacement de sauvegarde, ou si il est volé, une sauvegarde chiffré " +#~ "empêche les autres de regarder dans vos données personnelles." + +#~ msgid "" +#~ "If on, you will be prompted for a password. Keep this password safe, you " +#~ "will need it to restore your data." +#~ msgstr "" +#~ "Si c'est sur marche, un mot de passe vous sera demandé. Gardez ce mot de " +#~ "passe en lieu sûr, il vous servira à restaurer vos données." + +#~ msgid "Default: <userinput>On</userinput>." +#~ msgstr "Par défaut: <userinput>Activé</userinput>." + +#~ msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +#~ msgstr "" +#~ "<guilabel>Sauvegarder automatiquement selon une planification régulière</" +#~ "guilabel>" + +#~ msgid "" +#~ "Turn this option on to have <application>Déjà Dup</application> " +#~ "automatically backup for you. This is recommended so that you don't " +#~ "forget to backup. Backups are more useful the more recently you have made " +#~ "them, so it is important to regularly do so." +#~ msgstr "" +#~ "Activez cette option pour que <application>Déjà Dup</application> fasse " +#~ "des sauvegardes automatiquement pour vous. Celà est recommandé pour ne " +#~ "pas oublier de sauvegarder. Plus les sauvegardes sont récentes et plus " +#~ "elles sont utiles, il est donc important d'en faire régulièrement." + +#~ msgid "Default: <userinput>Off</userinput>." +#~ msgstr "Par défaut: <userinput>Désactivé</userinput>." + +#~ msgid "<guilabel>How often to backup</guilabel>" +#~ msgstr "<guilabel>Fréquence des sauvegardes</guilabel>" + +#~ msgid "Choose a schedule for automatic backups." +#~ msgstr "Choisissez une période pour vos sauvegardes automatiques." + +#~ msgid "Default: <guilabel>Weekly</guilabel>." +#~ msgstr "Par défaut: <guilabel>Tous les jours</guilabel>." + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "" +#~ "Dossier sur votre système dans lequel conserver les fichiers sauvegardés." + +#~ msgid "Local backup location" +#~ msgstr "Emplacement local des sauvegardes" + +#~ msgid "Choose backup destination" +#~ msgstr "Choisissez la destination de la sauvegarde" + +#~ msgid "Local Folder" +#~ msgstr "Dossier local" + +#~ msgid "Select Folder" +#~ msgstr "Sélectionner un dossier" + +#~ msgid "Choose folder" +#~ msgstr "Choisir un dossier" + +#~ msgid "Could not add the folder" +#~ msgstr "Impossible d'ajouter le dossier" + +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Vous avez dû recevoir une copie de la Licence Publique Générale GNU avec " +#~ "ce programme. Si ce n'était pas le cas, écrivez à « Free Software " +#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA " +#~ "»." + +#~ msgid "I_nclude:" +#~ msgstr "I_nclus:" + +#~ msgid "E_xclude:" +#~ msgstr "E_xclus:" + +#~ msgid "SSH directory" +#~ msgstr "Dossier SSH" + +#~ msgid "SSH port" +#~ msgstr "Port SSH" + +#~ msgid "SSH server" +#~ msgstr "Serveur SSH" + +#~ msgid "SSH username" +#~ msgstr "Nom d'utilisateur SSH" + +#~ msgid "The directory used for SSH connections." +#~ msgstr "Le dossier utilisé pour les connections SSH." + +#~ msgid "The port used for SSH connections." +#~ msgstr "Le port utilisé pour les connections SSH." + +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Le protocole utilisé pour le dossier de sauvegarde. Les valeurs possibles " +#~ "sont 's3', 'fichier', ou 'ssh'," + +#~ msgid "The server used for SSH connections." +#~ msgstr "Le serveur utilisé pour les connections SSH." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Le nom d'utilisateur utilisé pour les connections SSH." + +#~ msgid "No username specified" +#~ msgstr "Pas de nom d'utilisateur spécifié" + +#~ msgid "No server specified" +#~ msgstr "Pas de serveur spécifié" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s dans ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "Mot de passe SSH" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "" +#~ "Entrer votre nom d'utilisateur SSH et le mot de passe pour le serveur %s." + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "%s is already in the list." +#~ msgstr "%s est déjà dans la liste." + +#~ msgid "_Server:" +#~ msgstr "_Serveur" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "Contents" +#~ msgstr "Sommaire" + +#~ msgid "" +#~ "deja-dup is a graphical frontend to B<duplicity>(1). It can backup and " +#~ "restore using Amazon S3, an SSH server, or a local folder, as well as " +#~ "schedule backups at regular intervals." +#~ msgstr "" +#~ "deja-dup est une interface graphique pour B<duplicity>(1). Il peut " +#~ "sauvegarder et restaurer en utilisant Amazon S3, une serveur SSH, ou un " +#~ "dossier local, avec des sauvegardes planifiées sur des intervalles " +#~ "réguliers." + +#~ msgid "Michael Terry" +#~ msgstr "Michael Terry" + +#~ msgid "<author> <firstname>Michael</firstname> <surname>Terry</surname>" +#~ msgstr "<author> <firstname>Michael</firstname> <surname>Terry</surname>" + +#~ msgid "<indexterm zone=\"index\">" +#~ msgstr "<indexterm zone=\"index\">" + +#~ msgid "</indexterm> <indexterm zone=\"index\">" +#~ msgstr "</indexterm> <indexterm zone=\"index\">" + +#~ msgid "Local folder" +#~ msgstr "Dossier local" + +#~ msgid "When You Start <application>Déjà Dup</application>" +#~ msgstr "Quand vous démarrez <application>Déjà Dup</application>" + +#~ msgid "<guilabel>Local Folder</guilabel>" +#~ msgstr "<guilabel>Dossier local</guilabel>" + +#~ msgid "<guilabel>SSH</guilabel>" +#~ msgstr "<guilabel>SSH</guilabel>" + +#~ msgid "<guilabel>Username</guilabel>" +#~ msgstr "<guilabel>Nom d'utilisateur</guilabel>" + +#~ msgid "Enter the username used to log in to the server." +#~ msgstr "" +#~ "Entrez le nom d'utilisateur utilisé pour se connecter sur le serveur." + +#~ msgid "<guilabel>Server</guilabel>" +#~ msgstr "<guilabel>Serveur</guilabel>" + +#~ msgid "" +#~ "Enter the address of the server to use. This can either be an IP address " +#~ "(all numbers) or a domain name." +#~ msgstr "" +#~ "Entrez l'adresse du serveur à utiliser. Ça peut être une adresse ip (tous " +#~ "les numéros) ou un nom de domaine." + +#~ msgid "<guilabel>Port</guilabel>" +#~ msgstr "<guilabel>Port</guilabel>" + +#~ msgid "<guilabel>Directory</guilabel>" +#~ msgstr "<guilabel>Dossier</guilabel>" + +#~ msgid "Enter the directory to store backup files on the server." +#~ msgstr "" +#~ "Entrez le dossier où placer les fichiers de sauvegarde sur le serveur." + +#~ msgid "<guilabel>Include</guilabel>" +#~ msgstr "<guilabel>Inclus</guilabel>" + +#~ msgid "<guilabel>Exclude</guilabel>" +#~ msgstr "<guilabel>Exclus</guilabel>" + +#~ msgid "~/Private" +#~ msgstr "~/Private" + +#~ msgid "" +#~ "The <guilabel>Backup</guilabel> dialog will then be displayed. Click " +#~ "<guibutton>Apply</guibutton> to start the backup. A progress bar will " +#~ "appear. If an error occurs, the dialog will display an error message." +#~ msgstr "" +#~ "La fenêtre de dialogue <guilabel>Sauvegarder</guilabel> sera alors " +#~ "affichée. Cliquez sur <guibutton>Appliquer</guibutton> pour commencer la " +#~ "sauvegarde. Une barre de progression va apparaitre. Si une erreur " +#~ "survient, un message d'erreur s'affichera." + +#~ msgid "" +#~ "The <guilabel>Restore</guilabel> dialog will then be displayed. You first " +#~ "must pick where to put the restored files. You can either restore them to " +#~ "their original locations or put them under a folder of your choice." +#~ msgstr "" +#~ "Le dialogue <guilabel>Restaurer</guilabel> sera alors affiché. Vous devez " +#~ "d'abord définir où placer les fichiers restaurés. Vous pouvez aussi les " +#~ "restaurer à leur emplacement original ou les placer dans le dossier de " +#~ "votre choix." + +#~ msgid "" +#~ "After clicking <guibutton>Forward</guibutton>, you can review your " +#~ "restore options, then click <guibutton>Apply</guibutton> to start the " +#~ "restore. A progress bar will appear. If an error occurs, the dialog will " +#~ "display an error message." +#~ msgstr "" +#~ "Après avoir cliqué sur <guibutton>Retour</guibutton>, vous pouvez revoir " +#~ "vos options de restauration, puis cliquez sur <guibutton>Appliquer</" +#~ "guibutton> pour commencer la restauration. Une barre de progression va " +#~ "apparaitre. Si une erreur survient, un message d'erreur s'affichera." diff -Nru deja-dup-7.4/po/gl.po deja-dup-10.0/po/gl.po --- deja-dup-7.4/po/gl.po 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/po/gl.po 2009-06-05 14:52:25.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-01-07 20:49-0500\n" -"PO-Revision-Date: 2009-01-16 19:31+0000\n" -"Last-Translator: Mundi do Rosal <mundi@aol.es>\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:37+0000\n" +"Last-Translator: Mundi do Rosal <Unknown>\n" "Language-Team: Galician <gl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2009-01-19 13:56+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "Monitor do Déjà Dup" @@ -39,84 +39,60 @@ msgstr "Programa copias de seguridade en intervalos regulares" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" +msgid "Amazon S3 Access Key ID" msgstr "" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." msgstr "" #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" +msgid "Backup location" msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "Cartafol no teu sistema para gardar os arquivos do respaldo" +msgid "Directories not to backup" +msgstr "" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "Periodicidade da copia de seguridade" +msgid "Directories to backup" +msgstr "" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "" +msgid "How often to periodically backup" +msgstr "Periodicidade da copia de seguridade" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "Directorio SSH" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "Porto SSH" - -#: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "Servidor SSH" - -#: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "Nome de usuario do SSH" - -#: ../data/deja-dup.schemas.in.h:11 msgid "The Amazon S3 bucket name to use" msgstr "" -#: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "Directorio usado para as conexións SSH" +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" -#: ../data/deja-dup.schemas.in.h:13 +#: ../data/deja-dup.schemas.in.h:10 msgid "The last time Déjà Dup was run" msgstr "Derradeira vez que foi executado Déjà Dup" -#: ../data/deja-dup.schemas.in.h:14 +#: ../data/deja-dup.schemas.in.h:11 msgid "The last time Déjà Dup was run, in ISO 8601 format." msgstr "Derradeira vez que foi executado Déjà Dup, no formato ISO 8601" -#: ../data/deja-dup.schemas.in.h:15 +#: ../data/deja-dup.schemas.in.h:12 msgid "The number of days between backups." msgstr "Número de días entre copias de seguridade" -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "Porto usado para conexións SSH" - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "Servidor usado para as conexións SSH." - -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "Nome de usuario para conexións SSH" - -#: ../data/deja-dup.schemas.in.h:20 +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -124,7 +100,7 @@ "entries are relative to the user's home directory." msgstr "" -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -133,359 +109,526 @@ "This list takes precedence over the include list." msgstr "" -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "Tipo de lugar para a copia de seguridade" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "" -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "" -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." msgstr "" -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" msgstr "" -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." msgstr "" -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." msgstr "" -#: ../applet/applet.vala:26 ../deja-dup/main.vala:28 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" msgstr "" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" msgstr "" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" msgstr "" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." msgstr "" -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" msgstr "" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "" -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" msgstr "" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." msgstr "" -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" msgstr "" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" msgstr "" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" msgstr "" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" msgstr "" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" msgstr "" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:89 +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" msgstr "" +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:164 -msgid "Unknown" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" msgstr "" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" msgstr "" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "" -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Duplicity.vala:52 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "" -#: ../deja-dup/AssistantOperation.vala:173 +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 msgid "Summary" msgstr "" -#: ../deja-dup/AssistantRestore.vala:32 +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" msgstr "" -#: ../deja-dup/AssistantRestore.vala:43 +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" msgstr "" -#: ../deja-dup/AssistantRestore.vala:48 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" msgstr "" -#: ../deja-dup/AssistantRestore.vala:58 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" msgstr "" -#: ../deja-dup/AssistantRestore.vala:63 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:95 +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:121 +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" msgstr "" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:135 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" msgstr "" -#: ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" msgstr "" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" msgstr "" -#: ../deja-dup/AssistantRestore.vala:177 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" msgstr "" -#: ../deja-dup/AssistantRestore.vala:178 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." msgstr "" -#: ../deja-dup/AssistantRestore.vala:182 ../libdeja-dup/Duplicity.vala:54 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." msgstr "" +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "" + #. Translators: The name is a play on the French phrase "déjà vu" meaning #. "already seen", but with the "vu" replaced with "dup". "Dup" in this #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:37 ../deja-dup/main.vala:55 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" msgstr "" -#: ../deja-dup/MainWindow.vala:184 -msgid "_File" +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" msgstr "" -#: ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "" -#: ../deja-dup/MainWindow.vala:193 -msgid "_Restore" +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" msgstr "" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "" -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "" -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "" -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" +msgid "Folder %s on Amazon S3" msgstr "" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." msgstr "" -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." msgstr "" -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:157 -#, c-format -msgid "Enter your SSH username and password for server %s." +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:117 +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 msgid "Could not run duplicity" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" "\n" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " "version %d.%d.%.2d" msgstr "" -#: ../libdeja-dup/Duplicity.vala:56 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." msgstr "" -#: ../libdeja-dup/Duplicity.vala:69 -msgid "Preparing..." +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." msgstr "" -#: ../libdeja-dup/Duplicity.vala:355 -msgid "Invalid ID" +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" msgstr "" -#: ../libdeja-dup/Duplicity.vala:357 -msgid "Invalid secret key" +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." msgstr "" -#: ../libdeja-dup/Duplicity.vala:468 -msgid "Failed with an unknown error." +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 #, c-format msgid "Could not display %s" msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:130 +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" -" Mundi do Rosal https://launchpad.net/~mundidorosal" +" Mundi do Rosal https://launchpad.net/~mundidorosal\n" +"\n" +"Launchpad Contributions:\n" +" Mundi Granja https://launchpad.net/~mundigranja" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -494,7 +637,7 @@ "any later version." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -502,168 +645,149 @@ "more details." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." msgstr "" -#: ../libdeja-dup/OperationBackup.vala:69 -msgid "Could not connect to backup location" +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" msgstr "" -#: ../libdeja-dup/OperationRestore.vala:39 -msgid "Restoring files..." +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" msgstr "" -#: ../libdeja-dup/OperationRestore.vala:151 -#, c-format -msgid "" -"Not all files could be restored. Any files that could not be restored may " -"still be found in %s." -msgstr "" - -#: ../libdeja-dup/OperationRestore.vala:160 -#, c-format -msgid "Could not restore %s: %s" +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" msgstr "" -#. Ask user -#: ../libdeja-dup/Operation.vala:178 -msgid "Encryption Password" +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" msgstr "" -#: ../libdeja-dup/Operation.vala:179 -msgid "Enter the password used to encrypt your backup files." +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" msgstr "" -#: ../libdeja-dup/Operation.vala:198 -msgid "Déjà Dup backup passphrase" +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" msgstr "" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" msgstr "" -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" msgstr "" -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" msgstr "" -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" msgstr "" -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." msgstr "" -#: ../preferences/ConfigList.vala:90 -msgid "Trash" +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." msgstr "" -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" msgstr "" -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." msgstr "" -#: ../preferences/ConfigList.vala:164 -#, c-format -msgid "%s is already in the list." +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" msgstr "" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." msgstr "" -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" msgstr "" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" msgstr "" -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "" +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "" +msgstr[1] "" -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" msgstr[0] "" msgstr[1] "" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 msgid "Déjà Dup Preferences" msgstr "" -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "" - -#: ../preferences/PreferencesDialog.vala:91 +#: .././po/../preferences/PreferencesDialog.vala:68 #, c-format -msgid "S3 I_D:" +msgid "S3 Access Key I_D:" msgstr "" -#: ../preferences/PreferencesDialog.vala:110 +#: .././po/../preferences/PreferencesDialog.vala:80 #, c-format msgid "_Folder:" msgstr "" -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" msgstr "" -#: ../preferences/PreferencesDialog.vala:140 +#: .././po/../preferences/PreferencesDialog.vala:148 #, c-format -msgid "_Server:" +msgid "How _often to backup:" msgstr "" -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "" +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Cartafol no teu sistema para gardar os arquivos do respaldo" -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "" +#~ msgid "SSH directory" +#~ msgstr "Directorio SSH" -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "" +#~ msgid "SSH port" +#~ msgstr "Porto SSH" -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "" +#~ msgid "SSH server" +#~ msgstr "Servidor SSH" -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "" +#~ msgid "SSH username" +#~ msgstr "Nome de usuario do SSH" -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "" +#~ msgid "The directory used for SSH connections." +#~ msgstr "Directorio usado para as conexións SSH" -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "" +#~ msgid "The port used for SSH connections." +#~ msgstr "Porto usado para conexións SSH" + +#~ msgid "The server used for SSH connections." +#~ msgstr "Servidor usado para as conexións SSH." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Nome de usuario para conexións SSH" diff -Nru deja-dup-7.4/po/he.po deja-dup-10.0/po/he.po --- deja-dup-7.4/po/he.po 2009-02-11 21:04:49.000000000 -0500 +++ deja-dup-10.0/po/he.po 2009-06-05 14:52:25.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-02-02 20:47-0500\n" -"PO-Revision-Date: 2009-02-08 20:29+0000\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:37+0000\n" "Last-Translator: Yaron <sh.yaron@gmail.com>\n" "Language-Team: Hebrew <he@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2009-02-12 01:56+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "צג המעקב של Déjà Dup" @@ -39,85 +39,60 @@ msgstr "תזמן גיבויים במרווחי זמן קבועים" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" -msgstr "מזהה מפתח Amazon S3" +msgid "Amazon S3 Access Key ID" +msgstr "" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" -msgstr "תיקיות שאין לגבות" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" -msgstr "תיקיות לגיבוי" +msgid "Backup location" +msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "תיקייה במערכת שלך בה ישמרו קבצי הגיבוי." +msgid "Directories not to backup" +msgstr "תיקיות שאין לגבות" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "באיזו תדירות תקופתית יש לערוך גיבוי" +msgid "Directories to backup" +msgstr "תיקיות לגיבוי" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "מיקום הגיבוי המקומי" +msgid "How often to periodically backup" +msgstr "באיזו תדירות תקופתית יש לערוך גיבוי" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "תיקיית ה־SSH" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "פתחת ה־SSH" - -#: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "שרת ה־SSH" - -#: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "שם המשתמש ב־SSH" - -#: ../data/deja-dup.schemas.in.h:11 msgid "The Amazon S3 bucket name to use" msgstr "שם דלי ה־Amazon S3 לשימוש" -#: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "התיקייה המשמשת לחיבורי SSH." +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" -#: ../data/deja-dup.schemas.in.h:13 +#: ../data/deja-dup.schemas.in.h:10 msgid "The last time Déjà Dup was run" msgstr "הפעם האחרונה בה הופעל Déjà Dup" -#: ../data/deja-dup.schemas.in.h:14 +#: ../data/deja-dup.schemas.in.h:11 msgid "The last time Déjà Dup was run, in ISO 8601 format." msgstr "הפעם האחרונה בה הופעל Déjà Dup, במבנה ISO 8601." -#: ../data/deja-dup.schemas.in.h:15 +#: ../data/deja-dup.schemas.in.h:12 msgid "The number of days between backups." msgstr "מספר הימים בין הגיבויים." -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "הפתחה המשמשת להתחברויות SSH." - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" -"הפרוטוקול המשמש למיקום הגיבוי. הערכים התקפים הם 's3', 'file', או 'ssh'." - -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "השרת המשמש להתחברויות SSH." -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "שם המשתמש המשמש להתחברויות SSH." - -#: ../data/deja-dup.schemas.in.h:20 +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -129,7 +104,7 @@ "הינם מזוהים כתיקיות משתמש מיוחדות. רשומות יחסיות הינן ביחס לתיקיית הבית של " "המשתמש." -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -142,19 +117,19 @@ "הינם מזוהים כתיקיות המשתמש המיוחדות. רשומות יחסיות הינן יחסיות לתיקיית הבית " "של המשתמש. רשימה זו מועדפת על פני רשימת ההכללה." -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "סוג המיקום לשמירת גיבוי" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "האם לגבות באופן בתדירות קבועה באופן אוטומטי." -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "האם להצפין את הגיבוי" -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." @@ -162,11 +137,11 @@ "האם יש להצפין את קבצי הגיבוי שלך במיקום האיחסון. מומלץ בחום להשאיר ערך זה " "כ־'אמת'." -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" msgstr "האם לגבות בתדירות קבועה" -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." @@ -174,30 +149,31 @@ "באיזה דלי של Amazon S3 יש לאחסן את הקבצים. הדלי לא חייב להיות מבעוד מועד. רק " "מחרוזות שם מארח חוקיות הן תקניות." -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." -msgstr "מזהה מפתח ה־Amazon S3. המזהה מהווה שם המשתמש שלך ב־S3" +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" msgstr "הצגת הגירסה" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" msgstr "יישומון Déjà Dup" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" msgstr "%.1f%% הושלמו" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "הגיבוי עומד להתחיל" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." @@ -205,173 +181,221 @@ "גיבוי מתוזמן יתחיל בעוד זמן קצר. תוכל במקום זאת לבחור לגבות מאוחר יותר או לא " "לגבות כלל." -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "דילוג על הגיבוי" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" msgstr "גיבוי מאוחר יותר" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "נדרשת סיסמת הצפנה" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "אנא הזן את סיסמת ההצפנה לקבצי הגיבוי שלך." -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "הזנה" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" msgstr "סיסמת השרת נדרשת" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." msgstr "נא הזן את סיסמת השרת עבור הגיבוי שלך." -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" msgstr "ארעה שגיאת גיבוי" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" msgstr "" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" msgstr "" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" msgstr "" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" msgstr "" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "_מיקום הגיבוי:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "ה_צפן קבצי גיבוי" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" msgstr "" +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" msgstr "" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" msgstr "" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "הקבצים שלך גובו בהצלחה." -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "" -#: ../deja-dup/AssistantOperation.vala:173 +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 msgid "Summary" msgstr "" -#: ../deja-dup/AssistantRestore.vala:71 +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" msgstr "" -#: ../deja-dup/AssistantRestore.vala:101 +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 msgid "_Date:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" msgstr "" -#: ../deja-dup/AssistantRestore.vala:129 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" msgstr "" -#: ../deja-dup/AssistantRestore.vala:139 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" msgstr "בחר את יעד הקבצים המשוחזרים" -#: ../deja-dup/AssistantRestore.vala:143 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:227 msgid "Restore date:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:181 +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:222 +#: .././po/../deja-dup/AssistantRestore.vala:261 msgid "Checking for Backups" msgstr "" -#: ../deja-dup/AssistantRestore.vala:233 +#: .././po/../deja-dup/AssistantRestore.vala:272 msgid "Restore from When?" msgstr "" -#: ../deja-dup/AssistantRestore.vala:244 +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" msgstr "" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" msgstr "" -#: ../deja-dup/AssistantRestore.vala:302 +#: .././po/../deja-dup/AssistantRestore.vala:340 msgid "No backups to restore" msgstr "" -#: ../deja-dup/AssistantRestore.vala:404 +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" msgstr "" -#: ../deja-dup/AssistantRestore.vala:417 +#: .././po/../deja-dup/AssistantRestore.vala:447 msgid "File to restore:" msgid_plural "Files to restore:" msgstr[0] "" msgstr[1] "" -#: ../deja-dup/AssistantRestore.vala:439 +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" msgstr "" -#: ../deja-dup/AssistantRestore.vala:441 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" msgstr "" -#: ../deja-dup/AssistantRestore.vala:442 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." msgstr "הקבצים שלך שוחזרו בהצלחה." -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." msgstr "" -#: ../deja-dup/main.vala:31 +#: .././po/../deja-dup/main.vala:31 msgid "Restore given files" msgstr "" @@ -380,65 +404,68 @@ #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" msgstr "Déjà Dup" -#: ../deja-dup/main.vala:47 +#: .././po/../deja-dup/main.vala:47 msgid "No filenames provided" msgstr "" -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 msgid "_Restore" msgstr "_שחזר" -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "_גיבוי" -#: ../deja-dup/MainWindow.vala:184 +#: .././po/../deja-dup/MainWindow.vala:176 msgid "_File" msgstr "_קובץ" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "_ערוך" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "ע_זרה" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "" -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "" -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "" -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" -msgstr "בחר את יעד הגיבוי" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" +msgid "Folder %s on Amazon S3" msgstr "" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "סיסמת Amazon S3" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." @@ -446,109 +473,181 @@ "הזן את מזהה המשתמש שלך והמפתח הסודי בשירותים המקוונים של Amazon. אלו אינם " "הפרטים בהם אתה משתמש להתחברות לאתר amazon.com." -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." msgstr "" -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:157 -#, c-format -msgid "Enter your SSH username and password for server %s." +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "תיקיית הבית" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "אשפה" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:117 +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 msgid "Could not run duplicity" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" "\n" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " "version %d.%d.%.2d" msgstr "" -#: ../libdeja-dup/Duplicity.vala:120 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 msgid "Preparing..." msgstr "" -#: ../libdeja-dup/Duplicity.vala:170 +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." msgstr "" -#: ../libdeja-dup/Duplicity.vala:215 +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 msgid "Failed with an unknown error." msgstr "" -#: ../libdeja-dup/Duplicity.vala:287 +#: .././po/../libdeja-dup/Duplicity.vala:341 #, c-format msgid "Could not restore '%s': File not found in backup" msgstr "" -#: ../libdeja-dup/Duplicity.vala:301 -msgid "Invalid ID" +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." msgstr "" -#: ../libdeja-dup/Duplicity.vala:303 -msgid "Invalid secret key" +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" msgstr "" -#: ../libdeja-dup/Duplicity.vala:320 +#: .././po/../libdeja-dup/Duplicity.vala:407 msgid "No backup files found" msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/libdeja-dup.vala:95 #, c-format msgid "Could not display %s" msgstr "לא ניתן להציג את %s" -#: ../libdeja-dup/libdeja-dup.vala:130 +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "אודות Déjà Dup" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " Yaron https://launchpad.net/~sh-yaron\n" "\n" "Launchpad Contributions:\n" +" Yaron https://launchpad.net/~sh-yaron\n" +"\n" +"Launchpad Contributions:\n" " Yaron https://launchpad.net/~sh-yaron" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -560,7 +659,7 @@ "הציבורי הכללי של GNU כפי שפורסם על ידי קרן התוכנה החופשית; ניתן לפעול לפי " "גירסה 3, או (לבחירתך) בכל גירסה מאוחרת יותר." -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -571,193 +670,201 @@ "מרומזת למסחר או התאמה לצרכים מסויימים. אנא פנה לרשיון הציבורי הכללי של GNU " "לפרטים נוספים." -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" msgstr "" -"יחד עם תוכנית זו היית אמור לקבל עותק של הרישיון הציבורי הכללי של GNU; במידה " -"ולא, כתוב אל Free Software Foundation, Inc., 59 Temple Place, Suite 330, " -"Boston, , MA 02111-1307, USA." -#: ../libdeja-dup/OperationRestore.vala:59 +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 msgid "Restoring files..." msgstr "משחזר קבצים..." -#: ../libdeja-dup/OperationRestore.vala:169 +#: .././po/../libdeja-dup/OperationRestore.vala:172 #, c-format msgid "" "Not all files could be restored. Any files that could not be restored may " "still be found in %s." msgstr "" -#: ../libdeja-dup/OperationRestore.vala:178 +#: .././po/../libdeja-dup/OperationRestore.vala:181 #, c-format msgid "Could not restore %s: %s" msgstr "" -#: ../libdeja-dup/Operation.vala:53 +#: .././po/../libdeja-dup/Operation.vala:53 msgid "Checking for backups..." msgstr "" #. Ask user -#: ../libdeja-dup/Operation.vala:199 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "סיסמת הצפנה" -#: ../libdeja-dup/Operation.vala:200 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." msgstr "הזן את הסיסמה המשמשת להצפנת קבצי הגיבוי שלך." -#: ../libdeja-dup/Operation.vala:219 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "מילת הצופן של גיבוי ה־Déjà Dup" -#: ../libdeja-dup/Operation.vala:237 +#: .././po/../libdeja-dup/Operation.vala:255 msgid "Another Déjà Dup is already running" msgstr "" -#: ../nautilus/NautilusExtension.c:95 +#: .././po/../nautilus/NautilusExtension.c:95 msgid "Revert to Previous Version..." msgid_plural "Revert to Previous Versions..." msgstr[0] "" msgstr[1] "" -#: ../nautilus/NautilusExtension.c:99 +#: .././po/../nautilus/NautilusExtension.c:99 msgid "Restore file from backup" msgid_plural "Restore files from backup" msgstr[0] "" msgstr[1] "" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "Amazon S3" - -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "תיקייה מקומית" +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "העדפות Déjà Dup" -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" msgstr "" -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "בחר תיקייה" - -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" -msgstr "תיקיית הבית" - -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "אשפה" - -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "בחר תיקייה" - -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "לא ניתן להוסיף את התיקייה" - -#: ../preferences/ConfigList.vala:164 +#: .././po/../preferences/PreferencesDialog.vala:80 #, c-format -msgid "%s is already in the list." +msgid "_Folder:" msgstr "" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" msgstr "" -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" msgstr "" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "" +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "תיקייה במערכת שלך בה ישמרו קבצי הגיבוי." -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "" +#~ msgid "Local backup location" +#~ msgstr "מיקום הגיבוי המקומי" -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "" -msgstr[1] "" +#~ msgid "Choose backup destination" +#~ msgstr "בחר את יעד הגיבוי" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "העדפות Déjà Dup" +#~ msgid "Local Folder" +#~ msgstr "תיקייה מקומית" -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "_מיקום הגיבוי:" +#~ msgid "Select Folder" +#~ msgstr "בחר תיקייה" -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "" +#~ msgid "Choose folder" +#~ msgstr "בחר תיקייה" -#: ../preferences/PreferencesDialog.vala:91 -#, c-format -msgid "S3 I_D:" -msgstr "" +#~ msgid "Could not add the folder" +#~ msgstr "לא ניתן להוסיף את התיקייה" -#: ../preferences/PreferencesDialog.vala:110 -#, c-format -msgid "_Folder:" -msgstr "" +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "יחד עם תוכנית זו היית אמור לקבל עותק של הרישיון הציבורי הכללי של GNU; " +#~ "במידה ולא, כתוב אל Free Software Foundation, Inc., 59 Temple Place, Suite " +#~ "330, Boston, , MA 02111-1307, USA." -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "" +#~ msgid "I_nclude:" +#~ msgstr "ה_כללה:" -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "" +#~ msgid "E_xclude:" +#~ msgstr "הוצאה מה_כלל:" -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "" +#~ msgid "SSH directory" +#~ msgstr "תיקיית ה־SSH" -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "" +#~ msgid "SSH port" +#~ msgstr "פתחת ה־SSH" -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "ה_כללה:" +#~ msgid "SSH server" +#~ msgstr "שרת ה־SSH" -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "הוצאה מה_כלל:" +#~ msgid "SSH username" +#~ msgstr "שם המשתמש ב־SSH" -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "ה_צפן קבצי גיבוי" +#~ msgid "The directory used for SSH connections." +#~ msgstr "התיקייה המשמשת לחיבורי SSH." -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "" +#~ msgid "The port used for SSH connections." +#~ msgstr "הפתחה המשמשת להתחברויות SSH." -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "" +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "הפרוטוקול המשמש למיקום הגיבוי. הערכים התקפים הם 's3', 'file', או 'ssh'." + +#~ msgid "The server used for SSH connections." +#~ msgstr "השרת המשמש להתחברויות SSH." + +#~ msgid "The user used for SSH connections." +#~ msgstr "שם המשתמש המשמש להתחברויות SSH." + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "מזהה מפתח Amazon S3" + +#~ msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#~ msgstr "מזהה מפתח ה־Amazon S3. המזהה מהווה שם המשתמש שלך ב־S3" #~ msgid "" -#~ "The protocol used for the backup location. Valid values are 's3' or 'file'." +#~ "The protocol used for the backup location. Valid values are 's3' or " +#~ "'file'." #~ msgstr "" #~ "הפרוטוקול המשמש למיקום הגיבוי. ערכים מורשים לדוגמה הינם 's3' או 'file'." @@ -776,10 +883,8 @@ #~ msgid "Restore finished" #~ msgstr "השיחזור הושלם" -#, c-format #~ msgid "S3 b_ucket:" #~ msgstr "_דלי S3:" -#, c-format #~ msgid "Folder:" #~ msgstr "תיקייה:" diff -Nru deja-dup-7.4/po/id.po deja-dup-10.0/po/id.po --- deja-dup-7.4/po/id.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/id.po 2009-06-05 14:52:25.000000000 -0400 @@ -0,0 +1,1072 @@ +# Indonesian translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-15 16:46+0000\n" +"Last-Translator: Hertatijanto Hartono <dvertx@gmail.com>\n" +"Language-Team: Indonesian <id@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "Backup file-file anda" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "Utilitas Backup Déjà Dup" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "Monitor Déjà Dup" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "Skedul backup pada interval tertentu" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "ID Kunci Akses Amazon S3" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" +"Nama map opsional untuk menyimpan file. Map ini akan dibuat dalam wadah yang " +"dipilih." + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "Direktori yang tidak akan di backup" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "Direktori yang akan di backup" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "Berapa sering perlu melakukan backup" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "Nama wadah Amazon S3 yang akan digunakan" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "Map Amazon S3" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "Saat terakhir Déjà Dup dijalankan" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "Saat terakhir Déjà Dup dijalankan, dalam format ISO 8601." + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "Jumlah hari antara backup yang satu dengan lainnya." + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" +"Daftar direktori yang akan di backup. Nilai dicadangkan $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"dan $VIDEO dikenali sebagai direktori khusus pengguna. Jika direktori tidak " +"tertulis secara penuh, maka direktori tersebut diukur relatif terhadap " +"direktori pangkal pengguna." + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" +"Daftar direktori yang tidak akan di backup. Nilai dicadangkan $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, dan $VIDEO dikenali sebagai direktori khusus pengguna. " +"Jika direktori tidak tertulis secara penuh, maka direktori tersebut diukur " +"relatif terhadap direktori pangkal pengguna. Daftar ini didahulukan " +"dibandingkan dengan daftar cakupan." + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "Jenis lokasi untuk menyimpan backup" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "Apakah akan melakukan backup rutin secara otomatis." + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "Apakah akan mengenkripsi backup anda" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" +"Apakah akan mengenkripsi file backup anda dalam lokasi penyimpanannya. " +"Direkomendasikan untuk membiarkannya dalam kondisi 'benar'." + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "Apakah akan melakukan backup secara periodik" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" +"Wadah Amazon S3 untuk penempatan file. Tidak perlu sudah di buat sebelumnya. " +"Hanya diperbolehkan dalam bentuk string nama host." + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" +"Identifikasi Kunci Akses Amazon S3 anda. Ini berfungsi sebagai nama pengguna " +"S3 anda." + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "Tampilkan versi" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "Aplet Déjà Dup" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "%.1f%% komplit" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "Backup sebentar lagi dimulai" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" +"Backup terskedul akan dimulai sesaat lagi. Anda boleh memilih untuk " +"melakukan backup di lain waktu atau tidak sama sekali." + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "Backup Nanti" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "Dibutuhkan password enkripsi" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "Masukkan password enkripsi untuk file backup anda." + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "Dibutuhkan password server" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "Masukkan password server untuk backup anda." + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "Terjadi kesalahan backup" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "Jalankan kembali" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "Tidak dapat membuka preferensi" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "Backup" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "Lokasi _Backup:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "_Enkripsikan file backup" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "Preferensi" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "Lokasi backup:" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "Melakukan proses backup" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "Backup Gagal" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "Backup Selesai" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "File anda telah berhasil di backup." + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "Melakukan proses backup..." + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "Ringkasan" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "_Tanggal:" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "Memeriksa Backup" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "Lokasi asal" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "" + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "Nama file tidak diberikan" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "_Restorasi" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "_Backup" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "_File" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "_Edit" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "_Bantuan" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "Dapatkan Bantuan _Online..." + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "_Terjemahkan Aplikasi Ini..." + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "_Laporkan Masalah..." + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "Map %s di Amazon S3" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "Password Amazon S3" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" +"Masukkan identitas pengguna dan kunci rahasia Layanan Web Amazon anda. Ini " +"tidak sama dengan nama dan password yang anda gunakan di amazon.com." + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Map Pangkal" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Sampah" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Harian" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Mingguan" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Dwimingguan" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Bulanan" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Tiap %d hari" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "Tidak dapat menjalankan duplicity" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" +"Tidak memahami versi duplicity.\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" +"Tidak memahami duplicity versi '%s'.\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "Tanpa duplicity, Déjà Dup tidak dapat berfungsi. Keluar." + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "Versi duplicity terlalu kuno" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" +"Déjà Dup membutuhkan setidaknya deplicity versi %d.%d.%.2d, tetapi hanya " +"menemukan versi %d.%d.%.2d" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "Melakukan persiapan..." + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "Melakukan pembersihan..." + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "Gagal dengan kesalahan yang tidak diketahui." + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "Tidak dapat merestorasi '%s': File tidak ditemukan dalam backup" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "ID tidak valid." + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "Kunci rahasia tidak valid." + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "Akun Layanan Web Amazon anda tidak terdaftar pada layanan S3." + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "Nama wadah S3 tidak tersedia." + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "Password enkripsi buruk." + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "Kesalahan terjadi saat membaca file '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "Kesalahan terjadi saat menulis file '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "Tidak ada sisa ruang di %s" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "Tidak ditemukan adanya file backup" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "tidak dapat menampilkan %s" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "Tentang Déjà Dup" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Hertatijanto Hartono https://launchpad.net/~darkvertex" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" +"Program ini adalah perangkat lunak gratis; anda dapat mendistribusikan ulang " +"dan/atau memodifikasinya dibawah ketentuan lisensi GNU General Public " +"License sebagaimana diterbitkan oleh Free Software Foundation; baik lisensi " +"versi 3, atau (sesuai pilihan anda) versi sesudahnya." + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" +"Program ini didistribusikan dengan harapan akan berguna bagi anda, namun " +"TANPA JAMINAN APAPUN; bahkan tanpa implikasi jaminan DAPAT DIPERDAGANGKAN " +"atau SESUAI BAGI KEPERLUAN TERTENTU. Lihat lisensi GNU General Public " +"License untuk lebih jelasnya." + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Tidak Diketahui" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "Tidak dapat merestorasi %s: %s" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "Memeriksa keberadaan backup..." + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "Password Enkripsi" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "Masukkan password yang digunakan untuk mengenkripsi file backup anda." + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "Frasesandi backup Déjà Dup" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "Sudah ada Déjà Dup lain yang aktif" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "Dialihkan Kembali ke Versi Sebelumnya..." + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Preferensi Déjà Dup" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "I_D Kunci Akses S3:" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "" + +#~ msgid "deja-dup" +#~ msgstr "deja-dup" + +#~ msgid "%DATE%" +#~ msgstr "%TANGGAL%" + +#~ msgid "USER COMMANDS" +#~ msgstr "PERINTAH PENGGUNA" + +#~ msgid "NAME" +#~ msgstr "NAMA" + +#~ msgid "deja-dup - backup your data" +#~ msgstr "deja-dup - backup data anda" + +#~ msgid "SYNOPSIS" +#~ msgstr "RANGKUMAN" + +#~ msgid "B<deja-dup> [OPTIONS]" +#~ msgstr "B<deja-dup> [PILIHAN]" + +#~ msgid "DESCRIPTION" +#~ msgstr "DESKRIPSI" + +#~ msgid "OPTIONS" +#~ msgstr "PILIHAN" + +#~ msgid "-?, --help" +#~ msgstr "-?, --help" + +#~ msgid "Display usage information" +#~ msgstr "Tampilkan informasi cara pemakaian" + +#~ msgid "--version" +#~ msgstr "--versi" + +#~ msgid "Prints program name and version" +#~ msgstr "Menampilkan nama program dan versinya" + +#~ msgid "ENVIRONMENT" +#~ msgstr "LINGKUNGAN" + +#~ msgid "Set to 1 to enable more verbose output. Helpful for debugging." +#~ msgstr "" +#~ "Set menjadi 1 untuk melihat keluaran yang lebih banyak. Berguna untuk " +#~ "debug." + +#~ msgid "SEE ALSO" +#~ msgstr "LIHAT JUGA" + +#~ msgid "B<duplicity>(1)" +#~ msgstr "B<duplicity>(1)" + +#~ msgid "deja-dup-applet" +#~ msgstr "aplet-deja-dup" + +#~ msgid "deja-dup-applet - backup your data" +#~ msgstr "aplet-deja-dup - backup data anda" + +#~ msgid "B<deja-dup-applet> [OPTIONS]" +#~ msgstr "B<deja-dup-applet> [PILIHAN]" + +#~ msgid "" +#~ "deja-dup-applet is a notification applet that carries out a scheuduled " +#~ "backup. It is usually started automatically by B<deja-dup-monitor>(1)." +#~ msgstr "" +#~ "aplet-deja-dup adalah aplet notifikasi yang menjalankan backup terskedul. " +#~ "Ia dijalankan secara otomatis oleh B<deja-dup-monitor>(1)." + +#~ msgid "B<deja-dup>(1), B<deja-dup-monitor>(1)" +#~ msgstr "B<deja-dup>(1), B<deja-dup-monitor>(1)" + +#~ msgid "deja-dup-monitor" +#~ msgstr "deja-dup-monitor" + +#~ msgid "deja-dup-monitor - backup your data" +#~ msgstr "deja-dup-monitor - backup data anda" + +#~ msgid "B<deja-dup-monitor> [OPTIONS]" +#~ msgstr "B<deja-dup-monitor> [PILIHAN]" + +#~ msgid "" +#~ "deja-dup-monitor is a session daemon that handles scheduled backups. It " +#~ "is started by default whenever a user logs in. When a scheduled backup " +#~ "is due, it starts B<deja-dup-applet>(1)." +#~ msgstr "" +#~ "deja-dup-monitor adalah jurik sesi yang menangani backup terskedul. Ia " +#~ "dijalankan secara default ketika seorang pengguna login. Ketika saat " +#~ "backup terskedul tiba, ia menjalankan B<aplet-deja-dup>(1)." + +#~ msgid "B<deja-dup>(1), B<deja-dup-applet>(1)" +#~ msgstr "B<deja-dup>(1), B<aplet-deja-dup>(1)" + +#~ msgid "deja-dup-preferences" +#~ msgstr "preferensi-deja-dup" + +#~ msgid "deja-dup-preferences - backup your data" +#~ msgstr "preferensi-deja-dup - backup data anda" + +#~ msgid "B<deja-dup-preferences> [OPTIONS]" +#~ msgstr "B<preferensi-deja-dup> [PILIHAN]" + +#~ msgid "deja-dup-preferences is the preferences dialog for B<deja-dup>(1)." +#~ msgstr "preferensi-deja-dup adalah dialog preferensi untuk B<deja-dup>(1)." + +#~ msgid "B<deja-dup>(1)" +#~ msgstr "B<deja-dup>(1)" + +#~ msgid "C" +#~ msgstr "C" + +#~ msgid "<application>Déjà Dup</application> Manual" +#~ msgstr "Buku panduan <application>Déjà Dup</application>" + +#~ msgid "<application>Déjà Dup</application> is a simple backup utility." +#~ msgstr "" +#~ "<application>Déjà Dup</application> adalah utilitas backup sederhana." + +#~ msgid " <email>mike@mterry.name</email> " +#~ msgstr " <email>mike@mterry.name</email> " + +#~ msgid "%VERSION%" +#~ msgstr "%VERSION%" + +#~ msgid "Michael Terry <email>mike@mterry.name</email>" +#~ msgstr "Michael Terry <email>mike@mterry.name</email>" + +#~ msgid "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +#~ "\"><application>Déjà Dup</application> Administrators</ulink>" +#~ msgstr "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +#~ "\"><application>Déjà Dup</application> Administrator</ulink>" + +#~ msgid "This manual describes version %VERSION% of Déjà Dup." +#~ msgstr "Buku panduan ini menerangkan Déjà Dup versi %VERSION%." + +#~ msgid "Feedback" +#~ msgstr "Umpan balik" + +#~ msgid "" +#~ "To report a bug or make a suggestion regarding the <application>Déjà Dup</" +#~ "application> application or this manual, visit the <ulink url=\"http://" +#~ "bugs.launchpad.net/deja-dup\" type=\"http\"><application>Déjà Dup</" +#~ "application> project page</ulink>." +#~ msgstr "" +#~ "Untuk melaporkan bug atau mengirimkan saran seputar aplikasi " +#~ "<application>Déjà Dup</application> atau buku panduan ini, kunjungi " +#~ "<ulink url=\"http://bugs.launchpad.net/deja-dup\" type=\"http\">laman " +#~ "proyek <application>Déjà Dup</application></ulink>." + +#~ msgid "Introduction" +#~ msgstr "Pendahuluan" + +#~ msgid "" +#~ "<application>Déjà Dup</application> is a simple backup program. It hides " +#~ "the complexity of doing backups the 'right way' (encrypted, off-site, and " +#~ "regular) and uses duplicity as the backend." +#~ msgstr "" +#~ "<application>Déjà Dup</application> adalah sebuah program backup " +#~ "sederhana. Ia menutupi kompleksitas cara melakukan backup 'yang " +#~ "benar' (terenkripsi, lokasi terpisah, dan rutin) dan menggunakan " +#~ "duplicity sebagai program latar belakangnya." + +#~ msgid "<application>Déjà Dup</application> provides the following features:" +#~ msgstr "" +#~ "<application>Déjà Dup</application> menyediakan fitur-fitur berikut:" + +#~ msgid "Securely encrypts and compresses your data." +#~ msgstr "Mengenkripsi dan mengkompresikan data anda." + +#~ msgid "Schedules regular backups." +#~ msgstr "Menskedul backup secara teratur." + +#~ msgid "Integrates well into your GNOME desktop." +#~ msgstr "Terintegrasi dengan desktop GNOME anda." + +#~ msgid "Getting Started" +#~ msgstr "Pengenalan Awal" + +#~ msgid "Starting <application>Déjà Dup</application>" +#~ msgstr "Memulai <application>Déjà Dup</application>" + +#~ msgid "" +#~ "You can start <application>Déjà Dup</application> in the following ways:" +#~ msgstr "" +#~ "Anda dapat memulai <application>Déjà Dup</application> dengan cara-cara " +#~ "berikut:" + +#~ msgid "<guimenu>Applications</guimenu> menu" +#~ msgstr "menu <guimenu>Aplikasi</guimenu>" + +#~ msgid "" +#~ "Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà " +#~ "Dup Backup Utility</guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Pilih <menuchoice><guisubmenu>Accessories</" +#~ "guisubmenu><guimenuitem>Utilitas Backup Déjà Dup</guimenuitem></" +#~ "menuchoice>." + +#~ msgid "Command line" +#~ msgstr "Baris perintah" + +#~ msgid "" +#~ "To start <application>Déjà Dup</application> from a command line, type " +#~ "the following command, then press <keycap>Return</keycap>:" +#~ msgstr "" +#~ "Untuk memuulai <application>Déjà Dup</application> dari baris perintah, " +#~ "ketik perintah berikut, kemudian tekan <keycap>Return</keycap>:" + +#~ msgid "<command>deja-dup</command>" +#~ msgstr "<command>deja-dup</command>" + +#~ msgid "" +#~ "To configure <application>Déjà Dup</application>, choose " +#~ "<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Untuk mengkonfigurasikan <application>Déjà Dup</application>, pilih " +#~ "<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferensi</guimenuitem></" +#~ "menuchoice>." + +#~ msgid "<guilabel>Backup location</guilabel>" +#~ msgstr "<guilabel>Lokasi backup</guilabel>" + +#~ msgid "<guilabel>Amazon S3</guilabel>" +#~ msgstr "<guilabel>Amazon S3</guilabel>" + +#~ msgid "Default: <guilabel>Amazon S3</guilabel>." +#~ msgstr "Default: <guilabel>Amazon S3</guilabel>." + +#~ msgid "<guilabel>S3 Access Key ID</guilabel>" +#~ msgstr "<guilabel>ID Kunci Akses S3</guilabel>" + +#~ msgid "" +#~ "This option only appears if the <guilabel>Amazon S3</guilabel> backup " +#~ "location has been selected." +#~ msgstr "" +#~ "Pilihan ini muncul hanya jika lokasi backup <guilabel>Amazon S3</" +#~ "guilabel> telah dipilih." + +#~ msgid "<guilabel>Folder</guilabel>" +#~ msgstr "<guilabel>Map</guilabel>" + +#~ msgid "~/.cache" +#~ msgstr "~/.cache" + +#~ msgid "~/.thumbnails" +#~ msgstr "~/.thumbnails" + +#~ msgid "~/.gvfs" +#~ msgstr "~/.gvfs" + +#~ msgid "~/.xsession-errors" +#~ msgstr "~/.xsession-errors" + +#~ msgid "~/.recently-used.xbel" +#~ msgstr "~/.recently-used.xbel" + +#~ msgid "~/.recent-applications.xbel" +#~ msgstr "~/.recent-applications.xbel" + +#~ msgid "/proc" +#~ msgstr "/proc" + +#~ msgid "/tmp" +#~ msgstr "/tmp" + +#~ msgid "/sys" +#~ msgstr "/sys" + +#~ msgid "Default: <userinput>On</userinput>." +#~ msgstr "Default: <userinput>On</userinput>." diff -Nru deja-dup-7.4/po/LINGUAS deja-dup-10.0/po/LINGUAS --- deja-dup-7.4/po/LINGUAS 2009-02-11 21:03:54.000000000 -0500 +++ deja-dup-10.0/po/LINGUAS 2009-06-05 08:14:11.000000000 -0400 @@ -1,9 +1,17 @@ +ar +da de +en_GB es +fi fr gl he +id lt nb nl +ps +ru sv +tr diff -Nru deja-dup-7.4/po/lt.po deja-dup-10.0/po/lt.po --- deja-dup-7.4/po/lt.po 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/po/lt.po 2009-06-05 14:52:25.000000000 -0400 @@ -6,15 +6,17 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2008-10-16 11:53-0400\n" -"PO-Revision-Date: 2008-10-23 20:49+0000\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:37+0000\n" "Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n" "Language-Team: Lithuanian <lt@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2008-11-22 15:48+0000\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%" +"100<10 || n%100>=20) ? 1 : 2;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -25,36 +27,73 @@ msgid "Déjà Dup Backup Utility" msgstr "Atsarginių kopijų įrankis „Déjà Dup“" +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "" + #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" +msgid "Amazon S3 Access Key ID" msgstr "" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." msgstr "" #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" +msgid "Backup location" msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." +msgid "Directories not to backup" msgstr "" #: ../data/deja-dup.schemas.in.h:5 -msgid "Local backup location" +msgid "Directories to backup" msgstr "" #: ../data/deja-dup.schemas.in.h:6 -msgid "The Amazon S3 bucket name to use" +msgid "How often to periodically backup" msgstr "" #: ../data/deja-dup.schemas.in.h:7 -msgid "" -"The protocol used for the backup location. Valid values are 's3' or 'file'." +msgid "Location in which to hold the backup files." msgstr "" #: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -62,7 +101,7 @@ "entries are relative to the user's home directory." msgstr "" -#: ../data/deja-dup.schemas.in.h:9 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -71,127 +110,526 @@ "This list takes precedence over the include list." msgstr "" -#: ../data/deja-dup.schemas.in.h:10 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "" -#: ../data/deja-dup.schemas.in.h:11 +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "" -#: ../data/deja-dup.schemas.in.h:12 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." msgstr "" -#: ../data/deja-dup.schemas.in.h:13 +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." msgstr "" -#: ../data/deja-dup.schemas.in.h:14 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" msgstr "" -#: ../src/BackendFile.vala:31 -msgid "Choose backup destination" +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "Jūsų failai sėkmingai atkurti." + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "" + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "_Atstatyti" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "_Failas" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "_Keisti" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "_Pagalba" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "" + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" msgstr "" #. Ask user -#: ../src/BackendS3.vala:79 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "" -#: ../src/BackendS3.vala:80 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." msgstr "" -#: ../src/Backup.vala:30 -msgid "Backing up files..." +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." msgstr "" -#: ../src/Backup.vala:37 -msgid "Could not connect to backup location" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" msgstr "" -#: ../src/ConfigBackend.vala:34 -msgid "Amazon S3" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" msgstr "" -#: ../src/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "Vietinis aplankas" - -#: ../src/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "Pasirinkite aplanką" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" -#: ../src/ConfigList.vala:88 +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 msgid "Home Folder" msgstr "Asmeninis aplankas" -#: ../src/ConfigList.vala:90 +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 msgid "Trash" msgstr "Šiukšlinė" -#: ../src/ConfigList.vala:128 -msgid "Choose folder" -msgstr "Pasirink aplanką" +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "" -#: ../src/ConfigList.vala:162 -msgid "Could not add the folder" +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" msgstr "" -#: ../src/Duplicity.vala:119 -msgid "Error occurred" -msgstr "Įvyko klaida" +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "" -#: ../src/main.vala:83 +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 #, c-format -msgid "Could not display %s" +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" msgstr "" -#. to open display ('cause we passed false above) -#. Translators: The name is a play on the French phrase "déjà vu" meaning -#. "already seen", but with the "vu" replaced with "dup". "Dup" in this -#. context is itself a reference to both the underlying command line tool -#. "duplicity" and the act of duplicating data for backup. As a whole, it -#. may not be very translatable. -#: ../src/main.vala:112 -msgid "Déjà Dup" +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" msgstr "" -#: ../src/MainWindow.vala:121 -msgid "Backup finished" +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" msgstr "" -#: ../src/MainWindow.vala:121 -msgid "Your files were successfully backed up." +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "" -#: ../src/MainWindow.vala:144 -msgid "Restore finished" -msgstr "Atkūrimas baigtas" +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "" -#: ../src/MainWindow.vala:144 -msgid "Your files were successfully restored." -msgstr "Jūsų failai sėkmingai atkurti." +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "" -#: ../src/MainWindow.vala:180 +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "Apie Déjà Dup" -#: ../src/MainWindow.vala:182 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" +" Mantas Kriaučiūnas https://launchpad.net/~mantas\n" +"\n" +"Launchpad Contributions:\n" " Mantas Kriaučiūnas https://launchpad.net/~mantas" -#: ../src/MainWindow.vala:188 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -200,7 +638,7 @@ "any later version." msgstr "" -#: ../src/MainWindow.vala:189 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -212,80 +650,140 @@ "garantijos. Žiūrėkite GNU Bendrąją Viešąją licenciją norėdami sužinoti " "smulkmenas." -#: ../src/MainWindow.vala:190 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." msgstr "" -#: ../src/MainWindow.vala:218 -msgid "_File" -msgstr "_Failas" +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "" -#: ../src/MainWindow.vala:221 -msgid "_Backup" +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" msgstr "" -#: ../src/MainWindow.vala:227 -msgid "_Restore" -msgstr "_Atstatyti" +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" -#: ../src/MainWindow.vala:237 -msgid "_Edit" -msgstr "_Keisti" +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" -#: ../src/MainWindow.vala:244 -msgid "_Help" -msgstr "_Pagalba" +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "Atkuriami failai..." + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "" #. Ask user -#: ../src/Operation.vala:95 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "" -#: ../src/Operation.vala:96 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." msgstr "" -#: ../src/Operation.vala:113 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "" -#: ../src/PreferencesDialog.vala:33 +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "" +msgstr[1] "" + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 msgid "Déjà Dup Preferences" msgstr "Déjà Dup Nustatymai" -#: ../src/PreferencesDialog.vala:49 -msgid "_Backup location:" -msgstr "" - -#: ../src/PreferencesDialog.vala:72 +#: .././po/../preferences/PreferencesDialog.vala:68 #, c-format -msgid "S3 b_ucket:" +msgid "S3 Access Key I_D:" msgstr "" -#: ../src/PreferencesDialog.vala:90 +#: .././po/../preferences/PreferencesDialog.vala:80 #, c-format -msgid "Folder:" -msgstr "Aplankas:" - -#: ../src/PreferencesDialog.vala:107 -msgid "I_nclude:" +msgid "_Folder:" msgstr "" -#: ../src/PreferencesDialog.vala:121 -msgid "E_xclude:" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" msgstr "" -#: ../src/PreferencesDialog.vala:134 -msgid "_Encrypt backup files" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" msgstr "" -#: ../src/Restore.vala:26 -msgid "Restoring files..." -msgstr "Atkuriami failai..." +#~ msgid "Local Folder" +#~ msgstr "Vietinis aplankas" -#: ../src/Restore.vala:33 -msgid "Choose destination for restored files" -msgstr "" +#~ msgid "Select Folder" +#~ msgstr "Pasirinkite aplanką" + +#~ msgid "Choose folder" +#~ msgstr "Pasirink aplanką" + +#~ msgid "Error occurred" +#~ msgstr "Įvyko klaida" + +#~ msgid "Restore finished" +#~ msgstr "Atkūrimas baigtas" + +#~ msgid "Folder:" +#~ msgstr "Aplankas:" diff -Nru deja-dup-7.4/po/Makefile.in.in deja-dup-10.0/po/Makefile.in.in --- deja-dup-7.4/po/Makefile.in.in 2009-01-29 15:48:54.000000000 -0500 +++ deja-dup-10.0/po/Makefile.in.in 2009-06-02 17:48:48.000000000 -0400 @@ -21,7 +21,7 @@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ -SHELL = /bin/sh +SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -56,7 +56,7 @@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) -USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi) +USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) diff -Nru deja-dup-7.4/po/nb.po deja-dup-10.0/po/nb.po --- deja-dup-7.4/po/nb.po 2009-02-02 20:38:12.000000000 -0500 +++ deja-dup-10.0/po/nb.po 2009-06-05 14:52:26.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-01-29 15:51-0500\n" -"PO-Revision-Date: 2009-02-01 21:18+0000\n" -"Last-Translator: Håvard Gulldahl <havard@lurtgjort.no>\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-06-04 13:50+0000\n" +"Last-Translator: Kåre Birger Lapstuen <Unknown>\n" "Language-Team: Norwegian Bokmal <nb@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2009-02-03 01:32+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "Déjà Dup Overvåker" @@ -39,86 +39,60 @@ msgstr "Ta sikkerhetskopi ved faste intervaller" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" -msgstr "Amazon S3 Key ID" +msgid "Amazon S3 Access Key ID" +msgstr "" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" -msgstr "Ikke sikkerhetskopier følgende kataloger" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" -msgstr "Sikkerhetskopier følgende kataloger" +msgid "Backup location" +msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "Mappe på ditt system for å lagre sikkerhetskopier i." +msgid "Directories not to backup" +msgstr "Ikke sikkerhetskopier følgende kataloger" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "Intervall for periodisk sikkerhetskopi" +msgid "Directories to backup" +msgstr "Sikkerhetskopier følgende kataloger" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "Plassering for lokal sikkerhetskopi" +msgid "How often to periodically backup" +msgstr "Intervall for periodisk sikkerhetskopi" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "SSH-katalog" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "SSH-port" - -#: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "SSH-server" - -#: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "SSH-brukernavn" - -#: ../data/deja-dup.schemas.in.h:11 msgid "The Amazon S3 bucket name to use" msgstr "Navn på Amazon S3 bucket" -#: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "Katalog for SSH-tilkoblinger" +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" -#: ../data/deja-dup.schemas.in.h:13 +#: ../data/deja-dup.schemas.in.h:10 msgid "The last time Déjà Dup was run" msgstr "Sist gang Déjà Dup ble brukt" -#: ../data/deja-dup.schemas.in.h:14 +#: ../data/deja-dup.schemas.in.h:11 msgid "The last time Déjà Dup was run, in ISO 8601 format." msgstr "Sist gang Déjà Dup ble brukt (i ISO 8601-format)." -#: ../data/deja-dup.schemas.in.h:15 +#: ../data/deja-dup.schemas.in.h:12 msgid "The number of days between backups." msgstr "Dager mellom sikkerhetskopiering." -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "Hvilken port som brukes ved SSH-tilkoblinger." - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" -"Hvilken protokoll som skal brukes til plasseringen av sikkerhetskopien. Velg " -"mellom 's3', 'file' og 'ssh'." -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "Hvilken server som brukes ved SSH-tilkoblingen." - -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "Hvilket brukernavn som brukes ved SSH-tilkoblingen." - -#: ../data/deja-dup.schemas.in.h:20 +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -131,7 +105,7 @@ "spesielle kataloger. Relative katalognavn er relative til brukerens " "hjemmekatalog." -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -146,20 +120,20 @@ "hjemmekatalog. Denne listen overstyrer listen over kataloger som skal " "sikkerhetskopieres." -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "Type plassering for å lagre sikkerhetskopiene" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "" "Hvorvidt sikkerhetskopieringen skal gå automatisk, med et fast intervall." -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "Hvorvidt sikkerhetskopiene skal krypteres." -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." @@ -167,11 +141,11 @@ "Hvorvidt sikkerhetskopiene skal krypteres i lagerplasseringen. Du anbefales " "på det sterkeste å la denne være 'true'." -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" msgstr "Hvorvidt sikkerhetskopieringen skal gå med faste intervaller" -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." @@ -179,31 +153,31 @@ "Hvilken Amazon S3 bucket sikkerhetskopiene skal oppbevares i. Denne behøver " "ikke å eksistere fra før av. Amazon tillater bare navn som i vertsnavn." -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." msgstr "" -"Din Amazon S3 «Key Identifier». Dette brukes som brukernavnet ditt av S3." -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" msgstr "Vis versjon" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" msgstr "Déjà Dup Applet" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" msgstr "%.1f%% ferdig" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "Sikkerhetskopiering er i ferd med å starte" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." @@ -211,173 +185,221 @@ "En oppsatt sikkerhetskopiering starter straks. Du kan velge å utsette dette, " "eller å avbryte helt." -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "Hopp over sikkerhetskopiering" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" msgstr "Ta sikkerhetskopi senere" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "Passord for kryptering behøves" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "Vennligst oppgi passord for sikkerhetskopiene." -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "«Enter»" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" msgstr "Behøver server-passord" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." msgstr "Vennligst oppgi passord for serveren til sikkerhetskopien." -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" msgstr "En feil skjedde under sikkerhetskopiering" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" msgstr "Kjør på nytt" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" msgstr "Ta sikkerhetskopi _senere" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "_Hopp over sikkerhetskopi" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" msgstr "Kunne ikke åpne innstillinger" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" msgstr "Sikkerhetskopier" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "_Plassering av sikkerhetskopi:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "_Krypter sikkerhetskopier" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" msgstr "Plassering for sikkerhetskopi:" +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "Sikkerhetskopierer" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "Ukjent" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" msgstr "Feil ved sikkerhetskopiering" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" msgstr "Sikkerhetskopiering ferdig" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "Filene dine er sikkerhetskopiert." -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "Sikkerhetskopierer..." -#: ../deja-dup/AssistantOperation.vala:173 +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 msgid "Summary" msgstr "Sammendrag" -#: ../deja-dup/AssistantRestore.vala:71 +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" msgstr "Gjenopprett" -#: ../deja-dup/AssistantRestore.vala:101 +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 msgid "_Date:" msgstr "_Dato:" -#: ../deja-dup/AssistantRestore.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" msgstr "Gjenopprett filer til _opprinnelig plassering" -#: ../deja-dup/AssistantRestore.vala:129 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" msgstr "Gjenopprett til en _spesiell mappe" -#: ../deja-dup/AssistantRestore.vala:139 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" msgstr "Velg plassering for gjenopprettede filer" -#: ../deja-dup/AssistantRestore.vala:143 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" msgstr "Gjenopprett _mappe:" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:227 msgid "Restore date:" msgstr "Gjenopprett dato:" -#: ../deja-dup/AssistantRestore.vala:181 +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" msgstr "Gjenopprett mappe:" -#: ../deja-dup/AssistantRestore.vala:222 +#: .././po/../deja-dup/AssistantRestore.vala:261 msgid "Checking for Backups" msgstr "Leter etter sikkerhetskopier" -#: ../deja-dup/AssistantRestore.vala:233 +#: .././po/../deja-dup/AssistantRestore.vala:272 msgid "Restore from When?" msgstr "Gjenopprett fra når?" -#: ../deja-dup/AssistantRestore.vala:244 +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" msgstr "Gjenopprett til hvor?" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" msgstr "Gjenoppretter" -#: ../deja-dup/AssistantRestore.vala:302 +#: .././po/../deja-dup/AssistantRestore.vala:340 msgid "No backups to restore" msgstr "Ingen sikkerhetskopier å gjenopprette" -#: ../deja-dup/AssistantRestore.vala:404 +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" msgstr "Opprinnelig plassering" -#: ../deja-dup/AssistantRestore.vala:417 +#: .././po/../deja-dup/AssistantRestore.vala:447 msgid "File to restore:" msgid_plural "Files to restore:" msgstr[0] "Fil å gjenopprette:" msgstr[1] "Filer å gjenopprette:" -#: ../deja-dup/AssistantRestore.vala:439 +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" msgstr "Gjenoppretting feilet" -#: ../deja-dup/AssistantRestore.vala:441 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" msgstr "Gjenoppretting er ferdig" -#: ../deja-dup/AssistantRestore.vala:442 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." msgstr "Filene dine er gjenopprettet." -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." msgstr "Gjenoppretter..." -#: ../deja-dup/main.vala:31 +#: .././po/../deja-dup/main.vala:31 msgid "Restore given files" msgstr "Gjenopprett valgte filer" @@ -386,65 +408,68 @@ #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" msgstr "Déjà Dup" -#: ../deja-dup/main.vala:47 +#: .././po/../deja-dup/main.vala:47 msgid "No filenames provided" msgstr "Ingen filnavn er oppgitt" -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 msgid "_Restore" msgstr "_Gjenopprett" -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "_Sikkerhetskopier" -#: ../deja-dup/MainWindow.vala:184 +#: .././po/../deja-dup/MainWindow.vala:176 msgid "_File" msgstr "_Fil" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "_Endre" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "_Hjelp" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" -msgstr "Innhold" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "Få hjelp på _nettet..." -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "_Oversett dette programmet..." -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "_Si fra om et problem..." -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" -msgstr "Velg plassering for sikkerhetskopi" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" -msgstr "Bucket %s hos Amazon S3" +msgid "Folder %s on Amazon S3" +msgstr "" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "Amazon S3-passord" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." @@ -452,34 +477,74 @@ "Oppgi din bruker-ID og hemmelig nøkkel hos Amazon Web Services. Dette er " "ikke det samme som det generelle brukernavnet og passordet hos amazon.com." -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" -msgstr "Ingen brukernavn oppgitt" - -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" -msgstr "Ingen server er angitt" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" -msgstr "%s på ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" -msgstr "SSH-passord" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Hjemmemappe" -#: ../libdeja-dup/BackendSSH.vala:157 +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Søpla" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Daglig" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Ukentlig" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Annenhver uke" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Månedlig" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 #, c-format -msgid "Enter your SSH username and password for server %s." -msgstr "Oppgi SSH-brukernavn og -passord for server %s." +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Hver %d. dag" +msgstr[1] "Hver %d. dag" -#: ../libdeja-dup/DuplicityInfo.vala:117 +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 msgid "Could not run duplicity" msgstr "Kunne ikke starte duplicity" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" @@ -487,7 +552,7 @@ "Kan ikke tolke versjonen av duplicity.\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" @@ -496,15 +561,15 @@ "Kan ikke tolke versjon '%s' av duplicity.\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "Déjà Dup fungerer ikke uten duplicity. Programmet lukkes nå." -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "Versjonen av duplicity er for gammel." -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " @@ -513,51 +578,84 @@ "Déjà Dup behøver minimum versjon %d.%d.%.2d av duplicity, men kunne bare " "finne versjon %d.%d.%.2d" -#: ../libdeja-dup/Duplicity.vala:120 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 msgid "Preparing..." msgstr "Klargjør..." -#: ../libdeja-dup/Duplicity.vala:170 +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." msgstr "Rydder opp..." -#: ../libdeja-dup/Duplicity.vala:215 +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 msgid "Failed with an unknown error." msgstr "Feilet av ukjent årsak." -#: ../libdeja-dup/Duplicity.vala:287 +#: .././po/../libdeja-dup/Duplicity.vala:341 #, c-format msgid "Could not restore '%s': File not found in backup" msgstr "Kunne ikke gjenopprette '%s': Filen finnes ikke i sikkerhetskopi" -#: ../libdeja-dup/Duplicity.vala:301 -msgid "Invalid ID" -msgstr "Ugyldig ID" - -#: ../libdeja-dup/Duplicity.vala:303 -msgid "Invalid secret key" -msgstr "Ugyldig hemmelig nøkkel" +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" -#: ../libdeja-dup/Duplicity.vala:320 +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 msgid "No backup files found" msgstr "Ingen sikkerhetskopier ble funnet" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/libdeja-dup.vala:95 #, c-format msgid "Could not display %s" msgstr "Kunne ikke vise %s" -#: ../libdeja-dup/libdeja-dup.vala:130 +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "Om Déjà Dup" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" -" Håvard Gulldahl https://launchpad.net/~havard" +" Håvard Gulldahl https://launchpad.net/~havard\n" +"\n" +"Launchpad Contributions:\n" +" Håvard Gulldahl https://launchpad.net/~havard\n" +" Kåre Birger Lapstuen https://launchpad.net/~lapstue" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -570,7 +668,7 @@ "som publiseres av Free Software Foundation -- enten i versjon 3 av GPL, " "eller en senere versjon." -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -581,21 +679,57 @@ "NOEN GARANTI, ikke engang implisitt garanti om at det er SALGBART eller " "PASSER ET BESTEMT FORMÅL. Se GNU General Public License for detaljer." -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Ukjent" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" msgstr "" -"Sammen med dette programmet skulle det ha fulgt med en kopi av GNU General " -"Public License (GPL). Hvis det ikke gjorde det, skriv til Free Software " -"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA." -#: ../libdeja-dup/OperationRestore.vala:59 +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "Br_ukernavn:" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 msgid "Restoring files..." msgstr "Gjenoppretter filer..." -#: ../libdeja-dup/OperationRestore.vala:169 +#: .././po/../libdeja-dup/OperationRestore.vala:172 #, c-format msgid "" "Not all files could be restored. Any files that could not be restored may " @@ -604,166 +738,191 @@ "Ikke alle filene kunne gjenopprettes. De filene som ikke er gjenopprettet " "kan fortsatt finnes i %s." -#: ../libdeja-dup/OperationRestore.vala:178 +#: .././po/../libdeja-dup/OperationRestore.vala:181 #, c-format msgid "Could not restore %s: %s" msgstr "Kunne ikke gjenopprette %s: %s" -#: ../libdeja-dup/Operation.vala:53 +#: .././po/../libdeja-dup/Operation.vala:53 msgid "Checking for backups..." msgstr "Ser etter sikkerhetskopier..." #. Ask user -#: ../libdeja-dup/Operation.vala:199 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "Krypterings-passord" -#: ../libdeja-dup/Operation.vala:200 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." msgstr "Før inn passordet som skal brukes til å kryptere sikkerhetskopiene." -#: ../libdeja-dup/Operation.vala:219 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "Déjà Dup sikkerhetsfrase" -#: ../libdeja-dup/Operation.vala:237 +#: .././po/../libdeja-dup/Operation.vala:255 msgid "Another Déjà Dup is already running" msgstr "Déjà Dup kjører allerede" -#: ../nautilus/NautilusExtension.c:95 +#: .././po/../nautilus/NautilusExtension.c:95 msgid "Revert to Previous Version..." msgid_plural "Revert to Previous Versions..." msgstr[0] "Gå tilbake til tidligere versjon..." msgstr[1] "Gå tilbake til tidligere versjoner..." -#: ../nautilus/NautilusExtension.c:99 +#: .././po/../nautilus/NautilusExtension.c:99 msgid "Restore file from backup" msgid_plural "Restore files from backup" msgstr[0] "Gjenopprett fil fra sikkerhetskopi" msgstr[1] "Gjenopprett filer fra sikkerhetskopi" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "Amazon S3" +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Déjà Dup innstillinger" -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "Lokal mappe" - -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" -msgstr "SSH" - -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "Velg mappe" +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "" -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" -msgstr "Hjemmemappe" +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Mappe:" -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "Søpla" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "_Automatisk ta sikkerhetskopi ved faste intervaller" -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "Velg mappe" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "Hvor _ofte sikkerhetskopi skal tas:" -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "Kunne ikke legge til mappe" +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Mappe på ditt system for å lagre sikkerhetskopier i." -#: ../preferences/ConfigList.vala:164 -#, c-format -msgid "%s is already in the list." -msgstr "%s er allerede i lista." +#~ msgid "Local backup location" +#~ msgstr "Plassering for lokal sikkerhetskopi" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" -msgstr "Daglig" +#~ msgid "Choose backup destination" +#~ msgstr "Velg plassering for sikkerhetskopi" -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" -msgstr "Ukentlig" +#~ msgid "Local Folder" +#~ msgstr "Lokal mappe" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "Annenhver uke" +#~ msgid "Select Folder" +#~ msgstr "Velg mappe" -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "Månedlig" +#~ msgid "Choose folder" +#~ msgstr "Velg mappe" -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "Hver %d. dag" -msgstr[1] "Hver %d. dag" +#~ msgid "Could not add the folder" +#~ msgstr "Kunne ikke legge til mappe" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "Déjà Dup innstillinger" +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Sammen med dette programmet skulle det ha fulgt med en kopi av GNU " +#~ "General Public License (GPL). Hvis det ikke gjorde det, skriv til Free " +#~ "Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-" +#~ "1307, USA." -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "_Plassering av sikkerhetskopi:" +#~ msgid "I_nclude:" +#~ msgstr "I_nkluder:" -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "S3 buc_ket:" +#~ msgid "E_xclude:" +#~ msgstr "_Unnta:" -#: ../preferences/PreferencesDialog.vala:91 -#, c-format -msgid "S3 I_D:" -msgstr "S3 I_D:" +#~ msgid "SSH directory" +#~ msgstr "SSH-katalog" -#: ../preferences/PreferencesDialog.vala:110 -#, c-format -msgid "_Folder:" -msgstr "_Mappe:" +#~ msgid "SSH port" +#~ msgstr "SSH-port" -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "Br_ukernavn:" +#~ msgid "SSH server" +#~ msgstr "SSH-server" -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "_Server:" +#~ msgid "SSH username" +#~ msgstr "SSH-brukernavn" -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "_Port:" +#~ msgid "The directory used for SSH connections." +#~ msgstr "Katalog for SSH-tilkoblinger" -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "_Katalog:" +#~ msgid "The port used for SSH connections." +#~ msgstr "Hvilken port som brukes ved SSH-tilkoblinger." -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "I_nkluder:" +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Hvilken protokoll som skal brukes til plasseringen av sikkerhetskopien. " +#~ "Velg mellom 's3', 'file' og 'ssh'." -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "_Unnta:" +#~ msgid "The server used for SSH connections." +#~ msgstr "Hvilken server som brukes ved SSH-tilkoblingen." -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "_Krypter sikkerhetskopier" +#~ msgid "The user used for SSH connections." +#~ msgstr "Hvilket brukernavn som brukes ved SSH-tilkoblingen." -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "_Automatisk ta sikkerhetskopi ved faste intervaller" +#~ msgid "No username specified" +#~ msgstr "Ingen brukernavn oppgitt" -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "Hvor _ofte sikkerhetskopi skal tas:" +#~ msgid "No server specified" +#~ msgstr "Ingen server er angitt" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s på ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH-passord" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Oppgi SSH-brukernavn og -passord for server %s." + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "%s is already in the list." +#~ msgstr "%s er allerede i lista." + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "Contents" +#~ msgstr "Innhold" + +#~ msgid "Default: <guilabel>Weekly</guilabel>." +#~ msgstr "<guilabel>Ukentlig</guilabel>." + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "Amazon S3 Key ID" + +#~ msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#~ msgstr "" +#~ "Din Amazon S3 «Key Identifier». Dette brukes som brukernavnet ditt av S3." + +#~ msgid "Bucket %s on Amazon S3" +#~ msgstr "Bucket %s hos Amazon S3" + +#~ msgid "Invalid ID" +#~ msgstr "Ugyldig ID" + +#~ msgid "Invalid secret key" +#~ msgstr "Ugyldig hemmelig nøkkel" + +#~ msgid "S3 buc_ket:" +#~ msgstr "S3 buc_ket:" + +#~ msgid "S3 I_D:" +#~ msgstr "S3 I_D:" + +#~ msgid "_Directory:" +#~ msgstr "_Katalog:" diff -Nru deja-dup-7.4/po/nl.po deja-dup-10.0/po/nl.po --- deja-dup-7.4/po/nl.po 2009-02-11 21:03:46.000000000 -0500 +++ deja-dup-10.0/po/nl.po 2009-06-05 14:52:26.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-02-02 20:47-0500\n" -"PO-Revision-Date: 2009-02-07 03:55+0000\n" -"Last-Translator: stani <spe.stani.be@gmail.com>\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:37+0000\n" +"Last-Translator: Michael Terry <michael.terry@canonical.com>\n" "Language-Team: Dutch <nl@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2009-02-12 01:56+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "Déjà Dup Monitor" @@ -39,84 +39,60 @@ msgstr "Reservekopie met regelmatige intervallen plannen" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" -msgstr "Amazon S3 Sleutel ID" +msgid "Amazon S3 Access Key ID" +msgstr "Amazon S3 toegangs code ID" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" -msgstr "Mappen om geen reservekopie van te maken" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" -msgstr "Mappen om reservekopiën van te maken" +msgid "Backup location" +msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "Map op Uw systeem om de reservekopiën te bewaren" +msgid "Directories not to backup" +msgstr "Mappen om geen reservekopie van te maken" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "Hoe vaak periodiek reservekopiën maken" +msgid "Directories to backup" +msgstr "Mappen om reservekopiën van te maken" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "Plaatselijke reservekopielocatie" +msgid "How often to periodically backup" +msgstr "Hoe vaak periodiek reservekopiën maken" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "SSH map" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "SSH poort" +msgid "The Amazon S3 bucket name to use" +msgstr "De Amazon S3 emmer naam om te gebruiken" #: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "SSH server" +msgid "The Amazon S3 folder" +msgstr "De Amazon S3 map" #: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "SSH gebruikersnaam" +msgid "The last time Déjà Dup was run" +msgstr "De laatste keer dat Déjà Dup is gebruikt" #: ../data/deja-dup.schemas.in.h:11 -msgid "The Amazon S3 bucket name to use" -msgstr "" +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "De laatste keer dat Déjà Dup in gebruikt in ISO 8601 formaat." #: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "" +msgid "The number of days between backups." +msgstr "Het aantal dagen tussen backups." #: ../data/deja-dup.schemas.in.h:13 -msgid "The last time Déjà Dup was run" +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" #: ../data/deja-dup.schemas.in.h:14 -msgid "The last time Déjà Dup was run, in ISO 8601 format." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:15 -msgid "The number of days between backups." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "" - -#: ../data/deja-dup.schemas.in.h:20 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -124,7 +100,7 @@ "entries are relative to the user's home directory." msgstr "" -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -133,230 +109,279 @@ "This list takes precedence over the include list." msgstr "" -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" -msgstr "" +msgstr "Type locatie om backup op te slaan" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "" -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" -msgstr "" +msgstr "Of om uw backup te coderen" -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." msgstr "" -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" -msgstr "" +msgstr "Of een periodiek backup" -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." msgstr "" -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." msgstr "" -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" -msgstr "" +msgstr "Toon versie" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" -msgstr "" +msgstr "Déjà Dup Applet" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" -msgstr "" +msgstr "%.1f%% compleet" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." msgstr "" -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" -msgstr "" +msgstr "Backup later" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "" -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" -msgstr "" +msgstr "Server paswoord nodig" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." -msgstr "" +msgstr "Gelieve uw serverwachtwoord voor uw backup in te voeren." -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" -msgstr "" +msgstr "Backup fout kwam voor" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" -msgstr "" +msgstr "Herhaal" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" -msgstr "" +msgstr "Backup _Later" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" -msgstr "" +msgstr "Kan voorkeuren niet openen" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" +msgstr "Backup" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" msgstr "" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" +msgstr "Backup locatie:" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" msgstr "" #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" -msgstr "" +msgstr "Backup is niet gelukt" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" -msgstr "" +msgstr "Backup is klaar" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "" -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "" -#: ../deja-dup/AssistantOperation.vala:173 -msgid "Summary" +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" msgstr "" -#: ../deja-dup/AssistantRestore.vala:71 +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "Samenvatting" + +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" +msgstr "Herstel" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" msgstr "" -#: ../deja-dup/AssistantRestore.vala:101 +#: .././po/../deja-dup/AssistantRestore.vala:138 msgid "_Date:" msgstr "" -#: ../deja-dup/AssistantRestore.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" -msgstr "" +msgstr "Herstel bestanden naar de originele locatie" -#: ../deja-dup/AssistantRestore.vala:129 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" -msgstr "" +msgstr "Herstel naar een specifieke map" -#: ../deja-dup/AssistantRestore.vala:139 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" -msgstr "" +msgstr "Kies locatie voor herstelde bestanden" -#: ../deja-dup/AssistantRestore.vala:143 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" -msgstr "" +msgstr "Herstel _map:" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:227 msgid "Restore date:" -msgstr "" +msgstr "Herstel datum:" -#: ../deja-dup/AssistantRestore.vala:181 +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" -msgstr "" +msgstr "Herstel map:" -#: ../deja-dup/AssistantRestore.vala:222 +#: .././po/../deja-dup/AssistantRestore.vala:261 msgid "Checking for Backups" -msgstr "" +msgstr "Controleren op backups" -#: ../deja-dup/AssistantRestore.vala:233 +#: .././po/../deja-dup/AssistantRestore.vala:272 msgid "Restore from When?" -msgstr "" +msgstr "Herstel van wanneer?" -#: ../deja-dup/AssistantRestore.vala:244 +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" -msgstr "" +msgstr "Waar naartoe herstellen?" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" -msgstr "" +msgstr "Herstellen" -#: ../deja-dup/AssistantRestore.vala:302 +#: .././po/../deja-dup/AssistantRestore.vala:340 msgid "No backups to restore" -msgstr "" +msgstr "Geen backups om te herstellen" -#: ../deja-dup/AssistantRestore.vala:404 +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" -msgstr "" +msgstr "Originele locatie" -#: ../deja-dup/AssistantRestore.vala:417 +#: .././po/../deja-dup/AssistantRestore.vala:447 msgid "File to restore:" msgid_plural "Files to restore:" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Bestand om te herstellen:" +msgstr[1] "Bestanden om te herstellen:" -#: ../deja-dup/AssistantRestore.vala:439 +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" -msgstr "" +msgstr "Herstellen mislukt" -#: ../deja-dup/AssistantRestore.vala:441 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" -msgstr "" +msgstr "Herstel is klaar" -#: ../deja-dup/AssistantRestore.vala:442 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." -msgstr "" +msgstr "Uw bestanden zijn succesvol hersteld." -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." -msgstr "" +msgstr "Herstellen..." -#: ../deja-dup/main.vala:31 +#: .././po/../deja-dup/main.vala:31 msgid "Restore given files" msgstr "" @@ -365,170 +390,255 @@ #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" -msgstr "" +msgstr "Déjà Dup" -#: ../deja-dup/main.vala:47 +#: .././po/../deja-dup/main.vala:47 msgid "No filenames provided" -msgstr "" +msgstr "Geen bestandsnamen verstrekt" -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 msgid "_Restore" msgstr "" -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "" -#: ../deja-dup/MainWindow.vala:184 +#: .././po/../deja-dup/MainWindow.vala:176 msgid "_File" msgstr "" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "" -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "" -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "" -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" -msgstr "" +msgid "Folder %s on Amazon S3" +msgstr "Map %s op Amazon S3" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" -msgstr "" +msgstr "Amazon S3 paswoord" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." msgstr "" -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." msgstr "" -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" msgstr "" -#: ../libdeja-dup/BackendSSH.vala:157 -#, c-format -msgid "Enter your SSH username and password for server %s." +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Home map" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Prullenbak" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:117 -msgid "Could not run duplicity" +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Dagelijks" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Wekelijks" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Iedere twee weken" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Maandelijks" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Iedere %d dag" +msgstr[1] "Iedere %d dagen" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "Kon geen dupliciteit in werking stellen" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" msgstr "" +"Kon dupliciteits versie niet begrijpen.\n" +"\n" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" "\n" msgstr "" +"Kon dupliciteits versie niet begrijpen %s.\n" +"\n" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "" -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " "version %d.%d.%.2d" msgstr "" -#: ../libdeja-dup/Duplicity.vala:120 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 msgid "Preparing..." -msgstr "" +msgstr "Voorbereiden..." -#: ../libdeja-dup/Duplicity.vala:170 +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." -msgstr "" +msgstr "Opschonen..." -#: ../libdeja-dup/Duplicity.vala:215 +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 msgid "Failed with an unknown error." msgstr "" -#: ../libdeja-dup/Duplicity.vala:287 +#: .././po/../libdeja-dup/Duplicity.vala:341 #, c-format msgid "Could not restore '%s': File not found in backup" +msgstr "Kan '%s' niet herstellen: Bestand niet gevonden in de backup" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "Ongeldig ID." + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "Ongeldige geheime code." + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." msgstr "" -#: ../libdeja-dup/Duplicity.vala:301 -msgid "Invalid ID" +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." msgstr "" -#: ../libdeja-dup/Duplicity.vala:303 -msgid "Invalid secret key" +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." msgstr "" -#: ../libdeja-dup/Duplicity.vala:320 -msgid "No backup files found" +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/Duplicity.vala:379 #, c-format -msgid "Could not display %s" +msgid "Error writing file '%s'." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:130 -msgid "About Déjà Dup" +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "Geen backup bestanden gevonden" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "Kan %s niet weergeven" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "Over Déjà Dup" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" -" stani https://launchpad.net/~stani" +" stani https://launchpad.net/~stani\n" +"\n" +"Launchpad Contributions:\n" +" stani https://launchpad.net/~stani\n" +" ubby https://launchpad.net/~kostas-sytske\n" +"\n" +"Launchpad Contributions:\n" +" Michael Terry https://launchpad.net/~mterry\n" +" stani https://launchpad.net/~stani\n" +" ubby https://launchpad.net/~kostas-sytske" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -537,7 +647,7 @@ "any later version." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -545,184 +655,201 @@ "more details." msgstr "" -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." msgstr "" -#: ../libdeja-dup/OperationRestore.vala:59 -msgid "Restoring files..." +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Onbekend" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" msgstr "" -#: ../libdeja-dup/OperationRestore.vala:169 +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "Bestanden herstellen..." + +#: .././po/../libdeja-dup/OperationRestore.vala:172 #, c-format msgid "" "Not all files could be restored. Any files that could not be restored may " "still be found in %s." msgstr "" -#: ../libdeja-dup/OperationRestore.vala:178 +#: .././po/../libdeja-dup/OperationRestore.vala:181 #, c-format msgid "Could not restore %s: %s" -msgstr "" +msgstr "Kan %s: %s niet herstellen" -#: ../libdeja-dup/Operation.vala:53 +#: .././po/../libdeja-dup/Operation.vala:53 msgid "Checking for backups..." -msgstr "" +msgstr "Controleren op backups..." #. Ask user -#: ../libdeja-dup/Operation.vala:199 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "" -#: ../libdeja-dup/Operation.vala:200 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." msgstr "" -#: ../libdeja-dup/Operation.vala:219 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "" -#: ../libdeja-dup/Operation.vala:237 +#: .././po/../libdeja-dup/Operation.vala:255 msgid "Another Déjà Dup is already running" msgstr "" -#: ../nautilus/NautilusExtension.c:95 +#: .././po/../nautilus/NautilusExtension.c:95 msgid "Revert to Previous Version..." msgid_plural "Revert to Previous Versions..." msgstr[0] "" msgstr[1] "" -#: ../nautilus/NautilusExtension.c:99 +#: .././po/../nautilus/NautilusExtension.c:99 msgid "Restore file from backup" msgid_plural "Restore files from backup" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Herstel bestand van backup" +msgstr[1] "Herstel bestanden van backup" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "" +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Déjà Dup voorkeuren" -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" msgstr "" -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" msgstr "" -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" msgstr "" -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" msgstr "" -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "" +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Map op Uw systeem om de reservekopiën te bewaren" -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "" +#~ msgid "Local backup location" +#~ msgstr "Plaatselijke reservekopielocatie" -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "" +#~ msgid "Choose backup destination" +#~ msgstr "Kies backup bestemming" -#: ../preferences/ConfigList.vala:164 -#, c-format -msgid "%s is already in the list." -msgstr "" +#~ msgid "Local Folder" +#~ msgstr "Lokale map" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" -msgstr "" +#~ msgid "Select Folder" +#~ msgstr "Selecteer map" -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" -msgstr "" +#~ msgid "Choose folder" +#~ msgstr "Kies map" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "" +#~ msgid "Could not add the folder" +#~ msgstr "Kan de map niet toevoegen" -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "" +#~ msgid "SSH directory" +#~ msgstr "SSH map" -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "" -msgstr[1] "" +#~ msgid "SSH port" +#~ msgstr "SSH poort" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "" +#~ msgid "SSH server" +#~ msgstr "SSH server" -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "" +#~ msgid "SSH username" +#~ msgstr "SSH gebruikersnaam" -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "" +#~ msgid "The directory used for SSH connections." +#~ msgstr "De folder die voor SSH verbindingen wordt gebruikt." -#: ../preferences/PreferencesDialog.vala:91 -#, c-format -msgid "S3 I_D:" -msgstr "" +#~ msgid "The port used for SSH connections." +#~ msgstr "De poort die voor SSH verbindingen wordt gebruikt." -#: ../preferences/PreferencesDialog.vala:110 -#, c-format -msgid "_Folder:" -msgstr "" +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Het protocol dat voor de backup locatie wordt gebruikt. De geldige " +#~ "waarden zijn ' s3' , ' file' , of ' ssh'." -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "" +#~ msgid "The server used for SSH connections." +#~ msgstr "De server die voor SSH verbindingen wordt gebruikt." -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "" +#~ msgid "The user used for SSH connections." +#~ msgstr "De gebruiker die voor SSH verbindingen wordt gebruikt." -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "" +#~ msgid "No username specified" +#~ msgstr "Geen gespecificeerde gebruikersnaam" -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "" +#~ msgid "No server specified" +#~ msgstr "Geen gespecificeerde server" -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "" +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s op ssh://%s@%s:%d" -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "" +#~ msgid "SSH Password" +#~ msgstr "SSH paswoord?" -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "" +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Vul uw SSH gebruikersnaam en paswoord in voor server %s." -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "" +#~ msgid "SSH" +#~ msgstr "SSH" -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "" +#~ msgid "%s is already in the list." +#~ msgstr "%s is al in de lijst." + +#~ msgid "Contents" +#~ msgstr "Inhoud" + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "Amazon S3 Sleutel ID" diff -Nru deja-dup-7.4/po/POTFILES.in deja-dup-10.0/po/POTFILES.in --- deja-dup-7.4/po/POTFILES.in 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/po/POTFILES.in 2009-06-02 17:48:48.000000000 -0400 @@ -13,12 +13,25 @@ deja-dup/MainWindow.vala libdeja-dup/BackendFile.vala libdeja-dup/BackendS3.vala -libdeja-dup/BackendSSH.vala libdeja-dup/Backend.vala +libdeja-dup/ButtonConnect.vala +libdeja-dup/ConfigBool.vala +libdeja-dup/ConfigChoice.vala +libdeja-dup/ConfigEntry.vala +libdeja-dup/ConfigLabel.vala +libdeja-dup/ConfigLabelBool.vala +libdeja-dup/ConfigLabelList.vala +libdeja-dup/ConfigLabelLocation.vala +libdeja-dup/ConfigList.vala +libdeja-dup/ConfigLocation.vala +libdeja-dup/ConfigNumber.vala +libdeja-dup/ConfigPeriod.vala +libdeja-dup/ConfigWidget.vala libdeja-dup/DuplicityInfo.vala libdeja-dup/DuplicityInstance.vala libdeja-dup/Duplicity.vala libdeja-dup/libdeja-dup.vala +libdeja-dup/mountoperation.c libdeja-dup/OperationBackup.vala libdeja-dup/OperationRestore.vala libdeja-dup/OperationStatus.vala @@ -28,15 +41,6 @@ libdeja-dup/RecursiveOp.vala monitor/monitor.vala nautilus/NautilusExtension.c -preferences/ConfigBackend.vala -preferences/ConfigBool.vala -preferences/ConfigChoice.vala -preferences/ConfigEntry.vala -preferences/ConfigFolder.vala -preferences/ConfigList.vala -preferences/ConfigNumber.vala -preferences/ConfigPeriod.vala -preferences/ConfigWidget.vala preferences/PreferencesDialog.vala preferences/preferences.vala diff -Nru deja-dup-7.4/po/POTFILES.skip deja-dup-10.0/po/POTFILES.skip --- deja-dup-7.4/po/POTFILES.skip 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/po/POTFILES.skip 2009-06-02 17:48:47.000000000 -0400 @@ -7,8 +7,20 @@ deja-dup/MainWindow.c libdeja-dup/BackendFile.c libdeja-dup/BackendS3.c -libdeja-dup/BackendSSH.c libdeja-dup/Backend.c +libdeja-dup/ButtonConnect.c +libdeja-dup/ConfigBool.c +libdeja-dup/ConfigChoice.c +libdeja-dup/ConfigEntry.c +libdeja-dup/ConfigLabel.c +libdeja-dup/ConfigLabelBool.c +libdeja-dup/ConfigLabelList.c +libdeja-dup/ConfigLabelLocation.c +libdeja-dup/ConfigList.c +libdeja-dup/ConfigLocation.c +libdeja-dup/ConfigNumber.c +libdeja-dup/ConfigPeriod.c +libdeja-dup/ConfigWidget.c libdeja-dup/DuplicityInfo.c libdeja-dup/DuplicityInstance.c libdeja-dup/Duplicity.c @@ -21,15 +33,6 @@ libdeja-dup/RecursiveMove.c libdeja-dup/RecursiveOp.vala monitor/monitor.c -preferences/ConfigBackend.c -preferences/ConfigBool.c -preferences/ConfigChoice.c -preferences/ConfigEntry.c -preferences/ConfigFolder.c -preferences/ConfigList.c -preferences/ConfigNumber.c -preferences/ConfigPeriod.c -preferences/ConfigWidget.c preferences/PreferencesDialog.c preferences/preferences.c diff -Nru deja-dup-7.4/po/ps.po deja-dup-10.0/po/ps.po --- deja-dup-7.4/po/ps.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/ps.po 2009-06-05 14:52:26.000000000 -0400 @@ -0,0 +1,767 @@ +# Pashto translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:37+0000\n" +"Last-Translator: Michael Terry <michael.terry@canonical.com>\n" +"Language-Team: Pashto <ps@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n!=1;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "خپل دوتنونه شاتړ کړي" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "" + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "" + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Pashto https://launchpad.net/~pashto\n" +"\n" +"Launchpad Contributions:\n" +" Michael Terry https://launchpad.net/~mterry\n" +" Pashto https://launchpad.net/~pashto" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "" +msgstr[1] "" + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "" diff -Nru deja-dup-7.4/po/ru.po deja-dup-10.0/po/ru.po --- deja-dup-7.4/po/ru.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/ru.po 2009-06-05 14:52:26.000000000 -0400 @@ -0,0 +1,1250 @@ +# Russian translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-06-03 12:33+0000\n" +"Last-Translator: Sergei Sedov <sedov@webmail.perm.ru>\n" +"Language-Team: Russian <ru@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "Резервное копирование ваших файлов" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "Утилита резервного копирования Déjà Dup" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "Монитор Déjà Dup" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "Запланированноые резервное копирование с регулярными интервалами" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "Ключ доступа ID Amazon S3" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "Местоположение резервных копий" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "Каталоги, которые не надо сохранять" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "Каталоги, которые надо сохранить" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "С какой периодичностью делать архивные копии" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "Местоположение в котором хранятся файлы резервных копий" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "Каталог на Amazon S3" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "Время, когда Déjà Dup запускалось в последний раз" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "Время, когда Déjà Dup запускалось в последний раз, в формате ISO 8601" + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "Количество дней между резервными копиями" + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "Следует ли автоматически создавать резервные копии по расписанию." + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "Следует ли шифровать резервную копию" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" +"Следует ли шифровать ваши файлы резервных копий? Настоятельно рекомендуется " +"оставить как 'true'." + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "Выполнять ли периодическое резервное копирование" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "Показать версию" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "Апплет Déjà Dup" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "%.1f%% завершено" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "Готовится резервное копирование" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" +"Скоро начнётся ранее запланированное резервное копирование. Вы можете " +"отложить его или отменить совсем." + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "Пропустить резервное копирование" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "Выполнить резервное копирование позже" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "Требуется пароль для шифрования" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "" +"Пожалуйста, введите пароль шифрования для ваших файлов резервных копий." + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "Enter" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "Необходим пароль сервера" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "Пожалуйста, введите пароль сервера" + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "Произошла ошибка резервного копирования" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "Запустить повторно" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "Выполнить резервное копирование _позже" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "_Пропустить резервное копирование" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "Не могу открыть настройки" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "Резервная копия" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "_Местоположение резервной копии:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "_Зашифровать копируемые файлы" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "В_ключить файлы в каталоги:" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "И_сключить файлы из каталогов:" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "Параметры" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "Местоположение резервных копий" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "Зашифрованные:" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "Резервное сохранение" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "Резервное копирование не удалось" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "Резервное копирование завершено" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "Ваши файлы были успешно сохранены" + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "Резервное копирование..." + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "Сводная информация" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "Восстановить" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "_Дата:" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "Восстановить файлы на их прежнее местоположение" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "Восстановить в _указанный каталог" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "Выберите местоположение для восстановленных файлов" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "Восстановить в _каталог:" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "Дата восстановления:" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "Восстановить в каталог:" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "Проверяю резервные архивы" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "Восстановить с какой даты?" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "Восстановить куда ?" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "Идёт восстановление" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "Нет резервных копий для восстановления" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "Первоначальное местоположение" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "Файл для восстановления:" +msgstr[1] "Файлы для восстановления:" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "Восстановление не удалось" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "Восстановление завершено" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "Ваши файлы были успешно восстановлены" + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "Идёт восстановление..." + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "Восстановить данные файлы" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "Déjà Dup" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "_Восстановление" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "_Резервное копирование" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "_Файл" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "_Настройки" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "_Помощь" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "Помощь в интернете..." + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "_Перевести это приложение..." + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "_Сообщить об ошибке..." + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "Каталог %s на Amazon S3" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "Пароль на Amazon S3" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" +"Введите свои пользовательский ID и секетный ключ на Amazon Web Services. Он " +"не должен соответствовать вашему логину и паролю на amazon.com" + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "Да" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "Нет" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Домашний каталог" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Корзина" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "Выберите каталоги" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Ежедневно" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Еженедельно" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Каждые две недели" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Ежемесячно" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "Каждый %d день" +msgstr[1] "Каждые %d дней" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "Не могу запустить duplicity" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" +"Не смог распознать версию duplicity.\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" +"Не смог распознать версию duplicity '%s'.\n" +"\n" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "Déjà Dup не может работать без duplicity. Завершение программы." + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "Версия Duplicity слишком старая" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" +"Déjà Dup требуется по меньшей мере версия %d.%d.%.2d duplicity, но найдена " +"только версия %d.%d.%.2d" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "Подготовка..." + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "Очистка..." + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "Не удалось (неизвестная ошибка)" + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "" +"Не получилось восстановить '%s': файл не найден в архиве резервного " +"копирования" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "Неправильный ID." + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "Не правильный секретный ключ." + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "Ваш аккаунт на службе Amazon не имеет подписки на сервис S3." + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "Не правильный пароль шифрования" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "Ошибка чтения файла '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "Ошибка записи файла '%s'." + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "Не осталось места в %s" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "Резервных копий не обнаружено" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "Не могу отобразить %s" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "О Déjà Dup" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" Sergei Sedov https://launchpad.net/~serg-sedov\n" +"\n" +"Launchpad Contributions:\n" +" Michael Terry https://launchpad.net/~mterry\n" +" Sergei Sedov https://launchpad.net/~serg-sedov\n" +"\n" +"Launchpad Contributions:\n" +" Michael Terry https://launchpad.net/~mterry\n" +" Sergei Sedov https://launchpad.net/~serg-sedov" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" +"Эта программа является свободным ПО; вы можете передавать ее и/или " +"модифицировать в соответствии с условиями GNU General Public License версии " +"3 или, на ваш выбор, более поздней как она публикуется фондом свободного " +"программного обеспечения FSF;" + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" +"Эта программа распространяется в надежде, что она будет полезна, но БЕЗ " +"КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, даже без подразумеваемой КОММЕРЧЕСКОЙ ЦЕННОСТИ " +"или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для дополнительной информации " +"обратитесь к лицензии GNU General Public License." + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Неизвестно" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "_Имя пользователя:" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "Восстановление файлов..." + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" +"Не все файлы могут быть восстановлены. Любые файлы, которые не удалось " +"восстановить могут быть найдены в %s." + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "Не смог восстановить %s: %s" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "Проверяю резервные копии..." + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "Пароль шифрования" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "Введите пароль для шифрования резервных копий файлов." + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "Уже запущена одна копия Déjà Dup" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "Вернуться к предыдущей версии..." +msgstr[1] "Вернуться к предыдущим версиям..." + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "Восстановить файл из резервной копии" +msgstr[1] "Восстановить файлы из резервной копии" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Настройки Déjà Dup" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "Ключ доступа I_D S3:" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Каталог:" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "_Автоматическое резервное копирование по расписанию" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "Как _часто выполнять копирование:" + +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "" +#~ "Каталоги на вашем компьютере, в которых необходимо хранить резервные " +#~ "копии." + +#~ msgid "Choose backup destination" +#~ msgstr "Выберите местоположение резервной копии" + +#~ msgid "Local Folder" +#~ msgstr "Локальный каталог" + +#~ msgid "Select Folder" +#~ msgstr "Выбрать каталог" + +#~ msgid "Choose folder" +#~ msgstr "Выбрать каталог" + +#~ msgid "Could not add the folder" +#~ msgstr "Не смог добавить каталог" + +#~ msgid "I_nclude:" +#~ msgstr "В_ключить:" + +#~ msgid "E_xclude:" +#~ msgstr "_Исключить:" + +#~ msgid "SSH directory" +#~ msgstr "Каталог SSH" + +#~ msgid "SSH port" +#~ msgstr "Порт SSH" + +#~ msgid "SSH server" +#~ msgstr "Сервер SSH" + +#~ msgid "SSH username" +#~ msgstr "Имя пользователя SSH" + +#~ msgid "The server used for SSH connections." +#~ msgstr "Сервер, используемый для SSH соединений." + +#~ msgid "The user used for SSH connections." +#~ msgstr "Пользователь, используемый для SSH соединений." + +#~ msgid "No username specified" +#~ msgstr "Имя пользователя не указано" + +#~ msgid "No server specified" +#~ msgstr "Не указан сервер" + +#~ msgid "SSH Password" +#~ msgstr "Пароль SSH" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Введите ваше имя пользователя и пароль для SSH сервера %s." + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "%s is already in the list." +#~ msgstr "%s уже в списке." + +#~ msgid "_Server:" +#~ msgstr "_Сервер:" + +#~ msgid "_Port:" +#~ msgstr "_Порт:" + +#~ msgid "deja-dup" +#~ msgstr "deja-dup" + +#~ msgid "%DATE%" +#~ msgstr "%DATE%" + +#~ msgid "USER COMMANDS" +#~ msgstr "КОММАНДЫ ПОЛЬЗОВАТЕЛЯ" + +#~ msgid "NAME" +#~ msgstr "ИМЯ" + +#~ msgid "deja-dup - backup your data" +#~ msgstr "deja-dup - резервное сохранение ваших данных" + +#~ msgid "SYNOPSIS" +#~ msgstr "РЕЗЮМЕ" + +#~ msgid "DESCRIPTION" +#~ msgstr "ОПИСАНИЕ" + +#~ msgid "OPTIONS" +#~ msgstr "ОПЦИИ" + +#~ msgid "Display usage information" +#~ msgstr "Отобразить пользовательскую информацию" + +#~ msgid "--version" +#~ msgstr "--версия" + +#~ msgid "Prints program name and version" +#~ msgstr "Отображает имя и версию программы" + +#~ msgid "Restores only the specified files" +#~ msgstr "Восстанавливает только указанные файлы" + +#~ msgid "ENVIRONMENT" +#~ msgstr "ОКРУЖЕНИЕ" + +#~ msgid "DEJA_DUP_DEBUG" +#~ msgstr "DEJA_DUP_DEBUG" + +#~ msgid "SEE ALSO" +#~ msgstr "СМОТРИ ТАКЖЕ" + +#~ msgid "deja-dup-applet" +#~ msgstr "Апплет deja-dup" + +#~ msgid "deja-dup-applet - backup your data" +#~ msgstr "Апплет deja-dup - резервное сохранение ваших данных" + +#~ msgid "" +#~ "deja-dup-applet is a notification applet that carries out a scheuduled " +#~ "backup. It is usually started automatically by B<deja-dup-monitor>(1)." +#~ msgstr "" +#~ "Апплет deja-dup - это апплет апплет уведомляющий о запланированном " +#~ "резервном копировании. Обычно он запускается автоматически B<deja-dup-" +#~ "monitor>(1)." + +#~ msgid "deja-dup-monitor" +#~ msgstr "Монитор deja-dup" + +#~ msgid "deja-dup-monitor - backup your data" +#~ msgstr "Монитор deja-dup - резервное сохранение ваших данных" + +#~ msgid "" +#~ "deja-dup-monitor is a session daemon that handles scheduled backups. It " +#~ "is started by default whenever a user logs in. When a scheduled backup " +#~ "is due, it starts B<deja-dup-applet>(1)." +#~ msgstr "" +#~ "Монитор deja-dup - это демон обслуживающий запланированные резервные " +#~ "копирования данных. Он запускается автоматически при входе пользователя в " +#~ "систему. При начале запланированного резервного копирования он запускает " +#~ "апплет B<deja-dup>(1)." + +#~ msgid "deja-dup-preferences" +#~ msgstr "Настройки deja-dup" + +#~ msgid "deja-dup-preferences - backup your data" +#~ msgstr "Настройки deja-dup - резервное сохранение ваших данных" + +#~ msgid "<application>Déjà Dup</application> Manual" +#~ msgstr "Справка <application>Déjà Dup</application>" + +#~ msgid "<application>Déjà Dup</application> is a simple backup utility." +#~ msgstr "" +#~ "Приложение <application>Déjà Dup</application> - это простая утилита для " +#~ "резервного сохранения данных." + +#~ msgid " <email>mike@mterry.name</email> " +#~ msgstr " <email>mike@mterry.name</email> " + +#~ msgid "%VERSION%" +#~ msgstr "%VERSION%" + +#~ msgid "Michael Terry <email>mike@mterry.name</email>" +#~ msgstr "Michael Terry <email>mike@mterry.name</email>" + +#~ msgid "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +#~ "\"><application>Déjà Dup</application> Administrators</ulink>" +#~ msgstr "" +#~ "<ulink url=\"http://launchpad.net/~deja-dup-team\" type=\"http" +#~ "\"><application>Déjà Dup</application> Администраторы</ulink>" + +#~ msgid "This manual describes version %VERSION% of Déjà Dup." +#~ msgstr "Это справка Déjà Dup версии %VERSION%" + +#~ msgid "Feedback" +#~ msgstr "Обратная связь" + +#~ msgid "Introduction" +#~ msgstr "Вступление" + +#~ msgid "" +#~ "<application>Déjà Dup</application> is a simple backup program. It hides " +#~ "the complexity of doing backups the 'right way' (encrypted, off-site, and " +#~ "regular) and uses duplicity as the backend." +#~ msgstr "" +#~ "<application>Déjà Dup</application> - это простая программа для " +#~ "резервного копирования ваших данных. За ней скрывается создание резервных " +#~ "копий таких, какими они в идеале должны быть (зашифрованными, храниться в " +#~ "удалённых хранилищах, выполняться регулярно). Программа использует в " +#~ "качестве основы duplicity." + +#~ msgid "<application>Déjà Dup</application> provides the following features:" +#~ msgstr "" +#~ "<application>Déjà Dup</application> обладает следующими возможностями:" + +#~ msgid "Securely encrypts and compresses your data." +#~ msgstr "Шифрование и архивирование ваших данных." + +#~ msgid "" +#~ "Incrementally backs up, letting you restore from any particular backup." +#~ msgstr "" +#~ "Инкрементальное резервное копирование, позволяющее восстанавливать файлы " +#~ "из отдельных резервных копий." + +#~ msgid "Schedules regular backups." +#~ msgstr "Автоматическое резервное копирование по расписанию." + +#~ msgid "Integrates well into your GNOME desktop." +#~ msgstr "Хорошо интегрировано в оболочку рабочего стола GNOME" + +#~ msgid "Getting Started" +#~ msgstr "Приступая к работе" + +#~ msgid "Starting <application>Déjà Dup</application>" +#~ msgstr "Запуск <application>Déjà Dup</application>" + +#~ msgid "" +#~ "You can start <application>Déjà Dup</application> in the following ways:" +#~ msgstr "" +#~ "Вы можете запустить <application>Déjà Dup</application> следующими " +#~ "способами:" + +#~ msgid "<guimenu>Applications</guimenu> menu" +#~ msgstr "Меню <guimenu>Приложения</guimenu>" + +#~ msgid "" +#~ "Choose <menuchoice><guisubmenu>Accessories</guisubmenu><guimenuitem>Déjà " +#~ "Dup Backup Utility</guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Выберите <menuchoice><guisubmenu>Стандартные</" +#~ "guisubmenu><guimenuitem>Утилита резервного копирования Déjà Dup </" +#~ "guimenuitem></menuchoice>." + +#~ msgid "Command line" +#~ msgstr "Командная строка" + +#~ msgid "" +#~ "To start <application>Déjà Dup</application> from a command line, type " +#~ "the following command, then press <keycap>Return</keycap>:" +#~ msgstr "" +#~ "Для запуска <application>Déjà Dup</application> из командной строки " +#~ "наберите следующую команду, затем нажмите <keycap>Enter</keycap>:" + +#~ msgid "<command>deja-dup</command>" +#~ msgstr "<command>deja-dup</command>" + +#~ msgid "Backing Up" +#~ msgstr "Резервное сохранение" + +#~ msgid "" +#~ "To backup, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Backup</" +#~ "guimenuitem></menuchoice>. Or press the <guibutton>Backup</guibutton> " +#~ "button on the main window." +#~ msgstr "" +#~ "Для того, чтобы выполнить резервное копирование данных выберите " +#~ "<menuchoice><guimenu>Файл</guimenu><guimenuitem>Резервное копирование</" +#~ "guimenuitem></menuchoice> или нажмите кнопку <guibutton>Резервное " +#~ "копирование</guibutton> в главном окне программы." + +#~ msgid "" +#~ "To restore, choose <menuchoice><guimenu>File</" +#~ "guimenu><guimenuitem>Restore</guimenuitem></menuchoice>. Or press the " +#~ "<guibutton>Restore</guibutton> button on the main window." +#~ msgstr "" +#~ "Для восстановления выберите <menuchoice><guimenu>Файл</" +#~ "guimenu><guimenuitem>Восстановление</guimenuitem></menuchoice> или " +#~ "нажмите кнопку <guibutton>Восстановление</guibutton> button" + +#~ msgid "" +#~ "To configure <application>Déjà Dup</application>, choose " +#~ "<menuchoice><guimenu>Edit</guimenu><guimenuitem>Preferences</" +#~ "guimenuitem></menuchoice>." +#~ msgstr "" +#~ "Для настройки <application>Déjà Dup</application> выберите " +#~ "<menuchoice><guimenu>Настройки</guimenu><guimenuitem>Параметры</" +#~ "guimenuitem></menuchoice>." + +#~ msgid "<guilabel>Backup location</guilabel>" +#~ msgstr "<guilabel>Местоположение резервной копии</guilabel>" + +#~ msgid "<guilabel>Amazon S3</guilabel>" +#~ msgstr "<guilabel>Amazon S3</guilabel>" + +#~ msgid "" +#~ "This service costs money. Read their rates carefully before using it." +#~ msgstr "Этот сервис платный. Посмотрите их тарифы перед использованием." + +#~ msgid "Default: <guilabel>Amazon S3</guilabel>." +#~ msgstr "По умолчанию: <guilabel>Amazon S3</guilabel>." + +#~ msgid "<guilabel>S3 Access Key ID</guilabel>" +#~ msgstr "<guilabel> Ключ ID доступа S3 </guilabel>" + +#~ msgid "" +#~ "This option only appears if the <guilabel>Amazon S3</guilabel> backup " +#~ "location has been selected." +#~ msgstr "" +#~ "Эта опция появляется только при выборе местоположения хранения резервной " +#~ "копии <guilabel>Amazon S3</guilabel>." + +#~ msgid "" +#~ "This is your Access Key ID that Amazon gave you when you signed up for " +#~ "S3. It is like a username for logging into S3. If left empty, you will be " +#~ "prompted for it as you backup or restore." +#~ msgstr "" +#~ "Это ключ доступа, который сервис Amazon выдал вам тогда, когда вы " +#~ "подписались на службу S3. Если оставить пустым, то появится " +#~ "предупреждение при создании резервной копии или восстановлении файлов из " +#~ "резервной копии." + +#~ msgid "<guilabel>Folder</guilabel>" +#~ msgstr "<guilabel>Каталог</guilabel>" + +#~ msgid "" +#~ "If you have multiple backups, you may want to keep them separated in " +#~ "multiple folders. Use this option to enter a path on the S3 service in " +#~ "which to put your files." +#~ msgstr "" +#~ "Если у вас несколько резервных копий, то возможно вы захотите хранить их " +#~ "в отдельных каталогах. Используйте эту опцию для указания путей на " +#~ "сервисе S3." + +#~ msgid "" +#~ "Select a list of directories to backup. Press the <guibutton>Add</" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "If you are only interested in backing up your own data, the default of " +#~ "<guilabel>Home Folder</guilabel> is sufficient." +#~ msgstr "" +#~ "Выберите список каталогов, которые необходимо будет включить в " +#~ "создаваемую резервную копию. Нажмите кнопку <guibutton>Добавить</" +#~ "guibutton> или <guibutton>Удалить</guibutton> для изменения списка. Если " +#~ "вам необходимо сохранить только ваши собственные данные, то будет " +#~ "достаточно оставить по умолчанию <guilabel>Домашний каталог</guilabel>." + +#~ msgid "" +#~ "Select a list of directories to not backup. Press the <guibutton>Add </" +#~ "guibutton> or <guibutton>Remove</guibutton> buttons to modify the list. " +#~ "This list takes precedence over the list of included directories." +#~ msgstr "" +#~ "Выберите список каталогов, которые необходимо исключить из создания " +#~ "резервной копии. Нажмите кнопку <guibutton>Добавить </guibutton> или " +#~ "<guibutton>Удалить</guibutton> для изменения списка. Этот список имеет " +#~ "приоритет выше чем список каталогов, которые необходимо включить в " +#~ "резервную копию." + +#~ msgid "" +#~ "Some of your data may be large and not very important to you. In that " +#~ "case, you can save yourself some time and space by not backing them up." +#~ msgstr "" +#~ "Некоторые ваши данные могут быть слишком большими и не очень важными для " +#~ "вас. В этом случае можно сохранить немного времени и места исключив их из " +#~ "резервного копирования." + +#~ msgid "" +#~ "There are some locations that <application>Déjà Dup</application> " +#~ "excludes by default:" +#~ msgstr "" +#~ "Некоторые каталоги <application>Déjà Dup</application> исключает по " +#~ "умолчанию:" + +#~ msgid "~/.cache" +#~ msgstr "~/.cache" + +#~ msgid "~/.thumbnails" +#~ msgstr "~/.thumbnails" + +#~ msgid "~/.gvfs" +#~ msgstr "~/.gvfs" + +#~ msgid "~/.xsession-errors" +#~ msgstr "~/.xsession-errors" + +#~ msgid "~/.recently-used.xbel" +#~ msgstr "~/.recently-used.xbel" + +#~ msgid "~/.recent-applications.xbel" +#~ msgstr "~/.recent-applications.xbel" + +#~ msgid "/proc" +#~ msgstr "/proc" + +#~ msgid "/tmp" +#~ msgstr "/tmp" + +#~ msgid "/sys" +#~ msgstr "/sys" + +#~ msgid "<guilabel>Encrypt backup files</guilabel>" +#~ msgstr "<guilabel>Шифрование файлов резервных копий</guilabel>" + +#~ msgid "" +#~ "Encrypting your backup files is recommended to keep your data safe. If " +#~ "you don't have exclusive physical control of your backup location, or if " +#~ "it is stolen, an encrypted backup prevents others from looking at your " +#~ "personal data." +#~ msgstr "" +#~ "Для обеспечения безопасности ваших данных рекомендуется использовать " +#~ "шифрование файлов резервных копий. Если место, где вы храните резервные " +#~ "копии доступно другим людям кроме вас или резервные копии украдены, то " +#~ "шифрование позволит уберечь ваши персональные данные." + +#~ msgid "" +#~ "If on, you will be prompted for a password. Keep this password safe, you " +#~ "will need it to restore your data." +#~ msgstr "" +#~ "Если включено, то вам предложат ввести пароль. Берегите его, он " +#~ "понадобится для восстановления данных." + +#~ msgid "Default: <userinput>On</userinput>." +#~ msgstr "По умолчанию: <userinput>Включено</userinput>." + +#~ msgid "<guilabel>Automatically backup on a regular schedule</guilabel>" +#~ msgstr "" +#~ "<guilabel>Автоматическое создание резервных копий по расписанию</guilabel>" + +#~ msgid "" +#~ "Turn this option on to have <application>Déjà Dup</application> " +#~ "automatically backup for you. This is recommended so that you don't " +#~ "forget to backup. Backups are more useful the more recently you have made " +#~ "them, so it is important to regularly do so." +#~ msgstr "" +#~ "Включите эту опцию, если вы хотите, чтобы <application>Déjà Dup</" +#~ "application> выполнял автоматическое сохранение ваших данных. Это " +#~ "рекомендуется для того, чтобы вы не забыли выполнить резервное " +#~ "копирование. Резервное сохранение данных рекомендуется делать регулярно." + +#~ msgid "Default: <userinput>Off</userinput>." +#~ msgstr "По умолчанию: <userinput>Выключено</userinput>." + +#~ msgid "<guilabel>How often to backup</guilabel>" +#~ msgstr "" +#~ "<guilabel>С какой периодичностью выполнять резервное сохранение</guilabel>" + +#~ msgid "Choose a schedule for automatic backups." +#~ msgstr "Выберите расписание для создания резервных копий." + +#~ msgid "Default: <guilabel>Weekly</guilabel>." +#~ msgstr "По умолчанию: <guilabel>Еженедельно</guilabel>." + +#~ msgid "The directory used for SSH connections." +#~ msgstr "Каталог используемый для SSH соединений." + +#~ msgid "The port used for SSH connections." +#~ msgstr "Порт используемый для SSH соединений." + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s на ssh://%s@%s:%d" + +#~ msgid "Contents" +#~ msgstr "Содержимое" diff -Nru deja-dup-7.4/po/sv.po deja-dup-10.0/po/sv.po --- deja-dup-7.4/po/sv.po 2009-02-02 20:41:11.000000000 -0500 +++ deja-dup-10.0/po/sv.po 2009-06-05 14:52:26.000000000 -0400 @@ -6,16 +6,16 @@ msgid "" msgstr "" "Project-Id-Version: deja-dup\n" -"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" -"POT-Creation-Date: 2009-01-29 15:51-0500\n" -"PO-Revision-Date: 2009-01-30 23:29+0000\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-06 01:38+0000\n" "Last-Translator: Daniel Nylander <yeager@ubuntu.com>\n" "Language-Team: Swedish <sv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2009-02-03 01:32+0000\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" "X-Generator: Launchpad (build Unknown)\n" #: ../data/deja-dup.desktop.in.h:1 @@ -29,8 +29,8 @@ #. Translators: Monitor in this sense means something akin to 'watcher', not #. a computer monitor. This program acts like a daemon that kicks off #. backups at scheduled times. -#: ../data/deja-dup-monitor.desktop.in.h:1 ../monitor/monitor.vala:44 -#: ../monitor/monitor.vala:269 +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 msgid "Déjà Dup Monitor" msgstr "Övervaka Déjà Dup" @@ -39,86 +39,62 @@ msgstr "Schemalägg säkerhetskopieringar vid fasta intervaller" #: ../data/deja-dup.schemas.in.h:1 -msgid "Amazon S3 Key ID" -msgstr "Nyckel-id för Amazon S3" +msgid "Amazon S3 Access Key ID" +msgstr "Id för Amazon S3 Access Key" #: ../data/deja-dup.schemas.in.h:2 -msgid "Directories not to backup" -msgstr "Kataloger att inte säkerhetskopiera" +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" +"Ett valfritt mappnamn att lagra filer i. Denna mapp kommer att skapas i vald " +"bucket." #: ../data/deja-dup.schemas.in.h:3 -msgid "Directories to backup" -msgstr "Kataloger att säkerhetskopiera" +msgid "Backup location" +msgstr "" #: ../data/deja-dup.schemas.in.h:4 -msgid "Folder on your system in which to hold the backup files." -msgstr "Mapp på din dator i vilken säkerhetskopiorna ska ligga." +msgid "Directories not to backup" +msgstr "Kataloger att inte säkerhetskopiera" #: ../data/deja-dup.schemas.in.h:5 -msgid "How often to periodically backup" -msgstr "Hur ofta periodiska säkerhetskopior ska tas" +msgid "Directories to backup" +msgstr "Kataloger att säkerhetskopiera" #: ../data/deja-dup.schemas.in.h:6 -msgid "Local backup location" -msgstr "Lokal plats för säkerhetskopior" +msgid "How often to periodically backup" +msgstr "Hur ofta periodiska säkerhetskopior ska tas" #: ../data/deja-dup.schemas.in.h:7 -msgid "SSH directory" -msgstr "SSH-katalog" +msgid "Location in which to hold the backup files." +msgstr "" #: ../data/deja-dup.schemas.in.h:8 -msgid "SSH port" -msgstr "SSH-port" - -#: ../data/deja-dup.schemas.in.h:9 -msgid "SSH server" -msgstr "SSH-server" - -#: ../data/deja-dup.schemas.in.h:10 -msgid "SSH username" -msgstr "Användarnamn för SSH" - -#: ../data/deja-dup.schemas.in.h:11 msgid "The Amazon S3 bucket name to use" msgstr "Namn på Amazon S3-bucket att använda" -#: ../data/deja-dup.schemas.in.h:12 -msgid "The directory used for SSH connections." -msgstr "Katalog som använd för SSH-anslutningar." +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "Amazon S3-mappen" -#: ../data/deja-dup.schemas.in.h:13 +#: ../data/deja-dup.schemas.in.h:10 msgid "The last time Déjà Dup was run" msgstr "Senaste gången som Déjà Dup kördes" -#: ../data/deja-dup.schemas.in.h:14 +#: ../data/deja-dup.schemas.in.h:11 msgid "The last time Déjà Dup was run, in ISO 8601 format." msgstr "Senaste gången som Déjà Dup kördes, i ISO 8601-format." -#: ../data/deja-dup.schemas.in.h:15 +#: ../data/deja-dup.schemas.in.h:12 msgid "The number of days between backups." msgstr "Antalet dagar mellan säkerhetskopieringar." -#: ../data/deja-dup.schemas.in.h:16 -msgid "The port used for SSH connections." -msgstr "Portnumret som används för SSH-anslutningar." - -#: ../data/deja-dup.schemas.in.h:17 -msgid "" -"The protocol used for the backup location. Valid values are 's3', 'file', or " -"'ssh'." +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." msgstr "" -"Protokollet som används för säkerhetskopians plats. Giltiga värden är " -"\"s3\", \"file\" eller \"ssh\"." - -#: ../data/deja-dup.schemas.in.h:18 -msgid "The server used for SSH connections." -msgstr "Servern som används för SSH-anslutningar." -#: ../data/deja-dup.schemas.in.h:19 -msgid "The user used for SSH connections." -msgstr "Användarnamnet som används för SSH-anslutningar." - -#: ../data/deja-dup.schemas.in.h:20 +#: ../data/deja-dup.schemas.in.h:14 msgid "" "This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " "$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " @@ -130,7 +106,7 @@ "$PUBLIC_SHARE, $TEMPLATES, $TRASH och $VIDEO känns igen som användarens " "specialkataloger. Relativa poster är relativa till användarens hemkatalog." -#: ../data/deja-dup.schemas.in.h:21 +#: ../data/deja-dup.schemas.in.h:15 msgid "" "This list of directories will not be backed up. Reserved values $HOME, " "$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " @@ -144,19 +120,19 @@ "användarens specialkataloger. Relativa poster är relativa till användarens " "hemkatalog. Denna lista åsidosätter inkluderingslistan." -#: ../data/deja-dup.schemas.in.h:22 +#: ../data/deja-dup.schemas.in.h:16 msgid "Type of location to store backup" msgstr "Typ av plats för att lagra säkerhetskopior" -#: ../data/deja-dup.schemas.in.h:23 +#: ../data/deja-dup.schemas.in.h:17 msgid "Whether to automatically backup on a regular schedule." msgstr "Huruvida automatiska säkerhetskopior ska tas vid fasta tidpunkter." -#: ../data/deja-dup.schemas.in.h:24 +#: ../data/deja-dup.schemas.in.h:18 msgid "Whether to encrypt your backup" msgstr "Huruvida din säkerhetskopia ska krypteras" -#: ../data/deja-dup.schemas.in.h:25 +#: ../data/deja-dup.schemas.in.h:19 msgid "" "Whether to encrypt your backup files in the storage location. It's strongly " "recommended to leave this as 'true'." @@ -164,11 +140,11 @@ "Huruvida dina säkerhetskopior i lagringsplatsen ska krypteras. Det " "rekommenderas starkt att lämna kvar värdet som \"sant\"." -#: ../data/deja-dup.schemas.in.h:26 +#: ../data/deja-dup.schemas.in.h:20 msgid "Whether to periodically backup" msgstr "Huruvida periodiska säkerhetskopior ska tas" -#: ../data/deja-dup.schemas.in.h:27 +#: ../data/deja-dup.schemas.in.h:21 msgid "" "Which Amazon S3 bucket to store files in. This does not need to exist " "already. Only legal hostname strings are valid." @@ -176,31 +152,33 @@ "Vilken Amazon S3-bucket att lagra filer i. Denna måste inte redan finnas. " "Endast giltiga värdnamnssträngar är giltiga." -#: ../data/deja-dup.schemas.in.h:28 -msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." msgstr "" -"Din Amazon S3-nyckelidentifierare. Detta fungerar som ditt S3-användarnamn." +"Din Amazon S3 Access Key-identifierare. Detta fungerar som ditt S3-" +"användarnamn." -#: ../applet/applet.vala:26 ../deja-dup/main.vala:30 -#: ../monitor/monitor.vala:35 ../preferences/preferences.vala:26 +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 msgid "Show version" msgstr "Visa version" #. Translators: 'Applet' in the sense of a notification area icon -#: ../applet/applet.vala:35 ../applet/applet.vala:49 +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 msgid "Déjà Dup Applet" msgstr "Panelprogrammet Déjà Dup" -#: ../applet/StatusIcon.vala:74 +#: .././po/../applet/StatusIcon.vala:74 #, c-format msgid "%.1f%% complete" msgstr "%.1f%% färdigt" -#: ../applet/StatusIcon.vala:113 +#: .././po/../applet/StatusIcon.vala:121 msgid "Backup about to start" msgstr "Säkerhetskopiering på väg att starta" -#: ../applet/StatusIcon.vala:114 +#: .././po/../applet/StatusIcon.vala:122 msgid "" "A scheduled backup will shortly begin. You can instead choose to backup " "later or not at all." @@ -208,173 +186,221 @@ "En schemalagd säkerhetskopiering kommer att starta inom kort. Du kan välja " "att säkerhetskopiera senare eller inte alls." -#: ../applet/StatusIcon.vala:116 +#: .././po/../applet/StatusIcon.vala:125 msgid "Skip Backup" msgstr "Hoppa över säkerhetskopiering" -#: ../applet/StatusIcon.vala:117 +#: .././po/../applet/StatusIcon.vala:126 msgid "Backup Later" msgstr "Säkerhetskopiera senare" -#: ../applet/StatusIcon.vala:133 +#: .././po/../applet/StatusIcon.vala:143 msgid "Encryption password needed" msgstr "Lösenord för kryptering krävs" -#: ../applet/StatusIcon.vala:134 +#: .././po/../applet/StatusIcon.vala:144 msgid "Please enter the encryption password for your backup files." msgstr "Ange krypteringslösenordet för dina säkerhetskopierade filer." -#: ../applet/StatusIcon.vala:136 ../applet/StatusIcon.vala:153 +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 msgid "Enter" msgstr "Ange" -#: ../applet/StatusIcon.vala:150 +#: .././po/../applet/StatusIcon.vala:161 msgid "Server password needed" msgstr "Serverlösenord krävs" -#: ../applet/StatusIcon.vala:151 +#: .././po/../applet/StatusIcon.vala:162 msgid "Please enter the server password for your backup." msgstr "Ange serverlösenordet för din säkerhetskopia." -#: ../applet/StatusIcon.vala:169 +#: .././po/../applet/StatusIcon.vala:179 msgid "Backup error occurred" msgstr "Fel vid säkerhetskopiering inträffade" -#: ../applet/StatusIcon.vala:171 +#: .././po/../applet/StatusIcon.vala:184 msgid "Rerun" msgstr "Kör igen" -#: ../applet/StatusIcon.vala:246 +#: .././po/../applet/StatusIcon.vala:262 msgid "Backup _Later" msgstr "Säkerhetskopiera _senare" -#: ../applet/StatusIcon.vala:250 +#: .././po/../applet/StatusIcon.vala:266 msgid "_Skip Backup" msgstr "_Hoppa över säkerhetskopiering" -#: ../applet/StatusIcon.vala:286 ../deja-dup/MainWindow.vala:171 +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 msgid "Could not open preferences" msgstr "Kunde inte öppna inställningarna" -#: ../deja-dup/AssistantBackup.vala:27 +#: .././po/../deja-dup/AssistantBackup.vala:26 msgid "Backup" msgstr "Säkerhetskopiera" -#: ../deja-dup/AssistantBackup.vala:38 ../deja-dup/AssistantRestore.vala:169 +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "_Plats för säkerhetskopia:" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "_Kryptera säkerhetskopior" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 msgid "Backup location:" msgstr "Plats för säkerhetskopior:" +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + #. Translators: This is the phrase 'Backing up' in the larger phrase #. "Backing up '%s'". %s is a filename. -#: ../deja-dup/AssistantBackup.vala:65 +#: .././po/../deja-dup/AssistantBackup.vala:166 msgid "Backing up" msgstr "Säkerhetskopierar" -#: ../deja-dup/AssistantBackup.vala:94 ../deja-dup/AssistantRestore.vala:384 -msgid "Unknown" -msgstr "Okänt" - -#: ../deja-dup/AssistantBackup.vala:99 +#: .././po/../deja-dup/AssistantBackup.vala:186 msgid "Backup Failed" msgstr "Säkerhetskopiering misslyckades" -#: ../deja-dup/AssistantBackup.vala:101 +#: .././po/../deja-dup/AssistantBackup.vala:188 msgid "Backup Finished" msgstr "Säkerhetskopieringen är färdig" -#: ../deja-dup/AssistantBackup.vala:102 +#: .././po/../deja-dup/AssistantBackup.vala:189 msgid "Your files were successfully backed up." msgstr "Dina filer har nu säkerhetskopierats." -#: ../deja-dup/AssistantBackup.vala:106 ../libdeja-dup/Operation.vala:49 +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 msgid "Backing up..." msgstr "Säkerhetskopierar..." -#: ../deja-dup/AssistantOperation.vala:173 +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "_Detaljer" + +#: .././po/../deja-dup/AssistantOperation.vala:234 msgid "Summary" msgstr "Sammandrag" -#: ../deja-dup/AssistantRestore.vala:71 +#: .././po/../deja-dup/AssistantRestore.vala:70 msgid "Restore" msgstr "Återskapa" -#: ../deja-dup/AssistantRestore.vala:101 +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 msgid "_Date:" msgstr "_Datum:" -#: ../deja-dup/AssistantRestore.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:161 msgid "Restore files to _original locations" msgstr "Återskapa filer till dess _ursprungliga platser" -#: ../deja-dup/AssistantRestore.vala:129 +#: .././po/../deja-dup/AssistantRestore.vala:166 msgid "Restore to _specific folder" msgstr "Återskapa till _specifik mapp" -#: ../deja-dup/AssistantRestore.vala:139 +#: .././po/../deja-dup/AssistantRestore.vala:176 msgid "Choose destination for restored files" msgstr "Välj mål för återskapade filer" -#: ../deja-dup/AssistantRestore.vala:143 +#: .././po/../deja-dup/AssistantRestore.vala:180 msgid "Restore _folder:" msgstr "Återskapnings_mapp:" -#: ../deja-dup/AssistantRestore.vala:175 +#: .././po/../deja-dup/AssistantRestore.vala:227 msgid "Restore date:" msgstr "Datum för återskapande:" -#: ../deja-dup/AssistantRestore.vala:181 +#: .././po/../deja-dup/AssistantRestore.vala:236 msgid "Restore folder:" msgstr "Återskapningsmapp:" -#: ../deja-dup/AssistantRestore.vala:222 +#: .././po/../deja-dup/AssistantRestore.vala:261 msgid "Checking for Backups" msgstr "Letar efter säkerhetskopior" -#: ../deja-dup/AssistantRestore.vala:233 +#: .././po/../deja-dup/AssistantRestore.vala:272 msgid "Restore from When?" msgstr "Återskapa från vilket datum?" -#: ../deja-dup/AssistantRestore.vala:244 +#: .././po/../deja-dup/AssistantRestore.vala:283 msgid "Restore to Where?" msgstr "Återskapa till vilken plats?" #. Translators: This is the word 'Restoring' in the phrase #. "Restoring '%s'". %s is a filename. -#: ../deja-dup/AssistantRestore.vala:267 +#: .././po/../deja-dup/AssistantRestore.vala:306 msgid "Restoring" msgstr "Återställer" -#: ../deja-dup/AssistantRestore.vala:302 +#: .././po/../deja-dup/AssistantRestore.vala:340 msgid "No backups to restore" msgstr "Inga säkerhetskopior att återskapa" -#: ../deja-dup/AssistantRestore.vala:404 +#: .././po/../deja-dup/AssistantRestore.vala:434 msgid "Original location" msgstr "Ursprunglig plats" -#: ../deja-dup/AssistantRestore.vala:417 +#: .././po/../deja-dup/AssistantRestore.vala:447 msgid "File to restore:" msgid_plural "Files to restore:" msgstr[0] "Fil att återskapa:" msgstr[1] "Filer att återskapa:" -#: ../deja-dup/AssistantRestore.vala:439 +#: .././po/../deja-dup/AssistantRestore.vala:469 msgid "Restore Failed" msgstr "Återställning misslyckades" -#: ../deja-dup/AssistantRestore.vala:441 +#: .././po/../deja-dup/AssistantRestore.vala:471 msgid "Restore Finished" msgstr "Återställning färdig" -#: ../deja-dup/AssistantRestore.vala:442 +#: .././po/../deja-dup/AssistantRestore.vala:472 msgid "Your files were successfully restored." msgstr "Dina filer har nu återskapats." -#: ../deja-dup/AssistantRestore.vala:446 ../libdeja-dup/Operation.vala:51 +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 msgid "Restoring..." msgstr "Återställer..." -#: ../deja-dup/main.vala:31 +#: .././po/../deja-dup/main.vala:31 msgid "Restore given files" msgstr "Återskapa angivna filer" @@ -383,65 +409,68 @@ #. context is itself a reference to both the underlying command line tool #. "duplicity" and the act of duplicating data for backup. As a whole, it #. may not be very translatable. -#: ../deja-dup/main.vala:41 ../deja-dup/main.vala:67 +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 msgid "Déjà Dup" msgstr "Déjà Dup" -#: ../deja-dup/main.vala:47 +#: .././po/../deja-dup/main.vala:47 msgid "No filenames provided" msgstr "Inga filnamn angivna" -#: ../deja-dup/MainWindow.vala:51 ../deja-dup/MainWindow.vala:193 +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 msgid "_Restore" msgstr "Åte_rskapa" -#: ../deja-dup/MainWindow.vala:77 ../deja-dup/MainWindow.vala:187 +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 msgid "_Backup" msgstr "_Säkerhetskopiera" -#: ../deja-dup/MainWindow.vala:184 +#: .././po/../deja-dup/MainWindow.vala:176 msgid "_File" msgstr "_Arkiv" -#: ../deja-dup/MainWindow.vala:203 +#: .././po/../deja-dup/MainWindow.vala:195 msgid "_Edit" msgstr "R_edigera" -#: ../deja-dup/MainWindow.vala:210 +#: .././po/../deja-dup/MainWindow.vala:202 msgid "_Help" msgstr "_Hjälp" -#: ../deja-dup/MainWindow.vala:213 -msgid "Contents" -msgstr "Innehåll" +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" -#: ../deja-dup/MainWindow.vala:217 +#: .././po/../deja-dup/MainWindow.vala:209 msgid "Get Help _Online..." msgstr "Få hjälp på _nätet..." -#: ../deja-dup/MainWindow.vala:221 +#: .././po/../deja-dup/MainWindow.vala:213 msgid "_Translate This Application..." msgstr "_Översätt det här programmet..." -#: ../deja-dup/MainWindow.vala:225 +#: .././po/../deja-dup/MainWindow.vala:217 msgid "_Report a Problem..." msgstr "_Rapportera ett fel..." -#: ../libdeja-dup/BackendFile.vala:47 -msgid "Choose backup destination" -msgstr "Välj mål för säkerhetskopia" +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" -#: ../libdeja-dup/BackendS3.vala:57 +#: .././po/../libdeja-dup/BackendS3.vala:122 #, c-format -msgid "Bucket %s on Amazon S3" -msgstr "Bucket %s på Amazon S3" +msgid "Folder %s on Amazon S3" +msgstr "Mappen %s på Amazon S3" #. Ask user -#: ../libdeja-dup/BackendS3.vala:102 +#: .././po/../libdeja-dup/BackendS3.vala:167 msgid "Amazon S3 Password" msgstr "Lösenord för Amazon S3" -#: ../libdeja-dup/BackendS3.vala:103 +#: .././po/../libdeja-dup/BackendS3.vala:168 msgid "" "Enter your Amazon Web Services user ID and secret key. This is not the same " "as your amazon.com username and password." @@ -449,34 +478,74 @@ "Ange ditt användarid och hemliga nyckel för Amazons webbtjänster. Detta är " "inte samma som ditt användarnamn och lösenord för amazon.com." -#: ../libdeja-dup/BackendSSH.vala:56 -msgid "No username specified" -msgstr "Inget användarnamn angivet" - -#: ../libdeja-dup/BackendSSH.vala:65 -msgid "No server specified" -msgstr "Ingen server angiven" +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" -#: ../libdeja-dup/BackendSSH.vala:106 -#, c-format -msgid "%s on ssh://%s@%s:%d" -msgstr "%s på ssh://%s@%s:%d" +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" -#. Ask user -#: ../libdeja-dup/BackendSSH.vala:156 -msgid "SSH Password" -msgstr "SSH-lösenord" +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "Hemmapp" -#: ../libdeja-dup/BackendSSH.vala:157 +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "Papperskorg" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "Amazon S3" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Dagligen" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Varje vecka" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "Varannan vecka" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Varje månad" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 #, c-format -msgid "Enter your SSH username and password for server %s." -msgstr "Ange ditt SSH-användarnamn och lösenord för servern %s." +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "%d dags intervall" +msgstr[1] "%d dagars intervall" -#: ../libdeja-dup/DuplicityInfo.vala:117 +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 msgid "Could not run duplicity" msgstr "Kunde inte köra duplicity" -#: ../libdeja-dup/DuplicityInfo.vala:123 +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 msgid "" "Could not understand duplicity version.\n" "\n" @@ -484,7 +553,7 @@ "Kunde inte förstå duplicitys versionsnummer.\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:125 +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 #, c-format msgid "" "Could not understand duplicity version '%s'.\n" @@ -493,16 +562,15 @@ "Kunde inte förstå duplicitys versionsnummer \"%s\".\n" "\n" -#: ../libdeja-dup/DuplicityInfo.vala:127 +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 msgid "Without duplicity, Déjà Dup cannot function. It will close now." -msgstr "" -"Utan duplicity kan inte Déjà Dup fungera. Det kommer nu att stängas." +msgstr "Utan duplicity kan inte Déjà Dup fungera. Det kommer nu att stängas." -#: ../libdeja-dup/DuplicityInfo.vala:138 +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 msgid "Duplicity's version is too old" msgstr "Duplicitys version är för gammal" -#: ../libdeja-dup/DuplicityInfo.vala:139 +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 #, c-format msgid "" "Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " @@ -511,45 +579,75 @@ "Déjà Dup kräver minst version %d.%d.%.2d av duplicity, men hittade endast " "version %d.%d.%.2d" -#: ../libdeja-dup/Duplicity.vala:120 +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 msgid "Preparing..." msgstr "Förbereder..." -#: ../libdeja-dup/Duplicity.vala:170 +#: .././po/../libdeja-dup/Duplicity.vala:199 msgid "Cleaning up..." msgstr "Rensar upp..." -#: ../libdeja-dup/Duplicity.vala:215 +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 msgid "Failed with an unknown error." msgstr "Misslyckades med ett okänt fel." -#: ../libdeja-dup/Duplicity.vala:287 +#: .././po/../libdeja-dup/Duplicity.vala:341 #, c-format msgid "Could not restore '%s': File not found in backup" msgstr "Kunde inte återskapa \"%s\": Filen hittades inte i säkerhetskopia" -#: ../libdeja-dup/Duplicity.vala:301 -msgid "Invalid ID" -msgstr "Ogiltigt id" - -#: ../libdeja-dup/Duplicity.vala:303 -msgid "Invalid secret key" -msgstr "Ogiltig hemlig nyckel" +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "Ogiltigt id." + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "Ogiltig hemlig nyckel." -#: ../libdeja-dup/Duplicity.vala:320 +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" +"Ditt konto för Amazon Web Services är inte registrerat för S3-tjänsten." + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "S3 bucket-namnet är inte tillgängligt." + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "Krypterat lösenord är felaktigt." + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 msgid "No backup files found" msgstr "Inga säkerhetskopior hittades" -#: ../libdeja-dup/libdeja-dup.vala:95 +#: .././po/../libdeja-dup/libdeja-dup.vala:95 #, c-format msgid "Could not display %s" msgstr "Kunde inte visa %s" -#: ../libdeja-dup/libdeja-dup.vala:130 +#: .././po/../libdeja-dup/libdeja-dup.vala:138 msgid "About Déjà Dup" msgstr "Om Déjà Dup" -#: ../libdeja-dup/libdeja-dup.vala:132 +#: .././po/../libdeja-dup/libdeja-dup.vala:142 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" @@ -570,9 +668,19 @@ "Launchpad Contributions:\n" " Christian Widell https://launchpad.net/~christian.w\n" " Daniel Nylander https://launchpad.net/~yeager\n" +" Paul Sundvall https://launchpad.net/~slask-paulsundvall\n" +"\n" +"Launchpad Contributions:\n" +" Christian Widell https://launchpad.net/~christian.w\n" +" Daniel Nylander https://launchpad.net/~yeager\n" +" Paul Sundvall https://launchpad.net/~slask-paulsundvall\n" +"\n" +"Launchpad Contributions:\n" +" Christian Widell https://launchpad.net/~christian.w\n" +" Daniel Nylander https://launchpad.net/~yeager\n" " Paul Sundvall https://launchpad.net/~slask-paulsundvall" -#: ../libdeja-dup/libdeja-dup.vala:138 +#: .././po/../libdeja-dup/libdeja-dup.vala:147 #, c-format msgid "" "This program is free software; you can redistribute it and/or modify it " @@ -585,7 +693,7 @@ "Software Foundation; antingen version 3 av licensen, eller (enligt dig " "själv) någon senare version." -#: ../libdeja-dup/libdeja-dup.vala:139 +#: .././po/../libdeja-dup/libdeja-dup.vala:148 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -597,21 +705,57 @@ "LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General Public License för " "ytterligare information." -#: ../libdeja-dup/libdeja-dup.vala:140 +#: .././po/../libdeja-dup/libdeja-dup.vala:149 msgid "" "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." +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "Okänt" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "_Användarnamn:" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" msgstr "" -"Du bör ha fått en kopia av GNU General Public License tillsammans med detta " -"program; om inte, skriv till Free Software Foundation, Inc., 59 Temple Place " -"- Suite 330, Boston, MA 02111-1307, USA." -#: ../libdeja-dup/OperationRestore.vala:59 +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 msgid "Restoring files..." msgstr "Återskapar filer..." -#: ../libdeja-dup/OperationRestore.vala:169 +#: .././po/../libdeja-dup/OperationRestore.vala:172 #, c-format msgid "" "Not all files could be restored. Any files that could not be restored may " @@ -620,171 +764,193 @@ "Alla filer kunde inte återskapas. Filer som inte kunde återskapas kan hittas " "i %s." -#: ../libdeja-dup/OperationRestore.vala:178 +#: .././po/../libdeja-dup/OperationRestore.vala:181 #, c-format msgid "Could not restore %s: %s" msgstr "Kunde inte återskapa %s: %s" -#: ../libdeja-dup/Operation.vala:53 +#: .././po/../libdeja-dup/Operation.vala:53 msgid "Checking for backups..." msgstr "Letar efter säkerhetskopior..." #. Ask user -#: ../libdeja-dup/Operation.vala:199 +#: .././po/../libdeja-dup/Operation.vala:214 msgid "Encryption Password" msgstr "Krypteringslösenord" -#: ../libdeja-dup/Operation.vala:200 +#: .././po/../libdeja-dup/Operation.vala:215 msgid "Enter the password used to encrypt your backup files." msgstr "" "Ange lösenordet som du använde för att kryptera dina säkerhetskopierade " "filer." -#: ../libdeja-dup/Operation.vala:219 +#: .././po/../libdeja-dup/Operation.vala:236 msgid "Déjà Dup backup passphrase" msgstr "Lösenfras för Déjà Dup-säkerhetskopia" -#: ../libdeja-dup/Operation.vala:237 +#: .././po/../libdeja-dup/Operation.vala:255 msgid "Another Déjà Dup is already running" msgstr "En annan Déjà Dup är redan igång" -#: ../nautilus/NautilusExtension.c:95 +#: .././po/../nautilus/NautilusExtension.c:95 msgid "Revert to Previous Version..." msgid_plural "Revert to Previous Versions..." msgstr[0] "Återgå till tidigare version..." msgstr[1] "Återgå till tidigare versioner..." -#: ../nautilus/NautilusExtension.c:99 +#: .././po/../nautilus/NautilusExtension.c:99 msgid "Restore file from backup" msgid_plural "Restore files from backup" msgstr[0] "Återskapa fil från säkerhetskopia" msgstr[1] "Återskapa filer från säkerhetskopia" -#: ../preferences/ConfigBackend.vala:34 -msgid "Amazon S3" -msgstr "Amazon S3" +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "Inställningar för Déjà Dup" -#: ../preferences/ConfigBackend.vala:35 -msgid "Local Folder" -msgstr "Lokal mapp" - -#: ../preferences/ConfigBackend.vala:36 -msgid "SSH" -msgstr "SSH" - -#: ../preferences/ConfigFolder.vala:31 -msgid "Select Folder" -msgstr "Välj mapp" +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "I_d för S3 Access Key:" -#: ../preferences/ConfigList.vala:88 -msgid "Home Folder" -msgstr "Hemmapp" +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Mapp:" -#: ../preferences/ConfigList.vala:90 -msgid "Trash" -msgstr "Papperskorg" +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "Säkerhetskopiera _automatiskt vid fasta tidspunkter" -#: ../preferences/ConfigList.vala:129 -msgid "Choose folder" -msgstr "Välj mapp" +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "Hur _ofta säkerhetskopior ska tas:" -#: ../preferences/ConfigList.vala:163 -msgid "Could not add the folder" -msgstr "Kunde inte lägga till mappen" +#~ msgid "Folder on your system in which to hold the backup files." +#~ msgstr "Mapp på din dator i vilken säkerhetskopiorna ska ligga." -#: ../preferences/ConfigList.vala:164 -#, c-format -msgid "%s is already in the list." -msgstr "%s finns redan i listan." +#~ msgid "Local backup location" +#~ msgstr "Lokal plats för säkerhetskopior" -#: ../preferences/ConfigPeriod.vala:34 -msgid "Daily" -msgstr "Dagligen" +#~ msgid "Choose backup destination" +#~ msgstr "Välj mål för säkerhetskopia" -#: ../preferences/ConfigPeriod.vala:35 -msgid "Weekly" -msgstr "Varje vecka" +#~ msgid "Local Folder" +#~ msgstr "Lokal mapp" -#. Translators: Biweekly is every two weeks -#: ../preferences/ConfigPeriod.vala:37 -msgid "Biweekly" -msgstr "Varannan vecka" +#~ msgid "Select Folder" +#~ msgstr "Välj mapp" -#: ../preferences/ConfigPeriod.vala:38 -msgid "Monthly" -msgstr "Varje månad" +#~ msgid "Choose folder" +#~ msgstr "Välj mapp" -#: ../preferences/ConfigPeriod.vala:94 -#, c-format -msgid "Every %d day" -msgid_plural "Every %d days" -msgstr[0] "%d dags intervall" -msgstr[1] "%d dagars intervall" +#~ msgid "Could not add the folder" +#~ msgstr "Kunde inte lägga till mappen" -#: ../preferences/PreferencesDialog.vala:38 ../preferences/preferences.vala:35 -#: ../preferences/preferences.vala:66 -msgid "Déjà Dup Preferences" -msgstr "Inställningar för Déjà Dup" +#~ msgid "" +#~ "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." +#~ msgstr "" +#~ "Du bör ha fått en kopia av GNU General Public License tillsammans med " +#~ "detta program; om inte, skriv till Free Software Foundation, Inc., 59 " +#~ "Temple Place - Suite 330, Boston, MA 02111-1307, USA." -#: ../preferences/PreferencesDialog.vala:56 -msgid "_Backup location:" -msgstr "_Plats för säkerhetskopia:" +#~ msgid "I_nclude:" +#~ msgstr "I_nkludera:" -#: ../preferences/PreferencesDialog.vala:79 -#, c-format -msgid "S3 buc_ket:" -msgstr "S3 buc_ket:" +#~ msgid "E_xclude:" +#~ msgstr "E_xkludera:" -#: ../preferences/PreferencesDialog.vala:91 -#, c-format -msgid "S3 I_D:" -msgstr "S3 I_D:" +#~ msgid "SSH directory" +#~ msgstr "SSH-katalog" -#: ../preferences/PreferencesDialog.vala:110 -#, c-format -msgid "_Folder:" -msgstr "_Mapp:" +#~ msgid "SSH port" +#~ msgstr "SSH-port" -#: ../preferences/PreferencesDialog.vala:128 -#, c-format -msgid "_Username:" -msgstr "_Användarnamn:" +#~ msgid "SSH server" +#~ msgstr "SSH-server" -#: ../preferences/PreferencesDialog.vala:140 -#, c-format -msgid "_Server:" -msgstr "_Server:" +#~ msgid "SSH username" +#~ msgstr "Användarnamn för SSH" -#: ../preferences/PreferencesDialog.vala:152 -#, c-format -msgid "_Port:" -msgstr "_Port:" +#~ msgid "The directory used for SSH connections." +#~ msgstr "Katalog som använd för SSH-anslutningar." -#: ../preferences/PreferencesDialog.vala:164 -#, c-format -msgid "_Directory:" -msgstr "_Katalog:" +#~ msgid "The port used for SSH connections." +#~ msgstr "Portnumret som används för SSH-anslutningar." -#: ../preferences/PreferencesDialog.vala:182 -msgid "I_nclude:" -msgstr "I_nkludera:" +#~ msgid "" +#~ "The protocol used for the backup location. Valid values are 's3', 'file', " +#~ "or 'ssh'." +#~ msgstr "" +#~ "Protokollet som används för säkerhetskopians plats. Giltiga värden är \"s3" +#~ "\", \"file\" eller \"ssh\"." -#: ../preferences/PreferencesDialog.vala:196 -msgid "E_xclude:" -msgstr "E_xkludera:" +#~ msgid "The server used for SSH connections." +#~ msgstr "Servern som används för SSH-anslutningar." -#: ../preferences/PreferencesDialog.vala:209 -msgid "_Encrypt backup files" -msgstr "_Kryptera säkerhetskopior" +#~ msgid "The user used for SSH connections." +#~ msgstr "Användarnamnet som används för SSH-anslutningar." -#: ../preferences/PreferencesDialog.vala:215 -msgid "_Automatically backup on a regular schedule" -msgstr "Säkerhetskopiera _automatiskt vid fasta tidspunkter" +#~ msgid "No username specified" +#~ msgstr "Inget användarnamn angivet" -#: ../preferences/PreferencesDialog.vala:222 -#, c-format -msgid "How _often to backup:" -msgstr "Hur _ofta säkerhetskopior ska tas:" +#~ msgid "No server specified" +#~ msgstr "Ingen server angiven" + +#~ msgid "%s on ssh://%s@%s:%d" +#~ msgstr "%s på ssh://%s@%s:%d" + +#~ msgid "SSH Password" +#~ msgstr "SSH-lösenord" + +#~ msgid "Enter your SSH username and password for server %s." +#~ msgstr "Ange ditt SSH-användarnamn och lösenord för servern %s." + +#~ msgid "SSH" +#~ msgstr "SSH" + +#~ msgid "%s is already in the list." +#~ msgstr "%s finns redan i listan." + +#~ msgid "_Server:" +#~ msgstr "_Server:" + +#~ msgid "_Port:" +#~ msgstr "_Port:" + +#~ msgid "Contents" +#~ msgstr "Innehåll" + +#~ msgid "Amazon S3 Key ID" +#~ msgstr "Nyckel-id för Amazon S3" + +#~ msgid "Your Amazon S3 Key identifier. This acts as your S3 username." +#~ msgstr "" +#~ "Din Amazon S3-nyckelidentifierare. Detta fungerar som ditt S3-" +#~ "användarnamn." + +#~ msgid "Bucket %s on Amazon S3" +#~ msgstr "Bucket %s på Amazon S3" + +#~ msgid "Invalid ID" +#~ msgstr "Ogiltigt id" + +#~ msgid "Invalid secret key" +#~ msgstr "Ogiltig hemlig nyckel" + +#~ msgid "S3 buc_ket:" +#~ msgstr "S3 buc_ket:" + +#~ msgid "S3 I_D:" +#~ msgstr "S3 I_D:" + +#~ msgid "_Directory:" +#~ msgstr "_Katalog:" #~ msgid "Backing up files..." #~ msgstr "Säkerhetskopierar filer..." @@ -798,8 +964,5 @@ #~ msgid "Backup finished" #~ msgstr "Säkerhetskopieringen är färdig" -#~ msgid "_Details" -#~ msgstr "_Detaljer" - #~ msgid "_Report a Problem" #~ msgstr "_Rapportera ett fel" diff -Nru deja-dup-7.4/po/tr.po deja-dup-10.0/po/tr.po --- deja-dup-7.4/po/tr.po 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/po/tr.po 2009-06-05 14:52:26.000000000 -0400 @@ -0,0 +1,778 @@ +# Turkish translation for deja-dup +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the deja-dup package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: deja-dup\n" +"Report-Msgid-Bugs-To: mike@mterry.name\n" +"POT-Creation-Date: 2009-06-05 14:52-0400\n" +"PO-Revision-Date: 2009-05-15 13:23+0000\n" +"Last-Translator: AngelSpy <melissadilara@yahoo.com>\n" +"Language-Team: Turkish <tr@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Launchpad-Export-Date: 2009-06-05 12:04+0000\n" +"X-Generator: Launchpad (build Unknown)\n" + +#: ../data/deja-dup.desktop.in.h:1 +msgid "Backup your files" +msgstr "" + +#: ../data/deja-dup.desktop.in.h:2 +msgid "Déjà Dup Backup Utility" +msgstr "" + +#. Translators: Monitor in this sense means something akin to 'watcher', not +#. a computer monitor. This program acts like a daemon that kicks off +#. backups at scheduled times. +#: ../data/deja-dup-monitor.desktop.in.h:1 .././po/../monitor/monitor.vala:44 +#: .././po/../monitor/monitor.vala:269 +msgid "Déjà Dup Monitor" +msgstr "" + +#: ../data/deja-dup-monitor.desktop.in.h:2 +msgid "Schedule backups at regular intervals" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:1 +msgid "Amazon S3 Access Key ID" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:2 +msgid "" +"An optional folder name to store files in. This folder will be created in " +"the chosen bucket." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:3 +msgid "Backup location" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:4 +msgid "Directories not to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:5 +msgid "Directories to backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:6 +msgid "How often to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:7 +msgid "Location in which to hold the backup files." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:8 +msgid "The Amazon S3 bucket name to use" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:9 +msgid "The Amazon S3 folder" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:10 +msgid "The last time Déjà Dup was run" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:11 +msgid "The last time Déjà Dup was run, in ISO 8601 format." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:12 +msgid "The number of days between backups." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:13 +msgid "The type of backup location. Valid values are 's3' or 'file'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:14 +msgid "" +"This list of directories will be backed up. Reserved values $HOME, $DESKTOP, " +"$DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, $TEMPLATES, $TRASH, " +"and $VIDEO are recognized as the user's special directories. Relative " +"entries are relative to the user's home directory." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:15 +msgid "" +"This list of directories will not be backed up. Reserved values $HOME, " +"$DESKTOP, $DOCUMENTS, $DOWNLOAD, $MUSIC, $PICTURES, $PUBLIC_SHARE, " +"$TEMPLATES, $TRASH, and $VIDEO are recognized as the user's special " +"directories. Relative entries are relative to the user's home directory. " +"This list takes precedence over the include list." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:16 +msgid "Type of location to store backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:17 +msgid "Whether to automatically backup on a regular schedule." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:18 +msgid "Whether to encrypt your backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:19 +msgid "" +"Whether to encrypt your backup files in the storage location. It's strongly " +"recommended to leave this as 'true'." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:20 +msgid "Whether to periodically backup" +msgstr "" + +#: ../data/deja-dup.schemas.in.h:21 +msgid "" +"Which Amazon S3 bucket to store files in. This does not need to exist " +"already. Only legal hostname strings are valid." +msgstr "" + +#: ../data/deja-dup.schemas.in.h:22 +msgid "Your Amazon S3 Access Key Identifier. This acts as your S3 username." +msgstr "" + +#: .././po/../applet/applet.vala:26 .././po/../deja-dup/main.vala:30 +#: .././po/../monitor/monitor.vala:35 +#: .././po/../preferences/preferences.vala:26 +msgid "Show version" +msgstr "" + +#. Translators: 'Applet' in the sense of a notification area icon +#: .././po/../applet/applet.vala:35 .././po/../applet/applet.vala:49 +msgid "Déjà Dup Applet" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:74 +#, c-format +msgid "%.1f%% complete" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:121 +msgid "Backup about to start" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:122 +msgid "" +"A scheduled backup will shortly begin. You can instead choose to backup " +"later or not at all." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:125 +msgid "Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:126 +msgid "Backup Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:143 +msgid "Encryption password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:144 +msgid "Please enter the encryption password for your backup files." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:147 .././po/../applet/StatusIcon.vala:165 +msgid "Enter" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:161 +msgid "Server password needed" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:162 +msgid "Please enter the server password for your backup." +msgstr "" + +#: .././po/../applet/StatusIcon.vala:179 +msgid "Backup error occurred" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:184 +msgid "Rerun" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:262 +msgid "Backup _Later" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:266 +msgid "_Skip Backup" +msgstr "" + +#: .././po/../applet/StatusIcon.vala:302 +#: .././po/../deja-dup/MainWindow.vala:163 +msgid "Could not open preferences" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:26 +msgid "Backup" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:40 +#: .././po/../deja-dup/AssistantRestore.vala:93 +#: .././po/../preferences/PreferencesDialog.vala:54 +msgid "_Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:47 +#: .././po/../preferences/PreferencesDialog.vala:135 +msgid "_Encrypt backup files" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:68 +#: .././po/../preferences/PreferencesDialog.vala:99 +msgid "I_nclude files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:81 +#: .././po/../preferences/PreferencesDialog.vala:118 +msgid "E_xcept files in folders:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:100 +#: .././po/../deja-dup/AssistantBackup.vala:108 +#: .././po/../deja-dup/AssistantRestore.vala:114 +msgid "Preferences" +msgstr "Tercihler" + +#: .././po/../deja-dup/AssistantBackup.vala:124 +#: .././po/../deja-dup/AssistantRestore.vala:213 +msgid "Backup location:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:131 +#: .././po/../deja-dup/AssistantRestore.vala:220 +msgid "Encrypted:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:138 +msgid "Include from:" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:146 +msgid "Except for:" +msgstr "" + +#. Translators: This is the phrase 'Backing up' in the larger phrase +#. "Backing up '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantBackup.vala:166 +msgid "Backing up" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:186 +msgid "Backup Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:188 +msgid "Backup Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantBackup.vala:189 +msgid "Your files were successfully backed up." +msgstr "Dosyalarınız başarılı bir şekilde yedeklendi." + +#: .././po/../deja-dup/AssistantBackup.vala:193 +#: .././po/../libdeja-dup/Operation.vala:49 +msgid "Backing up..." +msgstr "Yedekleniyor..." + +#: .././po/../deja-dup/AssistantOperation.vala:147 +msgid "_Details" +msgstr "" + +#: .././po/../deja-dup/AssistantOperation.vala:234 +msgid "Summary" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:70 +msgid "Restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:100 +msgid "Backup files are _encrypted" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:138 +msgid "_Date:" +msgstr "_Tarih:" + +#: .././po/../deja-dup/AssistantRestore.vala:161 +msgid "Restore files to _original locations" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:166 +msgid "Restore to _specific folder" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:176 +msgid "Choose destination for restored files" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:180 +msgid "Restore _folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:227 +msgid "Restore date:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:236 +msgid "Restore folder:" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:261 +msgid "Checking for Backups" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:272 +msgid "Restore from When?" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:283 +msgid "Restore to Where?" +msgstr "" + +#. Translators: This is the word 'Restoring' in the phrase +#. "Restoring '%s'". %s is a filename. +#: .././po/../deja-dup/AssistantRestore.vala:306 +msgid "Restoring" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:340 +msgid "No backups to restore" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:434 +msgid "Original location" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:447 +msgid "File to restore:" +msgid_plural "Files to restore:" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../deja-dup/AssistantRestore.vala:469 +msgid "Restore Failed" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:471 +msgid "Restore Finished" +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:472 +msgid "Your files were successfully restored." +msgstr "" + +#: .././po/../deja-dup/AssistantRestore.vala:476 +#: .././po/../libdeja-dup/Operation.vala:51 +msgid "Restoring..." +msgstr "" + +#: .././po/../deja-dup/main.vala:31 +msgid "Restore given files" +msgstr "" + +#. Translators: The name is a play on the French phrase "déjà vu" meaning +#. "already seen", but with the "vu" replaced with "dup". "Dup" in this +#. context is itself a reference to both the underlying command line tool +#. "duplicity" and the act of duplicating data for backup. As a whole, it +#. may not be very translatable. +#: .././po/../deja-dup/main.vala:41 .././po/../deja-dup/main.vala:67 +#: .././po/../deja-dup/MainWindow.vala:28 +msgid "Déjà Dup" +msgstr "" + +#: .././po/../deja-dup/main.vala:47 +msgid "No filenames provided" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:44 +#: .././po/../deja-dup/MainWindow.vala:185 +msgid "_Restore" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:69 +#: .././po/../deja-dup/MainWindow.vala:179 +msgid "_Backup" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:176 +msgid "_File" +msgstr "_Dosya" + +#: .././po/../deja-dup/MainWindow.vala:195 +msgid "_Edit" +msgstr "_Düzenle" + +#: .././po/../deja-dup/MainWindow.vala:202 +msgid "_Help" +msgstr "_Yardım" + +#: .././po/../deja-dup/MainWindow.vala:205 +msgid "_Contents" +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:209 +msgid "Get Help _Online..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:213 +msgid "_Translate This Application..." +msgstr "" + +#: .././po/../deja-dup/MainWindow.vala:217 +msgid "_Report a Problem..." +msgstr "" + +#: .././po/../libdeja-dup/BackendFile.vala:48 +msgid "GVFS FUSE is not installed" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:122 +#, c-format +msgid "Folder %s on Amazon S3" +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/BackendS3.vala:167 +msgid "Amazon S3 Password" +msgstr "" + +#: .././po/../libdeja-dup/BackendS3.vala:168 +msgid "" +"Enter your Amazon Web Services user ID and secret key. This is not the same " +"as your amazon.com username and password." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:28 +msgid "Connect to _Server..." +msgstr "" + +#: .././po/../libdeja-dup/ButtonConnect.vala:37 +msgid "Could not open connection dialog" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "Yes" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelBool.vala:36 +msgid "No" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:56 +#: .././po/../libdeja-dup/ConfigList.vala:111 +msgid "Home Folder" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLabelList.vala:58 +#: .././po/../libdeja-dup/ConfigList.vala:113 +msgid "Trash" +msgstr "" + +#: .././po/../libdeja-dup/ConfigList.vala:152 +msgid "Choose folders" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:41 +msgid "Select Backup Location" +msgstr "" + +#: .././po/../libdeja-dup/ConfigLocation.vala:67 +#: .././po/../libdeja-dup/libdeja-dup.vala:301 +msgid "Amazon S3" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:36 +msgid "Daily" +msgstr "Günlük" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:37 +msgid "Weekly" +msgstr "Haftalık" + +#. Translators: Biweekly is every two weeks +#: .././po/../libdeja-dup/ConfigPeriod.vala:39 +msgid "Biweekly" +msgstr "" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:40 +msgid "Monthly" +msgstr "Aylık" + +#: .././po/../libdeja-dup/ConfigPeriod.vala:96 +#, c-format +msgid "Every %d day" +msgid_plural "Every %d days" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:125 +msgid "Could not run duplicity" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:131 +msgid "" +"Could not understand duplicity version.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:133 +#, c-format +msgid "" +"Could not understand duplicity version '%s'.\n" +"\n" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:135 +msgid "Without duplicity, Déjà Dup cannot function. It will close now." +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:146 +msgid "Duplicity's version is too old" +msgstr "" + +#: .././po/../libdeja-dup/DuplicityInfo.vala:147 +#, c-format +msgid "" +"Déjà Dup requires at least version %d.%d.%.2d of duplicity, but only found " +"version %d.%d.%.2d" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:137 +#: .././po/../libdeja-dup/Duplicity.vala:145 +msgid "Preparing..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:199 +msgid "Cleaning up..." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:266 +#: .././po/../libdeja-dup/Duplicity.vala:415 +msgid "Failed with an unknown error." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:341 +#, c-format +msgid "Could not restore '%s': File not found in backup" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:355 +msgid "Invalid ID." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:357 +msgid "Invalid secret key." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:359 +msgid "Your Amazon Web Services account is not signed up for the S3 service." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:368 +msgid "S3 bucket name is not available." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:373 +msgid "Bad encryption password." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:377 +#, c-format +msgid "Error reading file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:379 +#, c-format +msgid "Error writing file '%s'." +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:387 +#, c-format +msgid "No space left in %s" +msgstr "" + +#: .././po/../libdeja-dup/Duplicity.vala:407 +msgid "No backup files found" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:95 +#, c-format +msgid "Could not display %s" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:138 +msgid "About Déjà Dup" +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:142 +msgid "translator-credits" +msgstr "" +"Launchpad Contributions:\n" +" AngelSpy https://launchpad.net/~melissa-dilara" + +#: .././po/../libdeja-dup/libdeja-dup.vala:147 +#, c-format +msgid "" +"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 3 of the License, or (at your option) " +"any later version." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:148 +msgid "" +"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 General Public License for " +"more details." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:149 +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program. If not, see http://www.gnu.org/licenses/." +msgstr "" + +#: .././po/../libdeja-dup/libdeja-dup.vala:313 +msgid "Unknown" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:447 +msgid "Co_nnect" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:514 +msgid "Connect _anonymously" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:523 +msgid "Connect as u_ser:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:561 +msgid "_Username:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:566 +msgid "_Domain:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:572 +msgid "_Password:" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:590 +msgid "Forget password _immediately" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:600 +msgid "Remember password until you _logout" +msgstr "" + +#: .././po/../libdeja-dup/mountoperation.c:610 +msgid "Remember _forever" +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:59 +msgid "Restoring files..." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:172 +#, c-format +msgid "" +"Not all files could be restored. Any files that could not be restored may " +"still be found in %s." +msgstr "" + +#: .././po/../libdeja-dup/OperationRestore.vala:181 +#, c-format +msgid "Could not restore %s: %s" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:53 +msgid "Checking for backups..." +msgstr "" + +#. Ask user +#: .././po/../libdeja-dup/Operation.vala:214 +msgid "Encryption Password" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:215 +msgid "Enter the password used to encrypt your backup files." +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:236 +msgid "Déjà Dup backup passphrase" +msgstr "" + +#: .././po/../libdeja-dup/Operation.vala:255 +msgid "Another Déjà Dup is already running" +msgstr "" + +#: .././po/../nautilus/NautilusExtension.c:95 +msgid "Revert to Previous Version..." +msgid_plural "Revert to Previous Versions..." +msgstr[0] "" +msgstr[1] "" + +#: .././po/../nautilus/NautilusExtension.c:99 +msgid "Restore file from backup" +msgid_plural "Restore files from backup" +msgstr[0] "" +msgstr[1] "" + +#: .././po/../preferences/PreferencesDialog.vala:36 +#: .././po/../preferences/preferences.vala:35 +#: .././po/../preferences/preferences.vala:66 +msgid "Déjà Dup Preferences" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:68 +#, c-format +msgid "S3 Access Key I_D:" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:80 +#, c-format +msgid "_Folder:" +msgstr "_Klasör:" + +#: .././po/../preferences/PreferencesDialog.vala:141 +msgid "_Automatically backup on a regular schedule" +msgstr "" + +#: .././po/../preferences/PreferencesDialog.vala:148 +#, c-format +msgid "How _often to backup:" +msgstr "" + +#~ msgid "USER COMMANDS" +#~ msgstr "KULLANICI KOMUTLARI" + +#~ msgid "DESCRIPTION" +#~ msgstr "AÇIKLAMA" + +#~ msgid "OPTIONS" +#~ msgstr "SEÇENEKLER" + +#~ msgid "C" +#~ msgstr "C" + +#~ msgid "Default: <guilabel>Weekly</guilabel>." +#~ msgstr "Varsayılan: <guilabel>Haftalık</guilabel>." diff -Nru deja-dup-7.4/preferences/ConfigBackend.c deja-dup-10.0/preferences/ConfigBackend.c --- deja-dup-7.4/preferences/ConfigBackend.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigBackend.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,92 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigBackend.h" -#include <gtk/gtk.h> -#include <glib/gi18n-lib.h> -#include "ConfigWidget.h" - - - - -enum { - CONFIG_BACKEND_DUMMY_PROPERTY -}; -static GObject * config_backend_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_backend_parent_class = NULL; - - - -ConfigBackend* config_backend_construct (GType object_type, const char* key) { - GParameter * __params; - GParameter * __params_it; - ConfigBackend * self; - g_return_val_if_fail (key != NULL, NULL); - __params = g_new0 (GParameter, 1); - __params_it = __params; - __params_it->name = "key"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, key); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ConfigBackend* config_backend_new (const char* key) { - return config_backend_construct (TYPE_CONFIG_BACKEND, key); -} - - -static GObject * config_backend_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigBackendClass * klass; - GObjectClass * parent_class; - ConfigBackend * self; - klass = CONFIG_BACKEND_CLASS (g_type_class_peek (TYPE_CONFIG_BACKEND)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_BACKEND (obj); - { - GtkListStore* store; - GtkTreeIter iter = {0}; - gint i; - store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING, NULL); - i = 0; - gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Amazon S3"), 1, "s3", -1); - gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Local Folder"), 1, "file", -1); - gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("SSH"), 1, "ssh", -1); - gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable*) store, 0, GTK_SORT_ASCENDING); - config_choice_init ((ConfigChoice*) self, (GtkTreeModel*) store, 1); - (store == NULL) ? NULL : (store = (g_object_unref (store), NULL)); - } - return obj; -} - - -static void config_backend_class_init (ConfigBackendClass * klass) { - config_backend_parent_class = g_type_class_peek_parent (klass); - G_OBJECT_CLASS (klass)->constructor = config_backend_constructor; -} - - -static void config_backend_instance_init (ConfigBackend * self) { -} - - -GType config_backend_get_type (void) { - static GType config_backend_type_id = 0; - if (config_backend_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigBackendClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_backend_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigBackend), 0, (GInstanceInitFunc) config_backend_instance_init, NULL }; - config_backend_type_id = g_type_register_static (TYPE_CONFIG_CHOICE, "ConfigBackend", &g_define_type_info, 0); - } - return config_backend_type_id; -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigBackend.h deja-dup-10.0/preferences/ConfigBackend.h --- deja-dup-7.4/preferences/ConfigBackend.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigBackend.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,60 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGBACKEND_H__ -#define __CONFIGBACKEND_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigChoice.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_BACKEND (config_backend_get_type ()) -#define CONFIG_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_BACKEND, ConfigBackend)) -#define CONFIG_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_BACKEND, ConfigBackendClass)) -#define IS_CONFIG_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_BACKEND)) -#define IS_CONFIG_BACKEND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_BACKEND)) -#define CONFIG_BACKEND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_BACKEND, ConfigBackendClass)) - -typedef struct _ConfigBackend ConfigBackend; -typedef struct _ConfigBackendClass ConfigBackendClass; -typedef struct _ConfigBackendPrivate ConfigBackendPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigBackend { - ConfigChoice parent_instance; - ConfigBackendPrivate * priv; -}; - -struct _ConfigBackendClass { - ConfigChoiceClass parent_class; -}; - - -ConfigBackend* config_backend_construct (GType object_type, const char* key); -ConfigBackend* config_backend_new (const char* key); -GType config_backend_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigBackend.vala deja-dup-10.0/preferences/ConfigBackend.vala --- deja-dup-7.4/preferences/ConfigBackend.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigBackend.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,43 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigBackend : ConfigChoice -{ - public ConfigBackend(string key) { - this.key = key; - } - - construct { - var store = new Gtk.ListStore(2, typeof(string), typeof(string)); - - Gtk.TreeIter iter; - int i = 0; - - store.insert_with_values(out iter, i++, 0, _("Amazon S3"), 1, "s3"); - store.insert_with_values(out iter, i++, 0, _("Local Folder"), 1, "file"); - store.insert_with_values(out iter, i++, 0, _("SSH"), 1, "ssh"); - - store.set_sort_column_id(0, Gtk.SortType.ASCENDING); - - init(store, 1); - } -} - diff -Nru deja-dup-7.4/preferences/ConfigBool.c deja-dup-10.0/preferences/ConfigBool.c --- deja-dup-7.4/preferences/ConfigBool.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigBool.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,253 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigBool.h" -#include <gtk/gtk.h> -#include <gconf/gconf-client.h> - - - - -struct _ConfigBoolPrivate { - char* _label; - GtkCheckButton* button; -}; - -#define CONFIG_BOOL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIG_BOOL, ConfigBoolPrivate)) -enum { - CONFIG_BOOL_DUMMY_PROPERTY, - CONFIG_BOOL_LABEL -}; -static gboolean config_bool_real_get_active (Togglable* base); -static void config_bool_real_set_from_config (ConfigWidget* base); -static void config_bool_handle_toggled (ConfigBool* self); -static void config_bool_set_label (ConfigBool* self, const char* value); -static void _config_bool_handle_toggled_gtk_toggle_button_toggled (GtkCheckButton* _sender, gpointer self); -static GObject * config_bool_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_bool_parent_class = NULL; -static TogglableIface* config_bool_togglable_parent_iface = NULL; -static void config_bool_finalize (GObject* obj); - - - -ConfigBool* config_bool_construct (GType object_type, const char* key, const char* label) { - GParameter * __params; - GParameter * __params_it; - ConfigBool * self; - g_return_val_if_fail (key != NULL, NULL); - g_return_val_if_fail (label != NULL, NULL); - __params = g_new0 (GParameter, 2); - __params_it = __params; - __params_it->name = "key"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, key); - __params_it++; - __params_it->name = "label"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, label); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ConfigBool* config_bool_new (const char* key, const char* label) { - return config_bool_construct (TYPE_CONFIG_BOOL, key, label); -} - - -static gboolean config_bool_real_get_active (Togglable* base) { - ConfigBool * self; - self = (ConfigBool*) base; - return gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->button); -} - - -static void config_bool_real_set_from_config (ConfigWidget* base) { - ConfigBool * self; - GError * inner_error; - self = (ConfigBool*) base; - inner_error = NULL; - { - gboolean val; - val = gconf_client_get_bool (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), &inner_error); - if (inner_error != NULL) { - goto __catch0_g_error; - goto __finally0; - } - gtk_toggle_button_set_active ((GtkToggleButton*) self->priv->button, val); - } - goto __finally0; - __catch0_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigBool.vala:50: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally0: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } -} - - -static void config_bool_handle_toggled (ConfigBool* self) { - GError * inner_error; - g_return_if_fail (self != NULL); - inner_error = NULL; - { - gconf_client_set_bool (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), gtk_toggle_button_get_active ((GtkToggleButton*) self->priv->button), &inner_error); - if (inner_error != NULL) { - goto __catch1_g_error; - goto __finally1; - } - } - goto __finally1; - __catch1_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigBool.vala:60: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally1: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - g_signal_emit_by_name ((Togglable*) self, "toggled"); -} - - -const char* config_bool_get_label (ConfigBool* self) { - g_return_val_if_fail (self != NULL, NULL); - return self->priv->_label; -} - - -static void config_bool_set_label (ConfigBool* self, const char* value) { - char* _tmp2; - const char* _tmp1; - g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_label = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), self->priv->_label = (g_free (self->priv->_label), NULL), _tmp2); - g_object_notify ((GObject *) self, "label"); -} - - -static void _config_bool_handle_toggled_gtk_toggle_button_toggled (GtkCheckButton* _sender, gpointer self) { - config_bool_handle_toggled (self); -} - - -static GObject * config_bool_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigBoolClass * klass; - GObjectClass * parent_class; - ConfigBool * self; - klass = CONFIG_BOOL_CLASS (g_type_class_peek (TYPE_CONFIG_BOOL)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_BOOL (obj); - { - GtkCheckButton* _tmp0; - _tmp0 = NULL; - self->priv->button = (_tmp0 = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_mnemonic (self->priv->_label)), (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)), _tmp0); - gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->button); - config_widget_set_from_config ((ConfigWidget*) self); - g_signal_connect_object ((GtkToggleButton*) self->priv->button, "toggled", (GCallback) _config_bool_handle_toggled_gtk_toggle_button_toggled, self, 0); - } - return obj; -} - - -static void config_bool_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - ConfigBool * self; - gpointer boxed; - self = CONFIG_BOOL (object); - switch (property_id) { - case CONFIG_BOOL_LABEL: - g_value_set_string (value, config_bool_get_label (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void config_bool_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - ConfigBool * self; - self = CONFIG_BOOL (object); - switch (property_id) { - case CONFIG_BOOL_LABEL: - config_bool_set_label (self, g_value_get_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void config_bool_class_init (ConfigBoolClass * klass) { - config_bool_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (ConfigBoolPrivate)); - G_OBJECT_CLASS (klass)->get_property = config_bool_get_property; - G_OBJECT_CLASS (klass)->set_property = config_bool_set_property; - G_OBJECT_CLASS (klass)->constructor = config_bool_constructor; - G_OBJECT_CLASS (klass)->finalize = config_bool_finalize; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_bool_real_set_from_config; - g_object_class_install_property (G_OBJECT_CLASS (klass), CONFIG_BOOL_LABEL, g_param_spec_string ("label", "label", "label", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); -} - - -static void config_bool_togglable_interface_init (TogglableIface * iface) { - config_bool_togglable_parent_iface = g_type_interface_peek_parent (iface); - iface->get_active = config_bool_real_get_active; -} - - -static void config_bool_instance_init (ConfigBool * self) { - self->priv = CONFIG_BOOL_GET_PRIVATE (self); -} - - -static void config_bool_finalize (GObject* obj) { - ConfigBool * self; - self = CONFIG_BOOL (obj); - self->priv->_label = (g_free (self->priv->_label), NULL); - (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)); - G_OBJECT_CLASS (config_bool_parent_class)->finalize (obj); -} - - -GType config_bool_get_type (void) { - static GType config_bool_type_id = 0; - if (config_bool_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigBoolClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_bool_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigBool), 0, (GInstanceInitFunc) config_bool_instance_init, NULL }; - static const GInterfaceInfo togglable_info = { (GInterfaceInitFunc) config_bool_togglable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - config_bool_type_id = g_type_register_static (TYPE_CONFIG_WIDGET, "ConfigBool", &g_define_type_info, 0); - g_type_add_interface_static (config_bool_type_id, TYPE_TOGGLABLE, &togglable_info); - } - return config_bool_type_id; -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigBool.h deja-dup-10.0/preferences/ConfigBool.h --- deja-dup-7.4/preferences/ConfigBool.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigBool.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,62 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGBOOL_H__ -#define __CONFIGBOOL_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigWidget.h" -#include "ToggleGroup.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_BOOL (config_bool_get_type ()) -#define CONFIG_BOOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_BOOL, ConfigBool)) -#define CONFIG_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_BOOL, ConfigBoolClass)) -#define IS_CONFIG_BOOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_BOOL)) -#define IS_CONFIG_BOOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_BOOL)) -#define CONFIG_BOOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_BOOL, ConfigBoolClass)) - -typedef struct _ConfigBool ConfigBool; -typedef struct _ConfigBoolClass ConfigBoolClass; -typedef struct _ConfigBoolPrivate ConfigBoolPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigBool { - ConfigWidget parent_instance; - ConfigBoolPrivate * priv; -}; - -struct _ConfigBoolClass { - ConfigWidgetClass parent_class; -}; - - -ConfigBool* config_bool_construct (GType object_type, const char* key, const char* label); -ConfigBool* config_bool_new (const char* key, const char* label); -const char* config_bool_get_label (ConfigBool* self); -GType config_bool_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigBool.vala deja-dup-10.0/preferences/ConfigBool.vala --- deja-dup-7.4/preferences/ConfigBool.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigBool.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,66 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigBool : ConfigWidget, Togglable -{ - public string label {get; construct;} - - public ConfigBool(string key, string label) - { - this.key = key; - this.label = label; - } - - public bool get_active() {return button.get_active();} - - Gtk.CheckButton button; - construct { - button = new Gtk.CheckButton.with_mnemonic(label); - add(button); - - set_from_config(); - button.toggled += handle_toggled; - } - - protected override void set_from_config() - { - try { - var val = client.get_bool(key); - button.set_active(val); - } - catch (Error e) { - warning("%s\n", e.message); - } - } - - void handle_toggled() - { - try { - client.set_bool(key, button.get_active()); - } - catch (Error e) { - warning("%s\n", e.message); - } - - toggled(); - } -} - diff -Nru deja-dup-7.4/preferences/ConfigChoice.c deja-dup-10.0/preferences/ConfigChoice.c --- deja-dup-7.4/preferences/ConfigChoice.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigChoice.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,275 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigChoice.h" -#include <gconf/gconf-client.h> - - - - -enum { - CONFIG_CHOICE_DUMMY_PROPERTY -}; -static void _config_choice_handle_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self); -static GValue* _g_value_dup (GValue* self); -static void config_choice_real_handle_changed (ConfigChoice* self); -static void config_choice_real_set_from_config (ConfigWidget* base); -static GObject * config_choice_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_choice_parent_class = NULL; -static void config_choice_finalize (GObject* obj); -static int _vala_strcmp0 (const char * str1, const char * str2); - - - -static void _config_choice_handle_changed_gtk_combo_box_changed (GtkComboBox* _sender, gpointer self) { - config_choice_handle_changed (self); -} - - -void config_choice_init (ConfigChoice* self, GtkTreeModel* model, gint gconf_col) { - g_return_if_fail (self != NULL); - g_return_if_fail (model != NULL); - gtk_combo_box_set_model (self->combo, model); - self->gconf_col = gconf_col; - g_signal_connect_object (self->combo, "changed", (GCallback) _config_choice_handle_changed_gtk_combo_box_changed, self, 0); - config_widget_set_from_config ((ConfigWidget*) self); -} - - -static GValue* _g_value_dup (GValue* self) { - return g_boxed_copy (G_TYPE_VALUE, self); -} - - -GValue* config_choice_get_current_value (ConfigChoice* self) { - GtkTreeIter iter = {0}; - if (gtk_combo_box_get_active_iter (self->combo, &iter)) { - GValue val = {0}; - GValue _tmp1 = {0}; - GValue _tmp0 = {0}; - GValue* _tmp4 = {0}; - GValue _tmp3 = {0}; - GValue _tmp2 = {0}; - GValue* _tmp5 = {0}; - gtk_tree_model_get_value (gtk_combo_box_get_model (self->combo), &iter, self->gconf_col, &_tmp0); - val = (_tmp1 = _tmp0, G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL, _tmp1); - return (_tmp5 = (_tmp4 = (_tmp3 = _tmp2 = val, &_tmp3), (_tmp4 == NULL) ? NULL : _g_value_dup (_tmp4)), G_IS_VALUE (&_tmp2) ? (g_value_unset (&_tmp2), NULL) : NULL, _tmp5); - } - return NULL; -} - - -static void config_choice_real_handle_changed (ConfigChoice* self) { - GError * inner_error; - GValue* val; - const char* _tmp0; - const char* _tmp1; - char* strval; - g_return_if_fail (self != NULL); - inner_error = NULL; - val = config_choice_get_current_value (self); - _tmp0 = NULL; - if (val == NULL) { - _tmp0 = ""; - } else { - _tmp0 = g_value_get_string (val); - } - _tmp1 = NULL; - strval = (_tmp1 = _tmp0, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - { - gconf_client_set_string (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), strval, &inner_error); - if (inner_error != NULL) { - goto __catch2_g_error; - goto __finally2; - } - } - goto __finally2; - __catch2_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigChoice.vala:64: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally2: - if (inner_error != NULL) { - (val == NULL) ? NULL : (val = (g_free (val), NULL)); - strval = (g_free (strval), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - g_signal_emit_by_name (self, "changed", strval); - (val == NULL) ? NULL : (val = (g_free (val), NULL)); - strval = (g_free (strval), NULL); -} - - -void config_choice_handle_changed (ConfigChoice* self) { - CONFIG_CHOICE_GET_CLASS (self)->handle_changed (self); -} - - -static void config_choice_real_set_from_config (ConfigWidget* base) { - ConfigChoice * self; - GError * inner_error; - char* confval; - gboolean valid; - GtkTreeIter iter = {0}; - self = (ConfigChoice*) base; - inner_error = NULL; - confval = NULL; - { - const char* _tmp0; - char* _tmp2; - const char* _tmp1; - _tmp0 = gconf_client_get_string (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), &inner_error); - if (inner_error != NULL) { - goto __catch3_g_error; - goto __finally3; - } - _tmp2 = NULL; - _tmp1 = NULL; - confval = (_tmp2 = (_tmp1 = _tmp0, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), confval = (g_free (confval), NULL), _tmp2); - } - goto __finally3; - __catch3_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigChoice.vala:77: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - confval = (g_free (confval), NULL); - return; - } - } - __finally3: - if (inner_error != NULL) { - confval = (g_free (confval), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - valid = FALSE; - valid = gtk_tree_model_get_iter_first (gtk_combo_box_get_model (self->combo), &iter); - while (valid) { - GValue val = {0}; - GValue _tmp4 = {0}; - GValue _tmp3 = {0}; - const char* _tmp5; - char* strval; - gtk_tree_model_get_value (gtk_combo_box_get_model (self->combo), &iter, self->gconf_col, &_tmp3); - val = (_tmp4 = _tmp3, G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL, _tmp4); - _tmp5 = NULL; - strval = (_tmp5 = g_value_get_string (&val), (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)); - if (_vala_strcmp0 (strval, confval) == 0) { - gtk_combo_box_set_active_iter (self->combo, &iter); - G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; - strval = (g_free (strval), NULL); - break; - } - valid = gtk_tree_model_iter_next (gtk_combo_box_get_model (self->combo), &iter); - G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; - strval = (g_free (strval), NULL); - } - confval = (g_free (confval), NULL); -} - - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -ConfigChoice* config_choice_construct (GType object_type) { - ConfigChoice * self; - self = g_object_newv (object_type, 0, NULL); - return self; -} - - -ConfigChoice* config_choice_new (void) { - return config_choice_construct (TYPE_CONFIG_CHOICE); -} - - -static GObject * config_choice_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigChoiceClass * klass; - GObjectClass * parent_class; - ConfigChoice * self; - klass = CONFIG_CHOICE_CLASS (g_type_class_peek (TYPE_CONFIG_CHOICE)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_CHOICE (obj); - { - GtkComboBox* _tmp0; - _tmp0 = NULL; - self->combo = (_tmp0 = g_object_ref_sink ((GtkComboBox*) gtk_combo_box_new_text ()), (self->combo == NULL) ? NULL : (self->combo = (g_object_unref (self->combo), NULL)), _tmp0); - gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->combo); - } - return obj; -} - - -static void config_choice_class_init (ConfigChoiceClass * klass) { - config_choice_parent_class = g_type_class_peek_parent (klass); - G_OBJECT_CLASS (klass)->constructor = config_choice_constructor; - G_OBJECT_CLASS (klass)->finalize = config_choice_finalize; - CONFIG_CHOICE_CLASS (klass)->handle_changed = config_choice_real_handle_changed; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_choice_real_set_from_config; - g_signal_new ("changed", TYPE_CONFIG_CHOICE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); -} - - -static void config_choice_instance_init (ConfigChoice * self) { -} - - -static void config_choice_finalize (GObject* obj) { - ConfigChoice * self; - self = CONFIG_CHOICE (obj); - (self->combo == NULL) ? NULL : (self->combo = (g_object_unref (self->combo), NULL)); - G_OBJECT_CLASS (config_choice_parent_class)->finalize (obj); -} - - -GType config_choice_get_type (void) { - static GType config_choice_type_id = 0; - if (config_choice_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigChoiceClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_choice_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigChoice), 0, (GInstanceInitFunc) config_choice_instance_init, NULL }; - config_choice_type_id = g_type_register_static (TYPE_CONFIG_WIDGET, "ConfigChoice", &g_define_type_info, 0); - } - return config_choice_type_id; -} - - -static int _vala_strcmp0 (const char * str1, const char * str2) { - if (str1 == NULL) { - return -(str1 != str2); - } - if (str2 == NULL) { - return str1 != str2; - } - return strcmp (str1, str2); -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigChoice.h deja-dup-10.0/preferences/ConfigChoice.h --- deja-dup-7.4/preferences/ConfigChoice.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigChoice.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,67 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGCHOICE_H__ -#define __CONFIGCHOICE_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigWidget.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_CHOICE (config_choice_get_type ()) -#define CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_CHOICE, ConfigChoice)) -#define CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_CHOICE, ConfigChoiceClass)) -#define IS_CONFIG_CHOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_CHOICE)) -#define IS_CONFIG_CHOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_CHOICE)) -#define CONFIG_CHOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_CHOICE, ConfigChoiceClass)) - -typedef struct _ConfigChoice ConfigChoice; -typedef struct _ConfigChoiceClass ConfigChoiceClass; -typedef struct _ConfigChoicePrivate ConfigChoicePrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigChoice { - ConfigWidget parent_instance; - ConfigChoicePrivate * priv; - GtkComboBox* combo; - gint gconf_col; -}; - -struct _ConfigChoiceClass { - ConfigWidgetClass parent_class; - void (*handle_changed) (ConfigChoice* self); -}; - - -void config_choice_init (ConfigChoice* self, GtkTreeModel* model, gint gconf_col); -GValue* config_choice_get_current_value (ConfigChoice* self); -void config_choice_handle_changed (ConfigChoice* self); -ConfigChoice* config_choice_construct (GType object_type); -ConfigChoice* config_choice_new (void); -GType config_choice_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigChoice.vala deja-dup-10.0/preferences/ConfigChoice.vala --- deja-dup-7.4/preferences/ConfigChoice.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigChoice.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,98 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigChoice : ConfigWidget -{ - public signal void changed(string val); - - protected Gtk.ComboBox combo; - construct { - combo = new Gtk.ComboBox.text(); - add(combo); - } - - // Subclasses use this to setup the choice list - protected int gconf_col; - public void init(Gtk.TreeModel model, int gconf_col) - { - combo.model = model; - this.gconf_col = gconf_col; - - combo.changed += handle_changed; - - set_from_config(); - } - - public Value? get_current_value() - { - Gtk.TreeIter iter; - if (combo.get_active_iter(out iter)) { - Value val; - combo.model.get_value(iter, gconf_col, out val); - return val; - } - return null; - } - - protected virtual void handle_changed() - { - Value? val = get_current_value(); - string strval = val == null ? "" : val.get_string(); - - try { - client.set_string(key, strval); - } - catch (Error e) { - warning("%s\n", e.message); - } - - changed(strval); - } - - protected override void set_from_config() - { - string confval; - try { - confval = client.get_string(key); - } - catch (Error e) { - warning("%s\n", e.message); - return; - } - - bool valid; - Gtk.TreeIter iter; - valid = combo.model.get_iter_first(out iter); - - while (valid) { - Value val; - combo.model.get_value(iter, gconf_col, out val); - string strval = val.get_string(); - - if (strval == confval) { - combo.set_active_iter(iter); - break; - } - valid = combo.model.iter_next(ref iter); - } - } -} - diff -Nru deja-dup-7.4/preferences/ConfigEntry.c deja-dup-10.0/preferences/ConfigEntry.c --- deja-dup-7.4/preferences/ConfigEntry.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigEntry.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,186 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigEntry.h" -#include <gtk/gtk.h> -#include <gconf/gconf-client.h> - - - - -struct _ConfigEntryPrivate { - GtkEntry* entry; -}; - -#define CONFIG_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIG_ENTRY, ConfigEntryPrivate)) -enum { - CONFIG_ENTRY_DUMMY_PROPERTY -}; -static void config_entry_real_set_from_config (ConfigWidget* base); -static gboolean config_entry_handle_focus_out (ConfigEntry* self); -static gboolean _config_entry_handle_focus_out_gtk_widget_focus_out_event (GtkEntry* _sender, const GdkEventFocus* event, gpointer self); -static GObject * config_entry_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_entry_parent_class = NULL; -static void config_entry_finalize (GObject* obj); - - - -ConfigEntry* config_entry_construct (GType object_type, const char* key) { - GParameter * __params; - GParameter * __params_it; - ConfigEntry * self; - g_return_val_if_fail (key != NULL, NULL); - __params = g_new0 (GParameter, 1); - __params_it = __params; - __params_it->name = "key"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, key); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ConfigEntry* config_entry_new (const char* key) { - return config_entry_construct (TYPE_CONFIG_ENTRY, key); -} - - -static void config_entry_real_set_from_config (ConfigWidget* base) { - ConfigEntry * self; - GError * inner_error; - self = (ConfigEntry*) base; - inner_error = NULL; - { - const char* _tmp0; - char* val; - _tmp0 = NULL; - val = (_tmp0 = gconf_client_get_string (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), &inner_error), (_tmp0 == NULL) ? NULL : g_strdup (_tmp0)); - if (inner_error != NULL) { - goto __catch4_g_error; - goto __finally4; - } - if (val == NULL) { - char* _tmp1; - _tmp1 = NULL; - val = (_tmp1 = g_strdup (""), val = (g_free (val), NULL), _tmp1); - } - gtk_entry_set_text (self->priv->entry, val); - val = (g_free (val), NULL); - } - goto __finally4; - __catch4_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigEntry.vala:47: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally4: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } -} - - -static gboolean config_entry_handle_focus_out (ConfigEntry* self) { - GError * inner_error; - g_return_val_if_fail (self != NULL, FALSE); - inner_error = NULL; - { - gconf_client_set_string (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), gtk_entry_get_text (self->priv->entry), &inner_error); - if (inner_error != NULL) { - goto __catch5_g_error; - goto __finally5; - } - } - goto __finally5; - __catch5_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigEntry.vala:57: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally5: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return FALSE; - } - return FALSE; -} - - -static gboolean _config_entry_handle_focus_out_gtk_widget_focus_out_event (GtkEntry* _sender, const GdkEventFocus* event, gpointer self) { - return config_entry_handle_focus_out (self); -} - - -static GObject * config_entry_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigEntryClass * klass; - GObjectClass * parent_class; - ConfigEntry * self; - klass = CONFIG_ENTRY_CLASS (g_type_class_peek (TYPE_CONFIG_ENTRY)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_ENTRY (obj); - { - GtkEntry* _tmp0; - _tmp0 = NULL; - self->priv->entry = (_tmp0 = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), (self->priv->entry == NULL) ? NULL : (self->priv->entry = (g_object_unref (self->priv->entry), NULL)), _tmp0); - gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->entry); - config_widget_set_from_config ((ConfigWidget*) self); - g_signal_connect_object ((GtkWidget*) self->priv->entry, "focus-out-event", (GCallback) _config_entry_handle_focus_out_gtk_widget_focus_out_event, self, 0); - } - return obj; -} - - -static void config_entry_class_init (ConfigEntryClass * klass) { - config_entry_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (ConfigEntryPrivate)); - G_OBJECT_CLASS (klass)->constructor = config_entry_constructor; - G_OBJECT_CLASS (klass)->finalize = config_entry_finalize; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_entry_real_set_from_config; -} - - -static void config_entry_instance_init (ConfigEntry * self) { - self->priv = CONFIG_ENTRY_GET_PRIVATE (self); -} - - -static void config_entry_finalize (GObject* obj) { - ConfigEntry * self; - self = CONFIG_ENTRY (obj); - (self->priv->entry == NULL) ? NULL : (self->priv->entry = (g_object_unref (self->priv->entry), NULL)); - G_OBJECT_CLASS (config_entry_parent_class)->finalize (obj); -} - - -GType config_entry_get_type (void) { - static GType config_entry_type_id = 0; - if (config_entry_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigEntry), 0, (GInstanceInitFunc) config_entry_instance_init, NULL }; - config_entry_type_id = g_type_register_static (TYPE_CONFIG_WIDGET, "ConfigEntry", &g_define_type_info, 0); - } - return config_entry_type_id; -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigEntry.h deja-dup-10.0/preferences/ConfigEntry.h --- deja-dup-7.4/preferences/ConfigEntry.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigEntry.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,60 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGENTRY_H__ -#define __CONFIGENTRY_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigWidget.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_ENTRY (config_entry_get_type ()) -#define CONFIG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_ENTRY, ConfigEntry)) -#define CONFIG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_ENTRY, ConfigEntryClass)) -#define IS_CONFIG_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_ENTRY)) -#define IS_CONFIG_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_ENTRY)) -#define CONFIG_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_ENTRY, ConfigEntryClass)) - -typedef struct _ConfigEntry ConfigEntry; -typedef struct _ConfigEntryClass ConfigEntryClass; -typedef struct _ConfigEntryPrivate ConfigEntryPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigEntry { - ConfigWidget parent_instance; - ConfigEntryPrivate * priv; -}; - -struct _ConfigEntryClass { - ConfigWidgetClass parent_class; -}; - - -ConfigEntry* config_entry_construct (GType object_type, const char* key); -ConfigEntry* config_entry_new (const char* key); -GType config_entry_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigEntry.vala deja-dup-10.0/preferences/ConfigEntry.vala --- deja-dup-7.4/preferences/ConfigEntry.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigEntry.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,62 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigEntry : ConfigWidget -{ - public ConfigEntry(string key) - { - this.key = key; - } - - Gtk.Entry entry; - construct { - entry = new Gtk.Entry(); - add(entry); - - set_from_config(); - entry.focus_out_event += handle_focus_out; - } - - protected override void set_from_config() - { - try { - var val = client.get_string(key); - if (val == null) - val = ""; - entry.set_text(val); - } - catch (Error e) { - warning("%s\n", e.message); - } - } - - bool handle_focus_out() - { - try { - client.set_string(key, entry.get_text()); - } - catch (Error e) { - warning("%s\n", e.message); - } - return false; - } -} - diff -Nru deja-dup-7.4/preferences/ConfigFolder.c deja-dup-10.0/preferences/ConfigFolder.c --- deja-dup-7.4/preferences/ConfigFolder.c 2009-02-09 21:44:41.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigFolder.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,257 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigFolder.h" -#include <gtk/gtk.h> -#include <gconf/gconf-client.h> -#include <glib/gi18n-lib.h> - - - - -struct _ConfigFolderPrivate { - GtkFileChooserButton* button; -}; - -#define CONFIG_FOLDER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIG_FOLDER, ConfigFolderPrivate)) -enum { - CONFIG_FOLDER_DUMMY_PROPERTY -}; -static void config_folder_real_set_from_config (ConfigWidget* base); -static void config_folder_handle_selection_changed (ConfigFolder* self); -static void _config_folder_handle_selection_changed_gtk_file_chooser_selection_changed (GtkFileChooserButton* _sender, gpointer self); -static GObject * config_folder_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_folder_parent_class = NULL; -static void config_folder_finalize (GObject* obj); -static int _vala_strcmp0 (const char * str1, const char * str2); - - - -ConfigFolder* config_folder_construct (GType object_type, const char* key) { - GParameter * __params; - GParameter * __params_it; - ConfigFolder * self; - g_return_val_if_fail (key != NULL, NULL); - __params = g_new0 (GParameter, 1); - __params_it = __params; - __params_it->name = "key"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, key); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ConfigFolder* config_folder_new (const char* key) { - return config_folder_construct (TYPE_CONFIG_FOLDER, key); -} - - -static void config_folder_real_set_from_config (ConfigWidget* base) { - ConfigFolder * self; - GError * inner_error; - char* val; - self = (ConfigFolder*) base; - inner_error = NULL; - val = NULL; - { - const char* _tmp0; - char* _tmp2; - const char* _tmp1; - _tmp0 = gconf_client_get_string (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), &inner_error); - if (inner_error != NULL) { - goto __catch6_g_error; - goto __finally6; - } - _tmp2 = NULL; - _tmp1 = NULL; - val = (_tmp2 = (_tmp1 = _tmp0, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), val = (g_free (val), NULL), _tmp2); - } - goto __finally6; - __catch6_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigFolder.vala:46: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - val = (g_free (val), NULL); - return; - } - } - __finally6: - if (inner_error != NULL) { - val = (g_free (val), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - if (val == NULL) { - char* _tmp3; - _tmp3 = NULL; - val = (_tmp3 = g_strdup (""), val = (g_free (val), NULL), _tmp3); - } - /* There should really be a better default, but I'm not sure - what. The first mounted volume we see? Create a directory - in $HOME called 'deja-dup'?*/ - if (_vala_strcmp0 (gtk_file_chooser_get_filename ((GtkFileChooser*) self->priv->button), val) != 0) { - gtk_file_chooser_set_filename ((GtkFileChooser*) self->priv->button, val); - } - val = (g_free (val), NULL); -} - - -static void config_folder_handle_selection_changed (ConfigFolder* self) { - GError * inner_error; - char* val; - const char* _tmp3; - char* filename; - g_return_if_fail (self != NULL); - inner_error = NULL; - val = NULL; - { - const char* _tmp0; - char* _tmp2; - const char* _tmp1; - _tmp0 = gconf_client_get_string (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), &inner_error); - if (inner_error != NULL) { - goto __catch7_g_error; - goto __finally7; - } - _tmp2 = NULL; - _tmp1 = NULL; - val = (_tmp2 = (_tmp1 = _tmp0, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), val = (g_free (val), NULL), _tmp2); - } - goto __finally7; - __catch7_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally7: - if (inner_error != NULL) { - val = (g_free (val), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - /* ignore*/ - _tmp3 = NULL; - filename = (_tmp3 = gtk_file_chooser_get_filename ((GtkFileChooser*) self->priv->button), (_tmp3 == NULL) ? NULL : g_strdup (_tmp3)); - if (_vala_strcmp0 (filename, val) == 0) { - val = (g_free (val), NULL); - filename = (g_free (filename), NULL); - return; - } - { - gconf_client_set_string (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), filename, &inner_error); - if (inner_error != NULL) { - goto __catch8_g_error; - goto __finally8; - } - } - goto __finally8; - __catch8_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigFolder.vala:75: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally8: - if (inner_error != NULL) { - val = (g_free (val), NULL); - filename = (g_free (filename), NULL); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - val = (g_free (val), NULL); - filename = (g_free (filename), NULL); -} - - -static void _config_folder_handle_selection_changed_gtk_file_chooser_selection_changed (GtkFileChooserButton* _sender, gpointer self) { - config_folder_handle_selection_changed (self); -} - - -static GObject * config_folder_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigFolderClass * klass; - GObjectClass * parent_class; - ConfigFolder * self; - klass = CONFIG_FOLDER_CLASS (g_type_class_peek (TYPE_CONFIG_FOLDER)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_FOLDER (obj); - { - GtkFileChooserButton* _tmp0; - _tmp0 = NULL; - self->priv->button = (_tmp0 = g_object_ref_sink ((GtkFileChooserButton*) gtk_file_chooser_button_new (_ ("Select Folder"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)), (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)), _tmp0); - gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->button); - config_widget_set_from_config ((ConfigWidget*) self); - g_signal_connect_object ((GtkFileChooser*) self->priv->button, "selection-changed", (GCallback) _config_folder_handle_selection_changed_gtk_file_chooser_selection_changed, self, 0); - } - return obj; -} - - -static void config_folder_class_init (ConfigFolderClass * klass) { - config_folder_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (ConfigFolderPrivate)); - G_OBJECT_CLASS (klass)->constructor = config_folder_constructor; - G_OBJECT_CLASS (klass)->finalize = config_folder_finalize; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_folder_real_set_from_config; -} - - -static void config_folder_instance_init (ConfigFolder * self) { - self->priv = CONFIG_FOLDER_GET_PRIVATE (self); -} - - -static void config_folder_finalize (GObject* obj) { - ConfigFolder * self; - self = CONFIG_FOLDER (obj); - (self->priv->button == NULL) ? NULL : (self->priv->button = (g_object_unref (self->priv->button), NULL)); - G_OBJECT_CLASS (config_folder_parent_class)->finalize (obj); -} - - -GType config_folder_get_type (void) { - static GType config_folder_type_id = 0; - if (config_folder_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigFolderClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_folder_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigFolder), 0, (GInstanceInitFunc) config_folder_instance_init, NULL }; - config_folder_type_id = g_type_register_static (TYPE_CONFIG_WIDGET, "ConfigFolder", &g_define_type_info, 0); - } - return config_folder_type_id; -} - - -static int _vala_strcmp0 (const char * str1, const char * str2) { - if (str1 == NULL) { - return -(str1 != str2); - } - if (str2 == NULL) { - return str1 != str2; - } - return strcmp (str1, str2); -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigFolder.h deja-dup-10.0/preferences/ConfigFolder.h --- deja-dup-7.4/preferences/ConfigFolder.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigFolder.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,60 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGFOLDER_H__ -#define __CONFIGFOLDER_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigWidget.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_FOLDER (config_folder_get_type ()) -#define CONFIG_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_FOLDER, ConfigFolder)) -#define CONFIG_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_FOLDER, ConfigFolderClass)) -#define IS_CONFIG_FOLDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_FOLDER)) -#define IS_CONFIG_FOLDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_FOLDER)) -#define CONFIG_FOLDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_FOLDER, ConfigFolderClass)) - -typedef struct _ConfigFolder ConfigFolder; -typedef struct _ConfigFolderClass ConfigFolderClass; -typedef struct _ConfigFolderPrivate ConfigFolderPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigFolder { - ConfigWidget parent_instance; - ConfigFolderPrivate * priv; -}; - -struct _ConfigFolderClass { - ConfigWidgetClass parent_class; -}; - - -ConfigFolder* config_folder_construct (GType object_type, const char* key); -ConfigFolder* config_folder_new (const char* key); -GType config_folder_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigFolder.vala deja-dup-10.0/preferences/ConfigFolder.vala --- deja-dup-7.4/preferences/ConfigFolder.vala 2009-02-09 21:44:37.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigFolder.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,79 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigFolder : ConfigWidget -{ - public ConfigFolder(string key) - { - this.key = key; - } - - Gtk.FileChooserButton button; - construct { - button = new Gtk.FileChooserButton(_("Select Folder"), - Gtk.FileChooserAction.SELECT_FOLDER); - add(button); - - set_from_config(); - button.selection_changed += handle_selection_changed; - } - - protected override void set_from_config() - { - string val; - try { - val = client.get_string(key); - } - catch (Error e) { - warning("%s\n", e.message); - return; - } - if (val == null) - val = ""; // There should really be a better default, but I'm not sure - // what. The first mounted volume we see? Create a directory - // in $HOME called 'deja-dup'? - - if (button.get_filename() != val) { - button.set_filename(val); - } - } - - void handle_selection_changed() - { - string val = null; - try { - val = client.get_string(key); - } - catch (Error e) {} // ignore - - string filename = button.get_filename(); - if (filename == val) - return; // we sometimes get several selection changed notices in a row... - - try { - client.set_string(key, filename); - } - catch (Error e) { - warning("%s\n", e.message); - } - } -} - diff -Nru deja-dup-7.4/preferences/ConfigList.c deja-dup-10.0/preferences/ConfigList.c --- deja-dup-7.4/preferences/ConfigList.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigList.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,524 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigList.h" -#include <gtk/gtk.h> -#include <gconf/gconf-client.h> -#include <gconf/gconf.h> -#include <libdeja-dup.h> -#include <gio/gio.h> -#include <glib/gi18n-lib.h> - - - - -struct _ConfigListPrivate { - GtkTreeView* tree; - GtkButton* add_button; - GtkButton* remove_button; -}; - -#define CONFIG_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIG_LIST, ConfigListPrivate)) -enum { - CONFIG_LIST_DUMMY_PROPERTY -}; -static void config_list_real_set_from_config (ConfigWidget* base); -static void config_list_handle_selection_change (ConfigList* self, GtkTreeSelection* sel); -static void config_list_handle_add (ConfigList* self); -static void config_list_handle_remove (ConfigList* self); -static void _config_list_handle_add_gtk_button_clicked (GtkButton* _sender, gpointer self); -static void _config_list_handle_remove_gtk_button_clicked (GtkButton* _sender, gpointer self); -static void _config_list_handle_selection_change_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self); -static GObject * config_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_list_parent_class = NULL; -static void config_list_finalize (GObject* obj); -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); - - - -ConfigList* config_list_construct (GType object_type, const char* key) { - GParameter * __params; - GParameter * __params_it; - ConfigList * self; - g_return_val_if_fail (key != NULL, NULL); - __params = g_new0 (GParameter, 1); - __params_it = __params; - __params_it->name = "key"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, key); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ConfigList* config_list_new (const char* key) { - return config_list_construct (TYPE_CONFIG_LIST, key); -} - - -static void config_list_real_set_from_config (ConfigWidget* base) { - ConfigList * self; - GError * inner_error; - GSList* slist; - GFile** _tmp2; - gint list_size; - gint list_length1; - gint _tmp1; - GFile** list; - GtkListStore* model; - gint i; - GFile* home; - char* _tmp3; - GFile* _tmp4; - GFile* trash; - self = (ConfigList*) base; - inner_error = NULL; - slist = NULL; - { - GSList* _tmp0; - _tmp0 = gconf_client_get_list (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), GCONF_VALUE_STRING, &inner_error); - if (inner_error != NULL) { - goto __catch9_g_error; - goto __finally9; - } - slist = _tmp0; - } - goto __finally9; - __catch9_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigList.vala:72: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - return; - } - } - __finally9: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - _tmp2 = NULL; - list = (_tmp2 = deja_dup_parse_dir_list (slist, &_tmp1), list_length1 = _tmp1, list_size = list_length1, _tmp2); - model = NULL; - g_object_get ((GObject*) self->priv->tree, "model", &model, NULL); - gtk_list_store_clear (model); - i = 0; - home = g_file_new_for_path (g_get_home_dir ()); - _tmp3 = NULL; - _tmp4 = NULL; - trash = (_tmp4 = g_file_new_for_path (_tmp3 = deja_dup_get_trash_path ()), _tmp3 = (g_free (_tmp3), NULL), _tmp4); - { - GFile** f_collection; - int f_collection_length1; - int f_it; - f_collection = list; - f_collection_length1 = list_length1; - for (f_it = 0; f_it < list_length1; f_it = f_it + 1) { - GFile* _tmp15; - GFile* f; - _tmp15 = NULL; - f = (_tmp15 = f_collection[f_it], (_tmp15 == NULL) ? NULL : g_object_ref (_tmp15)); - { - char* s; - GtkTreeIter iter = {0}; - char* _tmp11; - GIcon* icon; - s = NULL; - if (g_file_equal (f, home)) { - char* _tmp6; - const char* _tmp5; - _tmp6 = NULL; - _tmp5 = NULL; - s = (_tmp6 = (_tmp5 = _ ("Home Folder"), (_tmp5 == NULL) ? NULL : g_strdup (_tmp5)), s = (g_free (s), NULL), _tmp6); - } else { - if (g_file_equal (f, trash)) { - char* _tmp8; - const char* _tmp7; - _tmp8 = NULL; - _tmp7 = NULL; - s = (_tmp8 = (_tmp7 = _ ("Trash"), (_tmp7 == NULL) ? NULL : g_strdup (_tmp7)), s = (g_free (s), NULL), _tmp8); - } else { - if (g_file_has_prefix (f, home)) { - char* _tmp9; - _tmp9 = NULL; - s = (_tmp9 = g_file_get_relative_path (home, f), s = (g_free (s), NULL), _tmp9); - } else { - char* _tmp10; - _tmp10 = NULL; - s = (_tmp10 = g_file_get_path (f), s = (g_free (s), NULL), _tmp10); - } - } - } - _tmp11 = NULL; - gtk_list_store_insert_with_values (model, &iter, i++, 0, _tmp11 = g_file_get_path (f), 1, s, -1); - _tmp11 = (g_free (_tmp11), NULL); - /* If the folder is the trash, look up icon especially. For some - reason, gio doesn't do it for us.*/ - icon = NULL; - if (g_file_equal (f, trash)) { - GIcon* _tmp12; - /* Until vala bug #564062 is fixed, we use append. Else I'd use from_names*/ - _tmp12 = NULL; - icon = (_tmp12 = (GIcon*) ((GThemedIcon*) g_themed_icon_new ("user-trash")), (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)), _tmp12); - g_themed_icon_append_name ((G_THEMED_ICON (icon)), "folder"); - } else { - { - GFileInfo* info; - GIcon* _tmp14; - GIcon* _tmp13; - info = g_file_query_info (f, G_FILE_ATTRIBUTE_STANDARD_ICON, G_FILE_QUERY_INFO_NONE, NULL, &inner_error); - if (inner_error != NULL) { - goto __catch10_g_error; - goto __finally10; - } - _tmp14 = NULL; - _tmp13 = NULL; - icon = (_tmp14 = (_tmp13 = g_file_info_get_icon (info), (_tmp13 == NULL) ? NULL : g_object_ref (_tmp13)), (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)), _tmp14); - (info == NULL) ? NULL : (info = (g_object_unref (info), NULL)); - } - goto __finally10; - __catch10_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigList.vala:113: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally10: - if (inner_error != NULL) { - (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); - s = (g_free (s), NULL); - (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)); - list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_object_unref), NULL); - (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)); - (home == NULL) ? NULL : (home = (g_object_unref (home), NULL)); - (trash == NULL) ? NULL : (trash = (g_object_unref (trash), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - } - if (icon != NULL) { - gtk_list_store_set (model, &iter, 2, icon, -1); - } - (f == NULL) ? NULL : (f = (g_object_unref (f), NULL)); - s = (g_free (s), NULL); - (icon == NULL) ? NULL : (icon = (g_object_unref (icon), NULL)); - } - } - } - list = (_vala_array_free (list, list_length1, (GDestroyNotify) g_object_unref), NULL); - (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)); - (home == NULL) ? NULL : (home = (g_object_unref (home), NULL)); - (trash == NULL) ? NULL : (trash = (g_object_unref (trash), NULL)); -} - - -static void config_list_handle_selection_change (ConfigList* self, GtkTreeSelection* sel) { - gboolean empty; - g_return_if_fail (self != NULL); - g_return_if_fail (sel != NULL); - empty = gtk_tree_selection_count_selected_rows (sel) == 0; - gtk_widget_set_sensitive ((GtkWidget*) self->priv->remove_button, !empty); -} - - -static void config_list_handle_add (ConfigList* self) { - GError * inner_error; - GtkFileChooserDialog* dlg; - GFile* folder; - GSList* slist; - g_return_if_fail (self != NULL); - inner_error = NULL; - dlg = g_object_ref_sink ((GtkFileChooserDialog*) gtk_file_chooser_dialog_new (_ ("Choose folder"), GTK_WINDOW (gtk_widget_get_toplevel ((GtkWidget*) self)), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL)); - if (gtk_dialog_run ((GtkDialog*) dlg) != GTK_RESPONSE_ACCEPT) { - (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); - return; - } - folder = g_file_new_for_path (gtk_file_chooser_get_filename ((GtkFileChooser*) dlg)); - gtk_widget_hide ((GtkWidget*) dlg); - slist = NULL; - { - GSList* _tmp0; - gboolean found; - _tmp0 = gconf_client_get_list (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), GCONF_VALUE_STRING, &inner_error); - if (inner_error != NULL) { - goto __catch11_g_error; - goto __finally11; - } - slist = _tmp0; - found = FALSE; - { - GSList* s_collection; - GSList* s_it; - s_collection = slist; - for (s_it = s_collection; s_it != NULL; s_it = s_it->next) { - const char* _tmp1; - char* s; - _tmp1 = NULL; - s = (_tmp1 = (const char*) s_it->data, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)); - { - GFile* sfile; - sfile = g_file_new_for_path (s); - if (g_file_equal (sfile, folder)) { - found = TRUE; - s = (g_free (s), NULL); - (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); - break; - } - s = (g_free (s), NULL); - (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); - } - } - } - if (!found) { - slist = g_slist_append (slist, g_file_get_path (folder)); - gconf_client_set_list (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), GCONF_VALUE_STRING, slist, &inner_error); - if (inner_error != NULL) { - goto __catch11_g_error; - goto __finally11; - } - } else { - GtkMessageDialog* msgdlg; - char* _tmp2; - msgdlg = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel ((GtkWidget*) self)), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _ ("Could not add the folder"), NULL)); - _tmp2 = NULL; - gtk_message_dialog_format_secondary_text (msgdlg, _ ("%s is already in the list."), _tmp2 = g_file_get_path (folder), NULL); - _tmp2 = (g_free (_tmp2), NULL); - gtk_dialog_run ((GtkDialog*) msgdlg); - gtk_object_destroy ((GtkObject*) msgdlg); - (msgdlg == NULL) ? NULL : (msgdlg = (g_object_unref (msgdlg), NULL)); - } - } - goto __finally11; - __catch11_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigList.vala:170: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); - (folder == NULL) ? NULL : (folder = (g_object_unref (folder), NULL)); - return; - } - } - __finally11: - if (inner_error != NULL) { - (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); - (folder == NULL) ? NULL : (folder = (g_object_unref (folder), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - (dlg == NULL) ? NULL : (dlg = (g_object_unref (dlg), NULL)); - (folder == NULL) ? NULL : (folder = (g_object_unref (folder), NULL)); -} - - -static void config_list_handle_remove (ConfigList* self) { - GError * inner_error; - GtkTreeSelection* _tmp0; - GtkTreeSelection* sel; - GtkTreeModel* model; - GtkTreeIter iter = {0}; - char* current; - GFile* current_file; - g_return_if_fail (self != NULL); - inner_error = NULL; - _tmp0 = NULL; - sel = (_tmp0 = gtk_tree_view_get_selection (self->priv->tree), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - model = NULL; - if (!gtk_tree_selection_get_selected (sel, &model, &iter)) { - (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); - return; - } - current = NULL; - gtk_tree_model_get (model, &iter, 0, ¤t, -1); - current_file = g_file_new_for_path (current); - { - GSList* slist; - GSList* siter; - slist = gconf_client_get_list (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), GCONF_VALUE_STRING, &inner_error); - if (inner_error != NULL) { - goto __catch12_g_error; - goto __finally12; - } - siter = slist; - while (siter != NULL) { - GFile* sfile; - sfile = deja_dup_parse_dir ((const char*) siter->data); - if (g_file_equal (sfile, current_file)) { - slist = g_slist_remove_link (slist, siter); - gconf_client_set_list (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), GCONF_VALUE_STRING, slist, &inner_error); - if (inner_error != NULL) { - (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); - goto __catch12_g_error; - goto __finally12; - } - (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); - break; - } - siter = siter->next; - (sfile == NULL) ? NULL : (sfile = (g_object_unref (sfile), NULL)); - } - } - goto __finally12; - __catch12_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigList.vala:202: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); - current = (g_free (current), NULL); - (current_file == NULL) ? NULL : (current_file = (g_object_unref (current_file), NULL)); - return; - } - } - __finally12: - if (inner_error != NULL) { - (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); - current = (g_free (current), NULL); - (current_file == NULL) ? NULL : (current_file = (g_object_unref (current_file), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - (sel == NULL) ? NULL : (sel = (g_object_unref (sel), NULL)); - current = (g_free (current), NULL); - (current_file == NULL) ? NULL : (current_file = (g_object_unref (current_file), NULL)); -} - - -static void _config_list_handle_add_gtk_button_clicked (GtkButton* _sender, gpointer self) { - config_list_handle_add (self); -} - - -static void _config_list_handle_remove_gtk_button_clicked (GtkButton* _sender, gpointer self) { - config_list_handle_remove (self); -} - - -static void _config_list_handle_selection_change_gtk_tree_selection_changed (GtkTreeSelection* _sender, gpointer self) { - config_list_handle_selection_change (self, _sender); -} - - -static GObject * config_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigListClass * klass; - GObjectClass * parent_class; - ConfigList * self; - klass = CONFIG_LIST_CLASS (g_type_class_peek (TYPE_CONFIG_LIST)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_LIST (obj); - { - GtkListStore* model; - GtkTreeView* _tmp0; - GtkCellRendererPixbuf* _tmp1; - GtkCellRendererText* renderer; - GtkButton* _tmp2; - GtkButton* _tmp3; - GtkHBox* hbox; - GtkVBox* vbox; - model = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_ICON, NULL); - _tmp0 = NULL; - self->priv->tree = (_tmp0 = g_object_ref_sink ((GtkTreeView*) gtk_tree_view_new ()), (self->priv->tree == NULL) ? NULL : (self->priv->tree = (g_object_unref (self->priv->tree), NULL)), _tmp0); - g_object_set ((GObject*) self->priv->tree, "model", model, "headers-visible", FALSE, NULL); - _tmp1 = NULL; - gtk_tree_view_insert_column_with_attributes (self->priv->tree, -1, NULL, (GtkCellRenderer*) (_tmp1 = g_object_ref_sink ((GtkCellRendererPixbuf*) gtk_cell_renderer_pixbuf_new ())), "gicon", 2, NULL); - (_tmp1 == NULL) ? NULL : (_tmp1 = (g_object_unref (_tmp1), NULL)); - renderer = g_object_ref_sink ((GtkCellRendererText*) gtk_cell_renderer_text_new ()); - gtk_tree_view_insert_column_with_attributes (self->priv->tree, -1, NULL, (GtkCellRenderer*) renderer, "text", 1, NULL); - _tmp2 = NULL; - self->priv->add_button = (_tmp2 = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_ADD)), (self->priv->add_button == NULL) ? NULL : (self->priv->add_button = (g_object_unref (self->priv->add_button), NULL)), _tmp2); - g_signal_connect_object (self->priv->add_button, "clicked", (GCallback) _config_list_handle_add_gtk_button_clicked, self, 0); - _tmp3 = NULL; - self->priv->remove_button = (_tmp3 = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE)), (self->priv->remove_button == NULL) ? NULL : (self->priv->remove_button = (g_object_unref (self->priv->remove_button), NULL)), _tmp3); - g_signal_connect_object (self->priv->remove_button, "clicked", (GCallback) _config_list_handle_remove_gtk_button_clicked, self, 0); - hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6)); - vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6)); - gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) self->priv->add_button, FALSE, FALSE, (guint) 0); - gtk_box_pack_start ((GtkBox*) vbox, (GtkWidget*) self->priv->remove_button, FALSE, FALSE, (guint) 0); - gtk_container_add ((GtkContainer*) hbox, (GtkWidget*) self->priv->tree); - gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox, FALSE, FALSE, (guint) 0); - gtk_container_add ((GtkContainer*) self, (GtkWidget*) hbox); - config_widget_set_from_config ((ConfigWidget*) self); - config_list_handle_selection_change (self, gtk_tree_view_get_selection (self->priv->tree)); - g_signal_connect_object (gtk_tree_view_get_selection (self->priv->tree), "changed", (GCallback) _config_list_handle_selection_change_gtk_tree_selection_changed, self, 0); - (model == NULL) ? NULL : (model = (g_object_unref (model), NULL)); - (renderer == NULL) ? NULL : (renderer = (g_object_unref (renderer), NULL)); - (hbox == NULL) ? NULL : (hbox = (g_object_unref (hbox), NULL)); - (vbox == NULL) ? NULL : (vbox = (g_object_unref (vbox), NULL)); - } - return obj; -} - - -static void config_list_class_init (ConfigListClass * klass) { - config_list_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (ConfigListPrivate)); - G_OBJECT_CLASS (klass)->constructor = config_list_constructor; - G_OBJECT_CLASS (klass)->finalize = config_list_finalize; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_list_real_set_from_config; -} - - -static void config_list_instance_init (ConfigList * self) { - self->priv = CONFIG_LIST_GET_PRIVATE (self); -} - - -static void config_list_finalize (GObject* obj) { - ConfigList * self; - self = CONFIG_LIST (obj); - (self->priv->tree == NULL) ? NULL : (self->priv->tree = (g_object_unref (self->priv->tree), NULL)); - (self->priv->add_button == NULL) ? NULL : (self->priv->add_button = (g_object_unref (self->priv->add_button), NULL)); - (self->priv->remove_button == NULL) ? NULL : (self->priv->remove_button = (g_object_unref (self->priv->remove_button), NULL)); - G_OBJECT_CLASS (config_list_parent_class)->finalize (obj); -} - - -GType config_list_get_type (void) { - static GType config_list_type_id = 0; - if (config_list_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigList), 0, (GInstanceInitFunc) config_list_instance_init, NULL }; - config_list_type_id = g_type_register_static (TYPE_CONFIG_WIDGET, "ConfigList", &g_define_type_info, 0); - } - return config_list_type_id; -} - - -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { - if ((array != NULL) && (destroy_func != NULL)) { - int i; - for (i = 0; i < array_length; i = i + 1) { - if (((gpointer*) array)[i] != NULL) { - destroy_func (((gpointer*) array)[i]); - } - } - } - g_free (array); -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigList.h deja-dup-10.0/preferences/ConfigList.h --- deja-dup-7.4/preferences/ConfigList.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigList.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,60 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGLIST_H__ -#define __CONFIGLIST_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigWidget.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_LIST (config_list_get_type ()) -#define CONFIG_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_LIST, ConfigList)) -#define CONFIG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_LIST, ConfigListClass)) -#define IS_CONFIG_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_LIST)) -#define IS_CONFIG_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_LIST)) -#define CONFIG_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_LIST, ConfigListClass)) - -typedef struct _ConfigList ConfigList; -typedef struct _ConfigListClass ConfigListClass; -typedef struct _ConfigListPrivate ConfigListPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigList { - ConfigWidget parent_instance; - ConfigListPrivate * priv; -}; - -struct _ConfigListClass { - ConfigWidgetClass parent_class; -}; - - -ConfigList* config_list_construct (GType object_type, const char* key); -ConfigList* config_list_new (const char* key); -GType config_list_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigList.vala deja-dup-10.0/preferences/ConfigList.vala --- deja-dup-7.4/preferences/ConfigList.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigList.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,207 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigList : ConfigWidget -{ - public ConfigList(string key) - { - this.key = key; - } - - Gtk.TreeView tree; - Gtk.Button add_button; - Gtk.Button remove_button; - construct { - var model = new Gtk.ListStore(3, typeof(string), typeof(string), typeof(Icon)); - tree = new Gtk.TreeView(); - tree.set("model", model, - "headers-visible", false); - - tree.insert_column_with_attributes(-1, null, new Gtk.CellRendererPixbuf(), - "gicon", 2); - - var renderer = new Gtk.CellRendererText(); - tree.insert_column_with_attributes(-1, null, renderer, - "text", 1); - - add_button = new Gtk.Button.from_stock(Gtk.STOCK_ADD); - add_button.clicked += handle_add; - - remove_button = new Gtk.Button.from_stock(Gtk.STOCK_REMOVE); - remove_button.clicked += handle_remove; - - var hbox = new Gtk.HBox(false, 6); - var vbox = new Gtk.VBox(false, 6); - - vbox.pack_start(add_button, false, false, 0); - vbox.pack_start(remove_button, false, false, 0); - hbox.add(tree); - hbox.pack_start(vbox, false, false, 0); - add(hbox); - - set_from_config(); - handle_selection_change(tree.get_selection()); - tree.get_selection().changed += handle_selection_change; - } - - protected override void set_from_config() - { - weak SList<string> slist; - try { - slist = client.get_list(key, GConf.ValueType.STRING); - } - catch (Error e) { - warning("%s\n", e.message); - return; - } - - var list = DejaDup.parse_dir_list(slist); - - Gtk.ListStore model; - tree.get("model", out model); - model.clear(); - - int i = 0; - File home = File.new_for_path(Environment.get_home_dir()); - File trash = File.new_for_path(DejaDup.get_trash_path()); - foreach (File f in list) { - string s; - if (f.equal(home)) - s = _("Home Folder"); - else if (f.equal(trash)) - s = _("Trash"); - else if (f.has_prefix(home)) - s = home.get_relative_path(f); - else - s = f.get_path(); - - Gtk.TreeIter iter; - model.insert_with_values(out iter, i++, 0, f.get_path(), 1, s); - - // If the folder is the trash, look up icon especially. For some - // reason, gio doesn't do it for us. - Icon icon = null; - if (f.equal(trash)) { - // Until vala bug #564062 is fixed, we use append. Else I'd use from_names - icon = new ThemedIcon("user-trash"); - ((ThemedIcon)icon).append_name("folder"); - } - else { - try { - FileInfo info = f.query_info(FILE_ATTRIBUTE_STANDARD_ICON, FileQueryInfoFlags.NONE, null); - icon = info.get_icon(); - } - catch (Error e) { - warning("%s\n", e.message); - } - } - if (icon != null) - model.set(iter, 2, icon); - } - } - - void handle_selection_change(Gtk.TreeSelection sel) - { - var empty = sel.count_selected_rows() == 0; - remove_button.set_sensitive(!empty); - } - - void handle_add() - { - var dlg = new Gtk.FileChooserDialog(_("Choose folder"), - (Gtk.Window)get_toplevel(), - Gtk.FileChooserAction.SELECT_FOLDER, - Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, - Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT); - - if (dlg.run() != Gtk.ResponseType.ACCEPT) { - return; - } - - var folder = File.new_for_path(dlg.get_filename()); - dlg.hide(); - - weak SList<string> slist; - try { - slist = client.get_list(key, GConf.ValueType.STRING); - bool found = false; - foreach (string s in slist) { - var sfile = File.new_for_path(s); - if (sfile.equal(folder)) { - found = true; - break; - } - } - - if (!found) { - slist.append(folder.get_path()); - client.set_list(key, GConf.ValueType.STRING, slist); - } - else { - var msgdlg = new Gtk.MessageDialog((Gtk.Window)get_toplevel(), - Gtk.DialogFlags.DESTROY_WITH_PARENT, - Gtk.MessageType.ERROR, - Gtk.ButtonsType.OK, - _("Could not add the folder")); - msgdlg.format_secondary_text(_("%s is already in the list."), folder.get_path()); - msgdlg.run(); - msgdlg.destroy(); - } - } - catch (Error e) { - warning("%s\n", e.message); - return; - } - } - - void handle_remove() - { - var sel = tree.get_selection(); - - weak Gtk.TreeModel model; - Gtk.TreeIter iter; - if (!sel.get_selected(out model, out iter)) - return; - - string current; - model.get(iter, 0, out current); - var current_file = File.new_for_path(current); - - try { - weak SList<string> slist = client.get_list(key, GConf.ValueType.STRING); - weak SList<string> siter = slist; - while (siter != null) { - var sfile = DejaDup.parse_dir(siter.data); - if (sfile.equal(current_file)) { - slist.remove_link(siter); - client.set_list(key, GConf.ValueType.STRING, slist); - break; - } - siter = siter.next; - } - } - catch (Error e) { - warning("%s\n", e.message); - return; - } - } -} - diff -Nru deja-dup-7.4/preferences/ConfigNumber.c deja-dup-10.0/preferences/ConfigNumber.c --- deja-dup-7.4/preferences/ConfigNumber.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigNumber.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,258 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigNumber.h" -#include <gtk/gtk.h> -#include <gconf/gconf-client.h> -#include <float.h> -#include <math.h> - - - - -struct _ConfigNumberPrivate { - gint _lower_bound; - gint _upper_bound; - GtkSpinButton* spin; -}; - -#define CONFIG_NUMBER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIG_NUMBER, ConfigNumberPrivate)) -enum { - CONFIG_NUMBER_DUMMY_PROPERTY, - CONFIG_NUMBER_LOWER_BOUND, - CONFIG_NUMBER_UPPER_BOUND -}; -static void config_number_real_set_from_config (ConfigWidget* base); -static void config_number_handle_value_changed (ConfigNumber* self); -static void config_number_set_lower_bound (ConfigNumber* self, gint value); -static void config_number_set_upper_bound (ConfigNumber* self, gint value); -static void _config_number_handle_value_changed_gtk_spin_button_value_changed (GtkSpinButton* _sender, gpointer self); -static GObject * config_number_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_number_parent_class = NULL; -static void config_number_finalize (GObject* obj); - - - -ConfigNumber* config_number_construct (GType object_type, const char* key, gint lower_bound, gint upper_bound) { - GParameter * __params; - GParameter * __params_it; - ConfigNumber * self; - g_return_val_if_fail (key != NULL, NULL); - __params = g_new0 (GParameter, 3); - __params_it = __params; - __params_it->name = "key"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, key); - __params_it++; - __params_it->name = "lower-bound"; - g_value_init (&__params_it->value, G_TYPE_INT); - g_value_set_int (&__params_it->value, lower_bound); - __params_it++; - __params_it->name = "upper-bound"; - g_value_init (&__params_it->value, G_TYPE_INT); - g_value_set_int (&__params_it->value, upper_bound); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ConfigNumber* config_number_new (const char* key, gint lower_bound, gint upper_bound) { - return config_number_construct (TYPE_CONFIG_NUMBER, key, lower_bound, upper_bound); -} - - -static void config_number_real_set_from_config (ConfigWidget* base) { - ConfigNumber * self; - GError * inner_error; - self = (ConfigNumber*) base; - inner_error = NULL; - { - gint val; - val = gconf_client_get_int (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), &inner_error); - if (inner_error != NULL) { - goto __catch13_g_error; - goto __finally13; - } - gtk_spin_button_set_value (self->priv->spin, (double) val); - } - goto __finally13; - __catch13_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigNumber.vala:50: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally13: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } -} - - -static void config_number_handle_value_changed (ConfigNumber* self) { - GError * inner_error; - g_return_if_fail (self != NULL); - inner_error = NULL; - { - gconf_client_set_int (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), (gint) gtk_spin_button_get_value (self->priv->spin), &inner_error); - if (inner_error != NULL) { - goto __catch14_g_error; - goto __finally14; - } - } - goto __finally14; - __catch14_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigNumber.vala:60: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally14: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } -} - - -gint config_number_get_lower_bound (ConfigNumber* self) { - g_return_val_if_fail (self != NULL, 0); - return self->priv->_lower_bound; -} - - -static void config_number_set_lower_bound (ConfigNumber* self, gint value) { - g_return_if_fail (self != NULL); - self->priv->_lower_bound = value; - g_object_notify ((GObject *) self, "lower-bound"); -} - - -gint config_number_get_upper_bound (ConfigNumber* self) { - g_return_val_if_fail (self != NULL, 0); - return self->priv->_upper_bound; -} - - -static void config_number_set_upper_bound (ConfigNumber* self, gint value) { - g_return_if_fail (self != NULL); - self->priv->_upper_bound = value; - g_object_notify ((GObject *) self, "upper-bound"); -} - - -static void _config_number_handle_value_changed_gtk_spin_button_value_changed (GtkSpinButton* _sender, gpointer self) { - config_number_handle_value_changed (self); -} - - -static GObject * config_number_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigNumberClass * klass; - GObjectClass * parent_class; - ConfigNumber * self; - klass = CONFIG_NUMBER_CLASS (g_type_class_peek (TYPE_CONFIG_NUMBER)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_NUMBER (obj); - { - GtkSpinButton* _tmp0; - _tmp0 = NULL; - self->priv->spin = (_tmp0 = g_object_ref_sink ((GtkSpinButton*) gtk_spin_button_new_with_range ((double) self->priv->_lower_bound, (double) self->priv->_upper_bound, (double) 1)), (self->priv->spin == NULL) ? NULL : (self->priv->spin = (g_object_unref (self->priv->spin), NULL)), _tmp0); - gtk_container_add ((GtkContainer*) self, (GtkWidget*) self->priv->spin); - config_widget_set_from_config ((ConfigWidget*) self); - g_signal_connect_object (self->priv->spin, "value-changed", (GCallback) _config_number_handle_value_changed_gtk_spin_button_value_changed, self, 0); - } - return obj; -} - - -static void config_number_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - ConfigNumber * self; - gpointer boxed; - self = CONFIG_NUMBER (object); - switch (property_id) { - case CONFIG_NUMBER_LOWER_BOUND: - g_value_set_int (value, config_number_get_lower_bound (self)); - break; - case CONFIG_NUMBER_UPPER_BOUND: - g_value_set_int (value, config_number_get_upper_bound (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void config_number_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - ConfigNumber * self; - self = CONFIG_NUMBER (object); - switch (property_id) { - case CONFIG_NUMBER_LOWER_BOUND: - config_number_set_lower_bound (self, g_value_get_int (value)); - break; - case CONFIG_NUMBER_UPPER_BOUND: - config_number_set_upper_bound (self, g_value_get_int (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void config_number_class_init (ConfigNumberClass * klass) { - config_number_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (ConfigNumberPrivate)); - G_OBJECT_CLASS (klass)->get_property = config_number_get_property; - G_OBJECT_CLASS (klass)->set_property = config_number_set_property; - G_OBJECT_CLASS (klass)->constructor = config_number_constructor; - G_OBJECT_CLASS (klass)->finalize = config_number_finalize; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_number_real_set_from_config; - g_object_class_install_property (G_OBJECT_CLASS (klass), CONFIG_NUMBER_LOWER_BOUND, g_param_spec_int ("lower-bound", "lower-bound", "lower-bound", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); - g_object_class_install_property (G_OBJECT_CLASS (klass), CONFIG_NUMBER_UPPER_BOUND, g_param_spec_int ("upper-bound", "upper-bound", "upper-bound", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); -} - - -static void config_number_instance_init (ConfigNumber * self) { - self->priv = CONFIG_NUMBER_GET_PRIVATE (self); -} - - -static void config_number_finalize (GObject* obj) { - ConfigNumber * self; - self = CONFIG_NUMBER (obj); - (self->priv->spin == NULL) ? NULL : (self->priv->spin = (g_object_unref (self->priv->spin), NULL)); - G_OBJECT_CLASS (config_number_parent_class)->finalize (obj); -} - - -GType config_number_get_type (void) { - static GType config_number_type_id = 0; - if (config_number_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigNumberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_number_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigNumber), 0, (GInstanceInitFunc) config_number_instance_init, NULL }; - config_number_type_id = g_type_register_static (TYPE_CONFIG_WIDGET, "ConfigNumber", &g_define_type_info, 0); - } - return config_number_type_id; -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigNumber.h deja-dup-10.0/preferences/ConfigNumber.h --- deja-dup-7.4/preferences/ConfigNumber.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigNumber.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,62 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGNUMBER_H__ -#define __CONFIGNUMBER_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigWidget.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_NUMBER (config_number_get_type ()) -#define CONFIG_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_NUMBER, ConfigNumber)) -#define CONFIG_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_NUMBER, ConfigNumberClass)) -#define IS_CONFIG_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_NUMBER)) -#define IS_CONFIG_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_NUMBER)) -#define CONFIG_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_NUMBER, ConfigNumberClass)) - -typedef struct _ConfigNumber ConfigNumber; -typedef struct _ConfigNumberClass ConfigNumberClass; -typedef struct _ConfigNumberPrivate ConfigNumberPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigNumber { - ConfigWidget parent_instance; - ConfigNumberPrivate * priv; -}; - -struct _ConfigNumberClass { - ConfigWidgetClass parent_class; -}; - - -ConfigNumber* config_number_construct (GType object_type, const char* key, gint lower_bound, gint upper_bound); -ConfigNumber* config_number_new (const char* key, gint lower_bound, gint upper_bound); -gint config_number_get_lower_bound (ConfigNumber* self); -gint config_number_get_upper_bound (ConfigNumber* self); -GType config_number_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigNumber.vala deja-dup-10.0/preferences/ConfigNumber.vala --- deja-dup-7.4/preferences/ConfigNumber.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigNumber.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,64 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigNumber : ConfigWidget -{ - public int lower_bound {get; construct;} - public int upper_bound {get; construct;} - - public ConfigNumber(string key, int lower_bound, int upper_bound) - { - this.key = key; - this.lower_bound = lower_bound; - this.upper_bound = upper_bound; - } - - Gtk.SpinButton spin; - construct { - spin = new Gtk.SpinButton.with_range(lower_bound, upper_bound, 1); - add(spin); - - set_from_config(); - spin.value_changed += handle_value_changed; - } - - protected override void set_from_config() - { - try { - var val = client.get_int(key); - spin.@value = val; - } - catch (Error e) { - warning("%s\n", e.message); - } - } - - void handle_value_changed() - { - try { - client.set_int(key, (int)spin.@value); - } - catch (Error e) { - warning("%s\n", e.message); - } - } -} - diff -Nru deja-dup-7.4/preferences/ConfigPeriod.c deja-dup-10.0/preferences/ConfigPeriod.c --- deja-dup-7.4/preferences/ConfigPeriod.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigPeriod.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,223 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigPeriod.h" -#include <gconf/gconf-client.h> -#include <gtk/gtk.h> -#include <libintl.h> -#include <glib/gi18n-lib.h> -#include "ConfigWidget.h" - - - - -enum { - CONFIG_PERIOD_DUMMY_PROPERTY -}; -static void config_period_real_handle_changed (ConfigChoice* base); -static void config_period_real_set_from_config (ConfigWidget* base); -static GObject * config_period_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_period_parent_class = NULL; - - - -ConfigPeriod* config_period_construct (GType object_type, const char* key) { - GParameter * __params; - GParameter * __params_it; - ConfigPeriod * self; - g_return_val_if_fail (key != NULL, NULL); - __params = g_new0 (GParameter, 1); - __params_it = __params; - __params_it->name = "key"; - g_value_init (&__params_it->value, G_TYPE_STRING); - g_value_set_string (&__params_it->value, key); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ConfigPeriod* config_period_new (const char* key) { - return config_period_construct (TYPE_CONFIG_PERIOD, key); -} - - -static void config_period_real_handle_changed (ConfigChoice* base) { - ConfigPeriod * self; - GError * inner_error; - GValue* val; - gint _tmp0; - gint intval; - char* _tmp1; - self = (ConfigPeriod*) base; - inner_error = NULL; - val = config_choice_get_current_value ((ConfigChoice*) self); - _tmp0 = 0; - if (val == NULL) { - _tmp0 = 1; - } else { - _tmp0 = g_value_get_int (val); - } - intval = _tmp0; - { - gconf_client_set_int (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), intval, &inner_error); - if (inner_error != NULL) { - goto __catch15_g_error; - goto __finally15; - } - } - goto __finally15; - __catch15_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigPeriod.vala:54: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally15: - if (inner_error != NULL) { - (val == NULL) ? NULL : (val = (g_free (val), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - _tmp1 = NULL; - g_signal_emit_by_name ((ConfigChoice*) self, "changed", _tmp1 = g_strdup_printf ("%i", intval)); - _tmp1 = (g_free (_tmp1), NULL); - (val == NULL) ? NULL : (val = (g_free (val), NULL)); -} - - -static void config_period_real_set_from_config (ConfigWidget* base) { - ConfigPeriod * self; - GError * inner_error; - gint confval; - gboolean valid; - GtkTreeIter iter = {0}; - self = (ConfigPeriod*) base; - inner_error = NULL; - confval = 0; - { - gint _tmp0; - _tmp0 = gconf_client_get_int (((ConfigWidget*) self)->client, config_widget_get_key ((ConfigWidget*) self), &inner_error); - if (inner_error != NULL) { - goto __catch16_g_error; - goto __finally16; - } - confval = _tmp0; - } - goto __finally16; - __catch16_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigPeriod.vala:67: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - return; - } - } - __finally16: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - return; - } - if (confval < 1) { - confval = 1; - } - valid = FALSE; - valid = gtk_tree_model_get_iter_first (gtk_combo_box_get_model (((ConfigChoice*) self)->combo), &iter); - while (valid) { - GValue val = {0}; - GValue _tmp2 = {0}; - GValue _tmp1 = {0}; - gint intval; - gtk_tree_model_get_value (gtk_combo_box_get_model (((ConfigChoice*) self)->combo), &iter, ((ConfigChoice*) self)->gconf_col, &_tmp1); - val = (_tmp2 = _tmp1, G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL, _tmp2); - intval = g_value_get_int (&val); - if (intval == confval) { - gtk_combo_box_set_active_iter (((ConfigChoice*) self)->combo, &iter); - G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; - break; - } - valid = gtk_tree_model_iter_next (gtk_combo_box_get_model (((ConfigChoice*) self)->combo), &iter); - G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; - } - /* If we didn't find the period, user must have set it to something non - standard. Let's add an entry to the combo.*/ - if (!valid) { - GtkListStore* _tmp3; - GtkListStore* store; - char* _tmp4; - _tmp3 = NULL; - store = (_tmp3 = GTK_LIST_STORE (gtk_combo_box_get_model (((ConfigChoice*) self)->combo)), (_tmp3 == NULL) ? NULL : g_object_ref (_tmp3)); - _tmp4 = NULL; - gtk_list_store_insert_with_values (store, &iter, 0, 0, _tmp4 = g_strdup_printf (ngettext ("Every %d day", "Every %d days", (gulong) confval), confval), 1, confval, -1); - _tmp4 = (g_free (_tmp4), NULL); - gtk_combo_box_set_active_iter (((ConfigChoice*) self)->combo, &iter); - (store == NULL) ? NULL : (store = (g_object_unref (store), NULL)); - } -} - - -static GObject * config_period_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigPeriodClass * klass; - GObjectClass * parent_class; - ConfigPeriod * self; - klass = CONFIG_PERIOD_CLASS (g_type_class_peek (TYPE_CONFIG_PERIOD)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_PERIOD (obj); - { - GtkListStore* store; - GtkTreeIter iter = {0}; - gint i; - store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_INT, NULL); - i = 0; - gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Daily"), 1, 1, -1); - gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Weekly"), 1, 7, -1); - /* Translators: Biweekly is every two weeks*/ - gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Biweekly"), 1, 14, -1); - gtk_list_store_insert_with_values (store, &iter, i++, 0, _ ("Monthly"), 1, 28, -1); - gtk_tree_sortable_set_sort_column_id ((GtkTreeSortable*) store, 1, GTK_SORT_ASCENDING); - config_choice_init ((ConfigChoice*) self, (GtkTreeModel*) store, 1); - (store == NULL) ? NULL : (store = (g_object_unref (store), NULL)); - } - return obj; -} - - -static void config_period_class_init (ConfigPeriodClass * klass) { - config_period_parent_class = g_type_class_peek_parent (klass); - G_OBJECT_CLASS (klass)->constructor = config_period_constructor; - CONFIG_CHOICE_CLASS (klass)->handle_changed = config_period_real_handle_changed; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_period_real_set_from_config; -} - - -static void config_period_instance_init (ConfigPeriod * self) { -} - - -GType config_period_get_type (void) { - static GType config_period_type_id = 0; - if (config_period_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigPeriodClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_period_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigPeriod), 0, (GInstanceInitFunc) config_period_instance_init, NULL }; - config_period_type_id = g_type_register_static (TYPE_CONFIG_CHOICE, "ConfigPeriod", &g_define_type_info, 0); - } - return config_period_type_id; -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigPeriod.h deja-dup-10.0/preferences/ConfigPeriod.h --- deja-dup-7.4/preferences/ConfigPeriod.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigPeriod.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,60 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGPERIOD_H__ -#define __CONFIGPERIOD_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> -#include "ConfigChoice.h" - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_PERIOD (config_period_get_type ()) -#define CONFIG_PERIOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_PERIOD, ConfigPeriod)) -#define CONFIG_PERIOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_PERIOD, ConfigPeriodClass)) -#define IS_CONFIG_PERIOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_PERIOD)) -#define IS_CONFIG_PERIOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_PERIOD)) -#define CONFIG_PERIOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_PERIOD, ConfigPeriodClass)) - -typedef struct _ConfigPeriod ConfigPeriod; -typedef struct _ConfigPeriodClass ConfigPeriodClass; -typedef struct _ConfigPeriodPrivate ConfigPeriodPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigPeriod { - ConfigChoice parent_instance; - ConfigPeriodPrivate * priv; -}; - -struct _ConfigPeriodClass { - ConfigChoiceClass parent_class; -}; - - -ConfigPeriod* config_period_construct (GType object_type, const char* key); -ConfigPeriod* config_period_new (const char* key); -GType config_period_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigPeriod.vala deja-dup-10.0/preferences/ConfigPeriod.vala --- deja-dup-7.4/preferences/ConfigPeriod.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigPeriod.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,100 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public class ConfigPeriod : ConfigChoice -{ - public ConfigPeriod(string key) { - this.key = key; - } - - construct { - var store = new Gtk.ListStore(2, typeof(string), typeof(int)); - - Gtk.TreeIter iter; - int i = 0; - - store.insert_with_values(out iter, i++, 0, _("Daily"), 1, 1); - store.insert_with_values(out iter, i++, 0, _("Weekly"), 1, 7); - // Translators: Biweekly is every two weeks - store.insert_with_values(out iter, i++, 0, _("Biweekly"), 1, 14); - store.insert_with_values(out iter, i++, 0, _("Monthly"), 1, 28); - - store.set_sort_column_id(1, Gtk.SortType.ASCENDING); - - init(store, 1); - } - - protected override void handle_changed() - { - Value? val = get_current_value(); - int intval = val == null ? 1 : val.get_int(); - - try { - client.set_int(key, intval); - } - catch (Error e) { - warning("%s\n", e.message); - } - - changed(intval.to_string()); - } - - protected override void set_from_config() - { - int confval; - try { - confval = client.get_int(key); - } - catch (Error e) { - warning("%s\n", e.message); - return; - } - if (confval < 1) - confval = 1; - - bool valid; - Gtk.TreeIter iter; - valid = combo.model.get_iter_first(out iter); - - while (valid) { - Value val; - combo.model.get_value(iter, gconf_col, out val); - int intval = val.get_int(); - - if (intval == confval) { - combo.set_active_iter(iter); - break; - } - valid = combo.model.iter_next(ref iter); - } - - // If we didn't find the period, user must have set it to something non - // standard. Let's add an entry to the combo. - if (!valid) { - var store = (Gtk.ListStore)combo.model; - store.insert_with_values(out iter, 0, 0, - ngettext("Every %d day", "Every %d days", confval).printf(confval), - 1, confval); - combo.set_active_iter(iter); - } - } -} - diff -Nru deja-dup-7.4/preferences/ConfigWidget.c deja-dup-10.0/preferences/ConfigWidget.c --- deja-dup-7.4/preferences/ConfigWidget.c 2009-02-09 21:41:37.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigWidget.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,248 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ConfigWidget.h" -#include <gconf/gconf.h> - - - - -static char* string_substring (const char* self, glong offset, glong len); -static glong string_get_length (const char* self); -struct _ConfigWidgetPrivate { - char* _key; - char* dir; -}; - -#define CONFIG_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CONFIG_WIDGET, ConfigWidgetPrivate)) -enum { - CONFIG_WIDGET_DUMMY_PROPERTY, - CONFIG_WIDGET_KEY -}; -static void config_widget_real_set_from_config (ConfigWidget* self); -static void config_widget_set_key (ConfigWidget* self, const char* value); -static void _config_widget_set_from_config_gconf_client_notify_func (GConfClient* client, guint cnxn_id, GConfEntry* entry, gpointer self); -static GObject * config_widget_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer config_widget_parent_class = NULL; -static void config_widget_finalize (GObject* obj); - - - -static char* string_substring (const char* self, glong offset, glong len) { - glong string_length; - const char* start; - g_return_val_if_fail (self != NULL, NULL); - string_length = g_utf8_strlen (self, -1); - if (offset < 0) { - offset = string_length + offset; - g_return_val_if_fail (offset >= 0, NULL); - } else { - g_return_val_if_fail (offset <= string_length, NULL); - } - if (len < 0) { - len = string_length - offset; - } - g_return_val_if_fail ((offset + len) <= string_length, NULL); - start = g_utf8_offset_to_pointer (self, offset); - return g_strndup (start, ((gchar*) g_utf8_offset_to_pointer (start, len)) - ((gchar*) start)); -} - - -static glong string_get_length (const char* self) { - g_return_val_if_fail (self != NULL, 0L); - return g_utf8_strlen (self, -1); -} - - -static void config_widget_real_set_from_config (ConfigWidget* self) { - g_return_if_fail (self != NULL); - g_critical ("Type `%s' does not implement abstract method `config_widget_set_from_config'", g_type_name (G_TYPE_FROM_INSTANCE (self))); - return; -} - - -void config_widget_set_from_config (ConfigWidget* self) { - CONFIG_WIDGET_GET_CLASS (self)->set_from_config (self); -} - - -const char* config_widget_get_key (ConfigWidget* self) { - g_return_val_if_fail (self != NULL, NULL); - return self->priv->_key; -} - - -static void config_widget_set_key (ConfigWidget* self, const char* value) { - char* _tmp2; - const char* _tmp1; - g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_key = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_strdup (_tmp1)), self->priv->_key = (g_free (self->priv->_key), NULL), _tmp2); - g_object_notify ((GObject *) self, "key"); -} - - -static void _config_widget_set_from_config_gconf_client_notify_func (GConfClient* client, guint cnxn_id, GConfEntry* entry, gpointer self) { - config_widget_set_from_config (self); -} - - -static GObject * config_widget_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ConfigWidgetClass * klass; - GObjectClass * parent_class; - ConfigWidget * self; - GError * inner_error; - klass = CONFIG_WIDGET_CLASS (g_type_class_peek (TYPE_CONFIG_WIDGET)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = CONFIG_WIDGET (obj); - inner_error = NULL; - { - GConfClient* _tmp1; - GConfClient* _tmp0; - _tmp1 = NULL; - _tmp0 = NULL; - self->client = (_tmp1 = (_tmp0 = gconf_client_get_default (), (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)), (self->client == NULL) ? NULL : (self->client = (g_object_unref (self->client), NULL)), _tmp1); - if (self->priv->_key != NULL) { - char* _tmp3; - const char* _tmp2; - const char* end; - _tmp3 = NULL; - _tmp2 = NULL; - self->priv->dir = (_tmp3 = (_tmp2 = self->priv->_key, (_tmp2 == NULL) ? NULL : g_strdup (_tmp2)), self->priv->dir = (g_free (self->priv->dir), NULL), _tmp3); - end = g_utf8_strrchr (self->priv->dir, (glong) (-1), (gunichar) '/'); - if (end != NULL) { - char* _tmp4; - _tmp4 = NULL; - self->priv->dir = (_tmp4 = string_substring (self->priv->dir, (glong) 0, string_get_length (self->priv->dir) - string_get_length (end)), self->priv->dir = (g_free (self->priv->dir), NULL), _tmp4); - } - { - gconf_client_add_dir (self->client, self->priv->dir, GCONF_CLIENT_PRELOAD_NONE, &inner_error); - if (inner_error != NULL) { - goto __catch17_g_error; - goto __finally17; - } - gconf_client_notify_add (self->client, self->priv->_key, _config_widget_set_from_config_gconf_client_notify_func, g_object_ref (self), g_object_unref, &inner_error); - if (inner_error != NULL) { - goto __catch17_g_error; - goto __finally17; - } - } - goto __finally17; - __catch17_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigWidget.vala:41: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally17: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - } - } - } - return obj; -} - - -static void config_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - ConfigWidget * self; - gpointer boxed; - self = CONFIG_WIDGET (object); - switch (property_id) { - case CONFIG_WIDGET_KEY: - g_value_set_string (value, config_widget_get_key (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void config_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - ConfigWidget * self; - self = CONFIG_WIDGET (object); - switch (property_id) { - case CONFIG_WIDGET_KEY: - config_widget_set_key (self, g_value_get_string (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void config_widget_class_init (ConfigWidgetClass * klass) { - config_widget_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (ConfigWidgetPrivate)); - G_OBJECT_CLASS (klass)->get_property = config_widget_get_property; - G_OBJECT_CLASS (klass)->set_property = config_widget_set_property; - G_OBJECT_CLASS (klass)->constructor = config_widget_constructor; - G_OBJECT_CLASS (klass)->finalize = config_widget_finalize; - CONFIG_WIDGET_CLASS (klass)->set_from_config = config_widget_real_set_from_config; - g_object_class_install_property (G_OBJECT_CLASS (klass), CONFIG_WIDGET_KEY, g_param_spec_string ("key", "key", "key", NULL, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); -} - - -static void config_widget_instance_init (ConfigWidget * self) { - self->priv = CONFIG_WIDGET_GET_PRIVATE (self); -} - - -static void config_widget_finalize (GObject* obj) { - ConfigWidget * self; - GError * inner_error; - self = CONFIG_WIDGET (obj); - inner_error = NULL; - { - { - gconf_client_remove_dir (self->client, self->priv->dir, &inner_error); - if (inner_error != NULL) { - goto __catch18_g_error; - goto __finally18; - } - } - goto __finally18; - __catch18_g_error: - { - GError * e; - e = inner_error; - inner_error = NULL; - { - g_warning ("ConfigWidget.vala:52: %s\n", e->message); - (e == NULL) ? NULL : (e = (g_error_free (e), NULL)); - } - } - __finally18: - if (inner_error != NULL) { - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); - } - } - self->priv->_key = (g_free (self->priv->_key), NULL); - self->priv->dir = (g_free (self->priv->dir), NULL); - (self->client == NULL) ? NULL : (self->client = (g_object_unref (self->client), NULL)); - G_OBJECT_CLASS (config_widget_parent_class)->finalize (obj); -} - - -GType config_widget_get_type (void) { - static GType config_widget_type_id = 0; - if (config_widget_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ConfigWidgetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) config_widget_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConfigWidget), 0, (GInstanceInitFunc) config_widget_instance_init, NULL }; - config_widget_type_id = g_type_register_static (GTK_TYPE_EVENT_BOX, "ConfigWidget", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - } - return config_widget_type_id; -} - - - - diff -Nru deja-dup-7.4/preferences/ConfigWidget.h deja-dup-10.0/preferences/ConfigWidget.h --- deja-dup-7.4/preferences/ConfigWidget.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigWidget.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,63 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __CONFIGWIDGET_H__ -#define __CONFIGWIDGET_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> -#include <gconf/gconf-client.h> -#include <stdlib.h> -#include <string.h> - -G_BEGIN_DECLS - - -#define TYPE_CONFIG_WIDGET (config_widget_get_type ()) -#define CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CONFIG_WIDGET, ConfigWidget)) -#define CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CONFIG_WIDGET, ConfigWidgetClass)) -#define IS_CONFIG_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CONFIG_WIDGET)) -#define IS_CONFIG_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CONFIG_WIDGET)) -#define CONFIG_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CONFIG_WIDGET, ConfigWidgetClass)) - -typedef struct _ConfigWidget ConfigWidget; -typedef struct _ConfigWidgetClass ConfigWidgetClass; -typedef struct _ConfigWidgetPrivate ConfigWidgetPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _ConfigWidget { - GtkEventBox parent_instance; - ConfigWidgetPrivate * priv; - GConfClient* client; -}; - -struct _ConfigWidgetClass { - GtkEventBoxClass parent_class; - void (*set_from_config) (ConfigWidget* self); -}; - - -void config_widget_set_from_config (ConfigWidget* self); -const char* config_widget_get_key (ConfigWidget* self); -GType config_widget_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ConfigWidget.vala deja-dup-10.0/preferences/ConfigWidget.vala --- deja-dup-7.4/preferences/ConfigWidget.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ConfigWidget.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,58 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public abstract class ConfigWidget : Gtk.EventBox -{ - public string key {get; construct;} - - string dir; - protected GConf.Client client; - construct { - client = GConf.Client.get_default(); - - if (key != null) { - dir = key; - weak string end = dir.rchr(-1, '/'); - if (end != null) - dir = dir.substring(0, dir.length - end.length); - try { - client.add_dir(dir, GConf.ClientPreloadType.NONE); - client.notify_add(key, set_from_config); - } - catch (Error e) { - warning("%s\n", e.message); - } - } - } - - ~ConfigWidget() - { - try { - client.remove_dir(dir); - } - catch (Error e) { - warning("%s\n", e.message); - } - } - - protected abstract void set_from_config(); -} - diff -Nru deja-dup-7.4/preferences/Makefile.am deja-dup-10.0/preferences/Makefile.am --- deja-dup-7.4/preferences/Makefile.am 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/preferences/Makefile.am 2009-06-02 17:48:48.000000000 -0400 @@ -1,4 +1,4 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- bin_PROGRAMS = deja-dup-preferences @@ -20,28 +20,17 @@ -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" deja_dup_preferences_VALASOURCES = \ - ConfigBackend.vala \ - ConfigBool.vala \ - ConfigChoice.vala \ - ConfigEntry.vala \ - ConfigFolder.vala \ - ConfigList.vala \ - ConfigNumber.vala \ - ConfigPeriod.vala \ - ConfigWidget.vala \ PreferencesDialog.vala \ - ToggleGroup.vala \ preferences.vala BUILT_SOURCES = \ - deja-dup-preferences.stamp + vala.stamp deja_dup_preferences_SOURCES = \ $(deja_dup_preferences_VALASOURCES:.vala=.c) \ - $(deja_dup_preferences_VALASOURCES:.vala=.h) \ $(deja_dup_preferences_VALASOURCES) -deja-dup-preferences.stamp: $(deja_dup_preferences_VALASOURCES) +vala.stamp: $(deja_dup_preferences_VALASOURCES) if USE_VALAC $(VALAC) -C $(VALA_CFLAGS) $^ touch $@ @@ -52,7 +41,7 @@ deja_dup_preferences_LDADD = $(PREF_LIBS) @INTLLIBS@ $(top_builddir)/libdeja-dup/libdeja-dup.la -EXTRA_DIST = deja-dup-preferences.stamp +EXTRA_DIST = vala.stamp DISTCLEANFILES = \ $(BUILT_SOURCES) \ $(deja_dup_preferences_VALASOURCES:.vala=.c) \ diff -Nru deja-dup-7.4/preferences/Makefile.in deja-dup-10.0/preferences/Makefile.in --- deja-dup-7.4/preferences/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/preferences/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ @@ -56,15 +56,9 @@ am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) -am__objects_1 = ConfigBackend.$(OBJEXT) ConfigBool.$(OBJEXT) \ - ConfigChoice.$(OBJEXT) ConfigEntry.$(OBJEXT) \ - ConfigFolder.$(OBJEXT) ConfigList.$(OBJEXT) \ - ConfigNumber.$(OBJEXT) ConfigPeriod.$(OBJEXT) \ - ConfigWidget.$(OBJEXT) PreferencesDialog.$(OBJEXT) \ - ToggleGroup.$(OBJEXT) preferences.$(OBJEXT) +am__objects_1 = PreferencesDialog.$(OBJEXT) preferences.$(OBJEXT) am__objects_2 = -am_deja_dup_preferences_OBJECTS = $(am__objects_1) $(am__objects_2) \ - $(am__objects_2) +am_deja_dup_preferences_OBJECTS = $(am__objects_1) $(am__objects_2) deja_dup_preferences_OBJECTS = $(am_deja_dup_preferences_OBJECTS) am__DEPENDENCIES_1 = deja_dup_preferences_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -133,29 +127,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -183,6 +158,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -195,6 +171,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -258,6 +235,7 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ VALA_CFLAGS = \ @@ -278,29 +256,18 @@ -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" deja_dup_preferences_VALASOURCES = \ - ConfigBackend.vala \ - ConfigBool.vala \ - ConfigChoice.vala \ - ConfigEntry.vala \ - ConfigFolder.vala \ - ConfigList.vala \ - ConfigNumber.vala \ - ConfigPeriod.vala \ - ConfigWidget.vala \ PreferencesDialog.vala \ - ToggleGroup.vala \ preferences.vala BUILT_SOURCES = \ - deja-dup-preferences.stamp + vala.stamp deja_dup_preferences_SOURCES = \ $(deja_dup_preferences_VALASOURCES:.vala=.c) \ - $(deja_dup_preferences_VALASOURCES:.vala=.h) \ $(deja_dup_preferences_VALASOURCES) deja_dup_preferences_LDADD = $(PREF_LIBS) @INTLLIBS@ $(top_builddir)/libdeja-dup/libdeja-dup.la -EXTRA_DIST = deja-dup-preferences.stamp +EXTRA_DIST = vala.stamp DISTCLEANFILES = \ $(BUILT_SOURCES) \ $(deja_dup_preferences_VALASOURCES:.vala=.c) \ @@ -315,8 +282,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ @@ -378,17 +345,7 @@ distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigBackend.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigBool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigChoice.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigEntry.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigFolder.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigList.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigNumber.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigPeriod.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConfigWidget.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PreferencesDialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ToggleGroup.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preferences.Po@am__quote@ .c.o: @@ -423,7 +380,7 @@ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS @@ -601,7 +558,7 @@ uninstall-binPROGRAMS -deja-dup-preferences.stamp: $(deja_dup_preferences_VALASOURCES) +vala.stamp: $(deja_dup_preferences_VALASOURCES) @USE_VALAC_TRUE@ $(VALAC) -C $(VALA_CFLAGS) $^ @USE_VALAC_TRUE@ touch $@ @USE_VALAC_FALSE@ @echo "ERROR: Valac compilation is disabled, but the C sources are out-of-date." diff -Nru deja-dup-7.4/preferences/preferences.c deja-dup-10.0/preferences/preferences.c --- deja-dup-7.4/preferences/preferences.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/preferences.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,23 +1,83 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "preferences.h" +#include <glib.h> +#include <glib-object.h> #include <glib/gi18n-lib.h> #include <config.h> #include <unique/unique.h> #include <gtk/gtk.h> -#include "PreferencesDialog.h" +#include <deja-dup.h> +#include <stdlib.h> +#include <string.h> + + +#define TYPE_DEJA_DUP_PREFERENCES (deja_dup_preferences_get_type ()) +#define DEJA_DUP_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEJA_DUP_PREFERENCES, DejaDupPreferences)) +#define DEJA_DUP_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEJA_DUP_PREFERENCES, DejaDupPreferencesClass)) +#define IS_DEJA_DUP_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEJA_DUP_PREFERENCES)) +#define IS_DEJA_DUP_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEJA_DUP_PREFERENCES)) +#define DEJA_DUP_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEJA_DUP_PREFERENCES, DejaDupPreferencesClass)) + +typedef struct _DejaDupPreferences DejaDupPreferences; +typedef struct _DejaDupPreferencesClass DejaDupPreferencesClass; +typedef struct _DejaDupPreferencesPrivate DejaDupPreferencesPrivate; + +#define TYPE_PREFERENCES_DIALOG (preferences_dialog_get_type ()) +#define PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialog)) +#define PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass)) +#define IS_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREFERENCES_DIALOG)) +#define IS_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREFERENCES_DIALOG)) +#define PREFERENCES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass)) +typedef struct _PreferencesDialog PreferencesDialog; +typedef struct _PreferencesDialogClass PreferencesDialogClass; + +/* + Déjà Dup Preferences + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +struct _DejaDupPreferences { + GObject parent_instance; + DejaDupPreferencesPrivate * priv; +}; + +struct _DejaDupPreferencesClass { + GObjectClass parent_class; +}; +GType deja_dup_preferences_get_type (void); enum { DEJA_DUP_PREFERENCES_DUMMY_PROPERTY }; +static gboolean deja_dup_preferences_show_version; static gboolean deja_dup_preferences_show_version = FALSE; +static PreferencesDialog* deja_dup_preferences_pref_window; static PreferencesDialog* deja_dup_preferences_pref_window = NULL; static gboolean deja_dup_preferences_handle_console_options (gint* status); static UniqueResponse deja_dup_preferences_message_received (UniqueApp* app, gint command, UniqueMessageData* message_data, guint time_); +PreferencesDialog* preferences_dialog_new (GtkWindow* parent); +PreferencesDialog* preferences_dialog_construct (GType object_type, GtkWindow* parent); +GType preferences_dialog_get_type (void); static UniqueResponse _deja_dup_preferences_message_received_unique_app_message_received (UniqueApp* _sender, gint command, UniqueMessageData* message_data, guint time_, gpointer self); +gint deja_dup_preferences_main (char** args, int args_length1); +DejaDupPreferences* deja_dup_preferences_new (void); +DejaDupPreferences* deja_dup_preferences_construct (GType object_type); +DejaDupPreferences* deja_dup_preferences_new (void); static gpointer deja_dup_preferences_parent_class = NULL; static void deja_dup_preferences_finalize (GObject* obj); @@ -56,13 +116,13 @@ gint deja_dup_preferences_main (char** args, int args_length1) { - GError * inner_error; + GError * _inner_error_; GOptionContext* context; gint status; UniqueApp* app; - gboolean _tmp3; - gint _tmp5; - inner_error = NULL; + gboolean _tmp3_; + gint _tmp5_; + _inner_error_ = NULL; textdomain (GETTEXT_PACKAGE); bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); @@ -71,58 +131,59 @@ g_option_context_add_main_entries (context, DEJA_DUP_PREFERENCES_options, GETTEXT_PACKAGE); g_option_context_add_group (context, gtk_get_option_group (FALSE)); { - g_option_context_parse (context, &args_length1, &args, &inner_error); - if (inner_error != NULL) { - goto __catch19_g_error; - goto __finally19; + g_option_context_parse (context, &args_length1, &args, &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch0_g_error; + goto __finally0; } } - goto __finally19; - __catch19_g_error: + goto __finally0; + __catch0_g_error: { GError * e; - e = inner_error; - inner_error = NULL; + e = _inner_error_; + _inner_error_ = NULL; { - char* _tmp0; - gint _tmp1; - _tmp0 = NULL; - g_printerr ("%s\n\n%s", e->message, _tmp0 = g_option_context_get_help (context, TRUE, NULL)); - _tmp0 = (g_free (_tmp0), NULL); - return (_tmp1 = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1); + char* _tmp0_; + gint _tmp1_; + _tmp0_ = NULL; + g_printerr ("%s\n\n%s", e->message, _tmp0_ = g_option_context_get_help (context, TRUE, NULL)); + _tmp0_ = (g_free (_tmp0_), NULL); + return (_tmp1_ = 1, (e == NULL) ? NULL : (e = (g_error_free (e), NULL)), (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp1_); } } - __finally19: - if (inner_error != NULL) { + __finally0: + if (_inner_error_ != NULL) { (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)); - g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); - g_clear_error (&inner_error); + g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, _inner_error_->message); + g_clear_error (&_inner_error_); return 0; } status = 0; if (!deja_dup_preferences_handle_console_options (&status)) { - gint _tmp2; - return (_tmp2 = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2); + gint _tmp2_; + return (_tmp2_ = status, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), _tmp2_); } + deja_dup_initialize (); gtk_init (&args_length1, &args); /* to open display ('cause we passed false above) We don't have a solid domain for Déjà Dup...*/ app = unique_app_new ("net.launchpad.deja-dup.preferences", NULL); - if ((g_object_get (app, "is-running", &_tmp3, NULL), _tmp3)) { + if ((g_object_get (app, "is-running", &_tmp3_, NULL), _tmp3_)) { unique_app_send_message (app, (gint) UNIQUE_ACTIVATE, NULL); } else { - PreferencesDialog* _tmp4; + PreferencesDialog* _tmp4_; /* We're first instance. Yay! */ gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), THEME_DIR); gtk_window_set_default_icon_name (PACKAGE); - _tmp4 = NULL; - deja_dup_preferences_pref_window = (_tmp4 = g_object_ref_sink (preferences_dialog_new (NULL)), (deja_dup_preferences_pref_window == NULL) ? NULL : (deja_dup_preferences_pref_window = (g_object_unref (deja_dup_preferences_pref_window), NULL)), _tmp4); + _tmp4_ = NULL; + deja_dup_preferences_pref_window = (_tmp4_ = g_object_ref_sink (preferences_dialog_new (NULL)), (deja_dup_preferences_pref_window == NULL) ? NULL : (deja_dup_preferences_pref_window = (g_object_unref (deja_dup_preferences_pref_window), NULL)), _tmp4_); g_signal_connect (app, "message-received", (GCallback) _deja_dup_preferences_message_received_unique_app_message_received, NULL); unique_app_watch_window (app, (GtkWindow*) deja_dup_preferences_pref_window); gtk_widget_show_all ((GtkWidget*) deja_dup_preferences_pref_window); gtk_main (); } - return (_tmp5 = 0, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), (app == NULL) ? NULL : (app = (g_object_unref (app), NULL)), _tmp5); + return (_tmp5_ = 0, (context == NULL) ? NULL : (context = (g_option_context_free (context), NULL)), (app == NULL) ? NULL : (app = (g_object_unref (app), NULL)), _tmp5_); } @@ -134,7 +195,7 @@ /* Déjà Dup Preferences - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 diff -Nru deja-dup-7.4/preferences/PreferencesDialog.c deja-dup-10.0/preferences/PreferencesDialog.c --- deja-dup-7.4/preferences/PreferencesDialog.c 2009-02-09 21:41:37.000000000 -0500 +++ deja-dup-10.0/preferences/PreferencesDialog.c 2009-06-02 17:48:48.000000000 -0400 @@ -1,54 +1,81 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ -#include "PreferencesDialog.h" +#include <glib.h> +#include <glib-object.h> +#include <gtk/gtk.h> +#include <deja-dup.h> +#include <glib/gi18n-lib.h> #include <stdlib.h> #include <string.h> -#include <libdeja-dup.h> -#include <glib/gi18n-lib.h> -#include <BackendS3.h> -#include <BackendFile.h> -#include <BackendSSH.h> -#include "ToggleGroup.h" -#include "ConfigBackend.h" -#include "ConfigEntry.h" -#include "ConfigFolder.h" -#include "ConfigNumber.h" -#include "ConfigList.h" -#include "ConfigBool.h" -#include "ConfigPeriod.h" -#include "ConfigChoice.h" +#define TYPE_PREFERENCES_DIALOG (preferences_dialog_get_type ()) +#define PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialog)) +#define PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass)) +#define IS_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREFERENCES_DIALOG)) +#define IS_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREFERENCES_DIALOG)) +#define PREFERENCES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass)) + +typedef struct _PreferencesDialog PreferencesDialog; +typedef struct _PreferencesDialogClass PreferencesDialogClass; +typedef struct _PreferencesDialogPrivate PreferencesDialogPrivate; + +/* + Déjà Dup + © 2008,2009 Michael Terry <mike@mterry.name> + + 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 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ +struct _PreferencesDialog { + GtkDialog parent_instance; + PreferencesDialogPrivate * priv; +}; +struct _PreferencesDialogClass { + GtkDialogClass parent_class; +}; struct _PreferencesDialogPrivate { GList** backend_widgets; gint backend_widgets_length1; gint backend_widgets_size; GtkSizeGroup* label_sizes; - ToggleGroup* periodic_toggle; + DejaDupToggleGroup* periodic_toggle; }; + + +GType preferences_dialog_get_type (void); #define PREFERENCES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PREFERENCES_DIALOG, PreferencesDialogPrivate)) enum { PREFERENCES_DIALOG_DUMMY_PROPERTY }; static void _g_list_free_g_object_unref (GList* self); -#define PREFERENCES_DIALOG_FILE_LIST 0 -#define PREFERENCES_DIALOG_S3_LIST 1 -#define PREFERENCES_DIALOG_SSH_LIST 2 -#define PREFERENCES_DIALOG_NUM_LISTS 3 -static void preferences_dialog_handle_backend_changed (PreferencesDialog* self, ConfigBackend* backend, const char* val); -static void preferences_dialog_handle_response (PreferencesDialog* self, PreferencesDialog* dlg, gint response); -static void preferences_dialog_handle_link_clicked (PreferencesDialog* self, GtkButton* button); -static void _preferences_dialog_handle_response_gtk_dialog_response (PreferencesDialog* _sender, gint response_id, gpointer self); -static void _preferences_dialog_handle_backend_changed_config_choice_changed (ConfigBackend* _sender, const char* val, gpointer self); -static void _preferences_dialog_handle_link_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self); +#define PREFERENCES_DIALOG_S3_LIST 0 +#define PREFERENCES_DIALOG_NUM_LISTS 1 +PreferencesDialog* preferences_dialog_new (GtkWindow* parent); +PreferencesDialog* preferences_dialog_construct (GType object_type, GtkWindow* parent); +PreferencesDialog* preferences_dialog_new (GtkWindow* parent); +static void preferences_dialog_handle_location_changed (PreferencesDialog* self, DejaDupConfigLocation* location); +static void preferences_dialog_handle_response (PreferencesDialog* self, GtkDialog* dlg, gint response); +static void _preferences_dialog_handle_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self); +static void _preferences_dialog_handle_location_changed_deja_dup_config_location_changed (DejaDupConfigLocation* _sender, gpointer self); static GObject * preferences_dialog_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static gpointer preferences_dialog_parent_class = NULL; static void preferences_dialog_finalize (GObject* obj); +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); -static int _vala_strcmp0 (const char * str1, const char * str2); @@ -83,57 +110,34 @@ } -static void preferences_dialog_handle_backend_changed (PreferencesDialog* self, ConfigBackend* backend, const char* val) { +static void preferences_dialog_handle_location_changed (PreferencesDialog* self, DejaDupConfigLocation* location) { g_return_if_fail (self != NULL); - g_return_if_fail (backend != NULL); - g_return_if_fail (val != NULL); + g_return_if_fail (location != NULL); { gint i; i = 0; - for (; i < PREFERENCES_DIALOG_NUM_LISTS; (i = i + 1)) { + for (; i < PREFERENCES_DIALOG_NUM_LISTS; i = i + 1) { gboolean show; - gboolean _tmp0; + gboolean _tmp0_; show = FALSE; - _tmp0 = FALSE; + _tmp0_ = FALSE; if (i == PREFERENCES_DIALOG_S3_LIST) { - _tmp0 = _vala_strcmp0 (val, "s3") == 0; + _tmp0_ = deja_dup_config_location_get_is_s3 (location); } else { - _tmp0 = FALSE; + _tmp0_ = FALSE; } - if (_tmp0) { + if (_tmp0_) { show = TRUE; - } else { - gboolean _tmp1; - _tmp1 = FALSE; - if (i == PREFERENCES_DIALOG_FILE_LIST) { - _tmp1 = _vala_strcmp0 (val, "file") == 0; - } else { - _tmp1 = FALSE; - } - if (_tmp1) { - show = TRUE; - } else { - gboolean _tmp2; - _tmp2 = FALSE; - if (i == PREFERENCES_DIALOG_SSH_LIST) { - _tmp2 = _vala_strcmp0 (val, "ssh") == 0; - } else { - _tmp2 = FALSE; - } - if (_tmp2) { - show = TRUE; - } - } } { GList* w_collection; GList* w_it; w_collection = self->priv->backend_widgets[i]; for (w_it = w_collection; w_it != NULL; w_it = w_it->next) { - GtkWidget* _tmp3; + GtkWidget* _tmp1_; GtkWidget* w; - _tmp3 = NULL; - w = (_tmp3 = (GtkWidget*) w_it->data, (_tmp3 == NULL) ? NULL : g_object_ref (_tmp3)); + _tmp1_ = NULL; + w = (_tmp1_ = (GtkWidget*) w_it->data, (_tmp1_ == NULL) ? NULL : g_object_ref (_tmp1_)); { gtk_widget_set_no_show_all (w, !show); if (show) { @@ -150,7 +154,7 @@ } -static void preferences_dialog_handle_response (PreferencesDialog* self, PreferencesDialog* dlg, gint response) { +static void preferences_dialog_handle_response (PreferencesDialog* self, GtkDialog* dlg, gint response) { g_return_if_fail (self != NULL); g_return_if_fail (dlg != NULL); switch (response) { @@ -168,25 +172,13 @@ } -static void preferences_dialog_handle_link_clicked (PreferencesDialog* self, GtkButton* button) { - g_return_if_fail (self != NULL); - g_return_if_fail (button != NULL); - deja_dup_show_uri (GTK_WINDOW (gtk_widget_get_toplevel ((GtkWidget*) button)), "http://aws.amazon.com/s3/"); -} - - -static void _preferences_dialog_handle_response_gtk_dialog_response (PreferencesDialog* _sender, gint response_id, gpointer self) { +static void _preferences_dialog_handle_response_gtk_dialog_response (GtkDialog* _sender, gint response_id, gpointer self) { preferences_dialog_handle_response (self, _sender, response_id); } -static void _preferences_dialog_handle_backend_changed_config_choice_changed (ConfigBackend* _sender, const char* val, gpointer self) { - preferences_dialog_handle_backend_changed (self, _sender, val); -} - - -static void _preferences_dialog_handle_link_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) { - preferences_dialog_handle_link_clicked (self, _sender); +static void _preferences_dialog_handle_location_changed_deja_dup_config_location_changed (DejaDupConfigLocation* _sender, gpointer self) { + preferences_dialog_handle_location_changed (self, _sender); } @@ -204,54 +196,28 @@ gint row; GtkWidget* w; GtkLabel* label; - GList** _tmp0; - GtkSizeGroup* _tmp1; - ConfigBackend* backend; - GtkLabel* _tmp2; - GtkWidget* _tmp3; - GtkButton* button; - GtkWidget* _tmp4; + GList** _tmp0_; + GtkSizeGroup* _tmp1_; + DejaDupConfigLocation* location; + GtkLabel* _tmp2_; GtkTable* s3_table; - GtkWidget* _tmp5; - GtkLabel* _tmp7; - char* _tmp6; - GtkWidget* _tmp8; - GtkLabel* _tmp10; - char* _tmp9; - GtkWidget* _tmp11; - GtkTable* file_table; - GtkWidget* _tmp12; - GtkLabel* _tmp14; - char* _tmp13; - GtkWidget* _tmp15; - GtkTable* ssh_table; - GtkWidget* _tmp16; - GtkLabel* _tmp18; - char* _tmp17; - GtkWidget* _tmp19; - GtkLabel* _tmp21; - char* _tmp20; - GtkWidget* _tmp22; - GtkLabel* _tmp24; - char* _tmp23; - GtkWidget* _tmp25; - GtkLabel* _tmp27; - char* _tmp26; - GtkWidget* _tmp28; - GtkWidget* _tmp29; - GtkLabel* _tmp30; - GtkWidget* _tmp31; - GtkLabel* _tmp32; - GtkWidget* _tmp33; - ConfigBool* periodic_check; - GtkWidget* _tmp34; - GtkLabel* _tmp36; - char* _tmp35; - ToggleGroup* _tmp37; - GValue _tmp39 = {0}; - GValue* _tmp38 = {0}; - GValue _tmp40 = {0}; - GValue val; + GtkWidget* _tmp3_; + GtkLabel* _tmp5_; + char* _tmp4_; + GtkWidget* _tmp6_; + GtkLabel* _tmp8_; + char* _tmp7_; + GtkWidget* _tmp9_; + GtkWidget* _tmp10_; + GtkLabel* _tmp11_; + GtkWidget* _tmp12_; + GtkLabel* _tmp13_; + GtkWidget* _tmp14_; + DejaDupConfigBool* periodic_check; + GtkWidget* _tmp15_; + GtkLabel* _tmp17_; + char* _tmp16_; + DejaDupToggleGroup* _tmp18_; g_object_set ((GObject*) self, "title", _ ("Déjà Dup Preferences"), "has-separator", FALSE, NULL); gtk_dialog_add_buttons ((GtkDialog*) self, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, GTK_STOCK_HELP, GTK_RESPONSE_HELP, NULL); g_signal_connect_object ((GtkDialog*) self, "response", (GCallback) _preferences_dialog_handle_response_gtk_dialog_response, self, 0); @@ -260,166 +226,95 @@ row = 0; w = NULL; label = NULL; - _tmp0 = NULL; - self->priv->backend_widgets = (_tmp0 = g_new0 (GList*, PREFERENCES_DIALOG_NUM_LISTS + 1), self->priv->backend_widgets = (_vala_array_free (self->priv->backend_widgets, self->priv->backend_widgets_length1, (GDestroyNotify) _g_list_free_g_object_unref), NULL), self->priv->backend_widgets_length1 = PREFERENCES_DIALOG_NUM_LISTS, self->priv->backend_widgets_size = self->priv->backend_widgets_length1, _tmp0); - _tmp1 = NULL; - self->priv->label_sizes = (_tmp1 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL), (self->priv->label_sizes == NULL) ? NULL : (self->priv->label_sizes = (g_object_unref (self->priv->label_sizes), NULL)), _tmp1); - backend = g_object_ref_sink (config_backend_new (DEJA_DUP_BACKEND_KEY)); - g_signal_connect_object ((ConfigChoice*) backend, "changed", (GCallback) _preferences_dialog_handle_backend_changed_config_choice_changed, self, 0); - _tmp2 = NULL; - label = (_tmp2 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("_Backup location:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp2); - g_object_set ((GObject*) label, "mnemonic-widget", backend, "use-underline", TRUE, "xalign", 0.0f, NULL); + _tmp0_ = NULL; + self->priv->backend_widgets = (_tmp0_ = g_new0 (GList*, PREFERENCES_DIALOG_NUM_LISTS + 1), self->priv->backend_widgets = (_vala_array_free (self->priv->backend_widgets, self->priv->backend_widgets_length1, (GDestroyNotify) _g_list_free_g_object_unref), NULL), self->priv->backend_widgets_length1 = PREFERENCES_DIALOG_NUM_LISTS, self->priv->backend_widgets_size = self->priv->backend_widgets_length1, _tmp0_); + _tmp1_ = NULL; + self->priv->label_sizes = (_tmp1_ = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL), (self->priv->label_sizes == NULL) ? NULL : (self->priv->label_sizes = (g_object_unref (self->priv->label_sizes), NULL)), _tmp1_); + location = g_object_ref_sink (deja_dup_config_location_new ()); + g_signal_connect_object (location, "changed", (GCallback) _preferences_dialog_handle_location_changed_deja_dup_config_location_changed, self, 0); + _tmp2_ = NULL; + label = (_tmp2_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("_Backup location:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp2_); + g_object_set ((GObject*) label, "mnemonic-widget", location, "use-underline", TRUE, "xalign", 0.0f, NULL); gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); gtk_table_attach (table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), 0, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (table, (GtkWidget*) backend, (guint) 1, (guint) 2, (guint) row, (guint) (row + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - _tmp3 = NULL; - w = (_tmp3 = (GtkWidget*) g_object_ref_sink ((GtkImage*) gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_BUTTON)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp3); - button = g_object_ref_sink ((GtkButton*) gtk_button_new ()); - g_signal_connect_object (button, "clicked", (GCallback) _preferences_dialog_handle_link_clicked_gtk_button_clicked, self, 0); - gtk_container_add ((GtkContainer*) button, w); - gtk_table_attach (table, (GtkWidget*) button, (guint) 2, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL, GTK_FILL, (guint) 3, (guint) 3); - _tmp4 = NULL; - self->priv->backend_widgets[PREFERENCES_DIALOG_S3_LIST] = g_list_append (self->priv->backend_widgets[PREFERENCES_DIALOG_S3_LIST], (_tmp4 = (GtkWidget*) button, (_tmp4 == NULL) ? NULL : g_object_ref (_tmp4))); + gtk_table_attach (table, (GtkWidget*) location, (guint) 1, (guint) 2, (guint) row, (guint) (row + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); row = row + 1; s3_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 1, (guint) 3, FALSE)); - _tmp5 = NULL; - w = (_tmp5 = (GtkWidget*) g_object_ref_sink (config_entry_new (DEJA_DUP_S3_ID_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp5); - _tmp7 = NULL; - _tmp6 = NULL; - label = (_tmp7 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp6 = g_strdup_printf (" %s", _ ("S3 Access Key I_D:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp7); - _tmp6 = (g_free (_tmp6), NULL); + _tmp3_ = NULL; + w = (_tmp3_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_entry_new (DEJA_DUP_S3_ID_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp3_); + _tmp5_ = NULL; + _tmp4_ = NULL; + label = (_tmp5_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp4_ = g_strdup_printf (" %s", _ ("S3 Access Key I_D:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp5_); + _tmp4_ = (g_free (_tmp4_), NULL); g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); gtk_table_attach (s3_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) 0, (guint) 1, 0, GTK_FILL, (guint) 3, (guint) 3); gtk_table_attach (s3_table, w, (guint) 1, (guint) 3, (guint) 0, (guint) 1, GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - _tmp8 = NULL; - w = (_tmp8 = (GtkWidget*) g_object_ref_sink (config_entry_new (DEJA_DUP_S3_FOLDER_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp8); - _tmp10 = NULL; - _tmp9 = NULL; - label = (_tmp10 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp9 = g_strdup_printf (" %s", _ ("_Folder:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp10); - _tmp9 = (g_free (_tmp9), NULL); + _tmp6_ = NULL; + w = (_tmp6_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_entry_new (DEJA_DUP_S3_FOLDER_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp6_); + _tmp8_ = NULL; + _tmp7_ = NULL; + label = (_tmp8_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp7_ = g_strdup_printf (" %s", _ ("_Folder:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp8_); + _tmp7_ = (g_free (_tmp7_), NULL); g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); gtk_table_attach (s3_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) 1, (guint) 2, 0, GTK_FILL, (guint) 3, (guint) 3); gtk_table_attach (s3_table, w, (guint) 1, (guint) 3, (guint) 1, (guint) 2, GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); gtk_table_attach (table, (GtkWidget*) s3_table, (guint) 0, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); - _tmp11 = NULL; - self->priv->backend_widgets[PREFERENCES_DIALOG_S3_LIST] = g_list_append (self->priv->backend_widgets[PREFERENCES_DIALOG_S3_LIST], (_tmp11 = (GtkWidget*) s3_table, (_tmp11 == NULL) ? NULL : g_object_ref (_tmp11))); + _tmp9_ = NULL; + self->priv->backend_widgets[PREFERENCES_DIALOG_S3_LIST] = g_list_append (self->priv->backend_widgets[PREFERENCES_DIALOG_S3_LIST], (_tmp9_ = (GtkWidget*) s3_table, (_tmp9_ == NULL) ? NULL : g_object_ref (_tmp9_))); row = row + 1; - file_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 1, (guint) 3, FALSE)); - _tmp12 = NULL; - w = (_tmp12 = (GtkWidget*) g_object_ref_sink (config_folder_new (DEJA_DUP_FILE_PATH_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp12); - _tmp14 = NULL; - _tmp13 = NULL; - label = (_tmp14 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp13 = g_strdup_printf (" %s", _ ("_Folder:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp14); - _tmp13 = (g_free (_tmp13), NULL); - g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); + _tmp10_ = NULL; + w = (_tmp10_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_list_new (DEJA_DUP_INCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp10_); + gtk_widget_set_size_request (w, 250, 80); + _tmp11_ = NULL; + label = (_tmp11_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("I_nclude files in folders:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp11_); + g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "wrap", TRUE, "width-request", 150, "xalign", 0.0f, "yalign", 0.0f, NULL); gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); - gtk_table_attach (file_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) 0, (guint) 1, 0, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (file_table, w, (guint) 1, (guint) 3, (guint) 0, (guint) 1, GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (table, (GtkWidget*) file_table, (guint) 0, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); - _tmp15 = NULL; - self->priv->backend_widgets[PREFERENCES_DIALOG_FILE_LIST] = g_list_append (self->priv->backend_widgets[PREFERENCES_DIALOG_FILE_LIST], (_tmp15 = (GtkWidget*) file_table, (_tmp15 == NULL) ? NULL : g_object_ref (_tmp15))); - row = row + 1; - ssh_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 4, (guint) 3, FALSE)); - _tmp16 = NULL; - w = (_tmp16 = (GtkWidget*) g_object_ref_sink (config_entry_new (DEJA_DUP_SSH_USERNAME_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp16); - _tmp18 = NULL; - _tmp17 = NULL; - label = (_tmp18 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp17 = g_strdup_printf (" %s", _ ("_Username:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp18); - _tmp17 = (g_free (_tmp17), NULL); - g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); - gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); - gtk_table_attach (ssh_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) 0, (guint) 1, 0, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (ssh_table, w, (guint) 1, (guint) 3, (guint) 0, (guint) 1, GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - _tmp19 = NULL; - w = (_tmp19 = (GtkWidget*) g_object_ref_sink (config_entry_new (DEJA_DUP_SSH_SERVER_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp19); - _tmp21 = NULL; - _tmp20 = NULL; - label = (_tmp21 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp20 = g_strdup_printf (" %s", _ ("_Server:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp21); - _tmp20 = (g_free (_tmp20), NULL); - g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); - gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); - gtk_table_attach (ssh_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) 1, (guint) 2, 0, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (ssh_table, w, (guint) 1, (guint) 3, (guint) 1, (guint) 2, GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - _tmp22 = NULL; - w = (_tmp22 = (GtkWidget*) g_object_ref_sink (config_number_new (DEJA_DUP_SSH_PORT_KEY, 1, 100000)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp22); - _tmp24 = NULL; - _tmp23 = NULL; - label = (_tmp24 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp23 = g_strdup_printf (" %s", _ ("_Port:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp24); - _tmp23 = (g_free (_tmp23), NULL); - g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); - gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); - gtk_table_attach (ssh_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) 2, (guint) 3, 0, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (ssh_table, w, (guint) 1, (guint) 3, (guint) 2, (guint) 3, GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - _tmp25 = NULL; - w = (_tmp25 = (GtkWidget*) g_object_ref_sink (config_entry_new (DEJA_DUP_SSH_DIRECTORY_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp25); - _tmp27 = NULL; - _tmp26 = NULL; - label = (_tmp27 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp26 = g_strdup_printf (" %s", _ ("_Folder:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp27); - _tmp26 = (g_free (_tmp26), NULL); - g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); - gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); - gtk_table_attach (ssh_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) 3, (guint) 4, 0, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (ssh_table, w, (guint) 1, (guint) 3, (guint) 3, (guint) 4, GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - gtk_table_attach (table, (GtkWidget*) ssh_table, (guint) 0, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL, GTK_FILL, (guint) 0, (guint) 0); - _tmp28 = NULL; - self->priv->backend_widgets[PREFERENCES_DIALOG_SSH_LIST] = g_list_append (self->priv->backend_widgets[PREFERENCES_DIALOG_SSH_LIST], (_tmp28 = (GtkWidget*) ssh_table, (_tmp28 == NULL) ? NULL : g_object_ref (_tmp28))); - row = row + 1; - _tmp29 = NULL; - w = (_tmp29 = (GtkWidget*) g_object_ref_sink (config_list_new (DEJA_DUP_INCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp29); - _tmp30 = NULL; - label = (_tmp30 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("I_nclude:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp30); - g_object_set ((GObject*) label, "use-underline", TRUE, "xalign", 0.0f, "yalign", 0.0f, NULL); - gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); - gtk_table_attach (table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), 0, GTK_FILL, (guint) 3, (guint) 3); + gtk_table_attach (table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), GTK_FILL, GTK_FILL, (guint) 3, (guint) 3); gtk_table_attach (table, w, (guint) 1, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, (guint) 3, (guint) 3); row = row + 1; - _tmp31 = NULL; - w = (_tmp31 = (GtkWidget*) g_object_ref_sink (config_list_new (DEJA_DUP_EXCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp31); - _tmp32 = NULL; - label = (_tmp32 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("E_xclude:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp32); - g_object_set ((GObject*) label, "use-underline", TRUE, "xalign", 0.0f, "yalign", 0.0f, NULL); + _tmp12_ = NULL; + w = (_tmp12_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_list_new (DEJA_DUP_EXCLUDE_LIST_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp12_); + gtk_widget_set_size_request (w, 250, 120); + _tmp13_ = NULL; + label = (_tmp13_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("E_xcept files in folders:"))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp13_); + g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "wrap", TRUE, "width-request", 150, "xalign", 0.0f, "yalign", 0.0f, NULL); gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); - gtk_table_attach (table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), 0, GTK_FILL, (guint) 3, (guint) 3); + gtk_table_attach (table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), GTK_FILL, GTK_FILL, (guint) 3, (guint) 3); gtk_table_attach (table, w, (guint) 1, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, (guint) 3, (guint) 3); row = row + 1; - _tmp33 = NULL; - w = (_tmp33 = (GtkWidget*) g_object_ref_sink (config_bool_new (DEJA_DUP_ENCRYPT_KEY, _ ("_Encrypt backup files"))), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp33); + _tmp14_ = NULL; + w = (_tmp14_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_bool_new (DEJA_DUP_ENCRYPT_KEY, _ ("_Encrypt backup files"))), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp14_); gtk_table_attach (table, w, (guint) 0, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); row = row + 1; - periodic_check = g_object_ref_sink (config_bool_new (DEJA_DUP_PERIODIC_KEY, _ ("_Automatically backup on a regular schedule"))); + periodic_check = g_object_ref_sink (deja_dup_config_bool_new (DEJA_DUP_PERIODIC_KEY, _ ("_Automatically backup on a regular schedule"))); gtk_table_attach (table, (GtkWidget*) periodic_check, (guint) 0, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); row = row + 1; - _tmp34 = NULL; - w = (_tmp34 = (GtkWidget*) g_object_ref_sink (config_period_new (DEJA_DUP_PERIODIC_PERIOD_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp34); - _tmp36 = NULL; - _tmp35 = NULL; - label = (_tmp36 = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp35 = g_strdup_printf (" %s", _ ("How _often to backup:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp36); - _tmp35 = (g_free (_tmp35), NULL); - g_object_set ((GObject*) label, "mnemonic-widget", backend, "use-underline", TRUE, "xalign", 0.0f, NULL); + _tmp15_ = NULL; + w = (_tmp15_ = (GtkWidget*) g_object_ref_sink (deja_dup_config_period_new (DEJA_DUP_PERIODIC_PERIOD_KEY)), (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)), _tmp15_); + _tmp17_ = NULL; + _tmp16_ = NULL; + label = (_tmp17_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (_tmp16_ = g_strdup_printf (" %s", _ ("How _often to backup:")))), (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)), _tmp17_); + _tmp16_ = (g_free (_tmp16_), NULL); + g_object_set ((GObject*) label, "mnemonic-widget", w, "use-underline", TRUE, "xalign", 0.0f, NULL); gtk_size_group_add_widget (self->priv->label_sizes, (GtkWidget*) label); gtk_table_attach (table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) row, (guint) (row + 1), 0, GTK_FILL, (guint) 3, (guint) 3); gtk_table_attach (table, w, (guint) 1, (guint) 3, (guint) row, (guint) (row + 1), GTK_FILL | GTK_EXPAND, GTK_FILL, (guint) 3, (guint) 3); - _tmp37 = NULL; - self->priv->periodic_toggle = (_tmp37 = toggle_group_new ((Togglable*) periodic_check), (self->priv->periodic_toggle == NULL) ? NULL : (self->priv->periodic_toggle = (g_object_unref (self->priv->periodic_toggle), NULL)), _tmp37); - toggle_group_add_dependent (self->priv->periodic_toggle, (GtkWidget*) label); - toggle_group_add_dependent (self->priv->periodic_toggle, w); - toggle_group_check (self->priv->periodic_toggle); + _tmp18_ = NULL; + self->priv->periodic_toggle = (_tmp18_ = deja_dup_toggle_group_new ((DejaDupTogglable*) periodic_check), (self->priv->periodic_toggle == NULL) ? NULL : (self->priv->periodic_toggle = (g_object_unref (self->priv->periodic_toggle), NULL)), _tmp18_); + deja_dup_toggle_group_add_dependent (self->priv->periodic_toggle, (GtkWidget*) label); + deja_dup_toggle_group_add_dependent (self->priv->periodic_toggle, w); + deja_dup_toggle_group_check (self->priv->periodic_toggle); row = row + 1; - val = (_tmp40 = G_IS_VALUE (&(*(_tmp38 = config_choice_get_current_value ((ConfigChoice*) backend)))) ? (g_value_init (&_tmp39, G_VALUE_TYPE (&(*(_tmp38 = config_choice_get_current_value ((ConfigChoice*) backend))))), g_value_copy (&(*(_tmp38 = config_choice_get_current_value ((ConfigChoice*) backend))), &_tmp39), _tmp39) : (*(_tmp38 = config_choice_get_current_value ((ConfigChoice*) backend))), (_tmp38 == NULL) ? NULL : (_tmp38 = (g_free (_tmp38), NULL)), _tmp40); - preferences_dialog_handle_backend_changed (self, backend, g_value_get_string (&val)); + preferences_dialog_handle_location_changed (self, location); gtk_container_add ((GtkContainer*) ((GtkDialog*) self)->vbox, (GtkWidget*) table); (table == NULL) ? NULL : (table = (g_object_unref (table), NULL)); (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)); (label == NULL) ? NULL : (label = (g_object_unref (label), NULL)); - (backend == NULL) ? NULL : (backend = (g_object_unref (backend), NULL)); - (button == NULL) ? NULL : (button = (g_object_unref (button), NULL)); + (location == NULL) ? NULL : (location = (g_object_unref (location), NULL)); (s3_table == NULL) ? NULL : (s3_table = (g_object_unref (s3_table), NULL)); - (file_table == NULL) ? NULL : (file_table = (g_object_unref (file_table), NULL)); - (ssh_table == NULL) ? NULL : (ssh_table = (g_object_unref (ssh_table), NULL)); (periodic_check == NULL) ? NULL : (periodic_check = (g_object_unref (periodic_check), NULL)); - G_IS_VALUE (&val) ? (g_value_unset (&val), NULL) : NULL; } return obj; } @@ -458,7 +353,7 @@ } -static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { +static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { @@ -467,18 +362,12 @@ } } } - g_free (array); } -static int _vala_strcmp0 (const char * str1, const char * str2) { - if (str1 == NULL) { - return -(str1 != str2); - } - if (str2 == NULL) { - return str1 != str2; - } - return strcmp (str1, str2); +static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { + _vala_array_destroy (array, array_length, destroy_func); + g_free (array); } diff -Nru deja-dup-7.4/preferences/PreferencesDialog.h deja-dup-10.0/preferences/PreferencesDialog.h --- deja-dup-7.4/preferences/PreferencesDialog.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/PreferencesDialog.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,58 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __PREFERENCESDIALOG_H__ -#define __PREFERENCESDIALOG_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> - -G_BEGIN_DECLS - - -#define TYPE_PREFERENCES_DIALOG (preferences_dialog_get_type ()) -#define PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialog)) -#define PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass)) -#define IS_PREFERENCES_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PREFERENCES_DIALOG)) -#define IS_PREFERENCES_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PREFERENCES_DIALOG)) -#define PREFERENCES_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PREFERENCES_DIALOG, PreferencesDialogClass)) - -typedef struct _PreferencesDialog PreferencesDialog; -typedef struct _PreferencesDialogClass PreferencesDialogClass; -typedef struct _PreferencesDialogPrivate PreferencesDialogPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _PreferencesDialog { - GtkDialog parent_instance; - PreferencesDialogPrivate * priv; -}; - -struct _PreferencesDialogClass { - GtkDialogClass parent_class; -}; - - -PreferencesDialog* preferences_dialog_construct (GType object_type, GtkWindow* parent); -PreferencesDialog* preferences_dialog_new (GtkWindow* parent); -GType preferences_dialog_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/PreferencesDialog.vala deja-dup-10.0/preferences/PreferencesDialog.vala --- deja-dup-7.4/preferences/PreferencesDialog.vala 2009-02-09 21:41:31.000000000 -0500 +++ deja-dup-10.0/preferences/PreferencesDialog.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -21,14 +21,12 @@ public class PreferencesDialog : Gtk.Dialog { - static const int FILE_LIST = 0; - static const int S3_LIST = 1; - static const int SSH_LIST = 2; - static const int NUM_LISTS = 3; + static const int S3_LIST = 0; + static const int NUM_LISTS = 1; List<Gtk.Widget>[] backend_widgets; Gtk.SizeGroup label_sizes; - ToggleGroup periodic_toggle; + DejaDup.ToggleGroup periodic_toggle; public PreferencesDialog(Gtk.Window? parent = null) { transient_for = parent; @@ -39,7 +37,7 @@ "has-separator", false); add_buttons(Gtk.STOCK_CLOSE, Gtk.ResponseType.CLOSE, Gtk.STOCK_HELP, Gtk.ResponseType.HELP); - response += handle_response; + response.connect(handle_response); var table = new Gtk.Table(0, 3, false); table.set("border-width", 3); @@ -51,31 +49,22 @@ backend_widgets = new List<Gtk.Widget>[NUM_LISTS]; label_sizes = new Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL); - ConfigBackend backend = new ConfigBackend(DejaDup.BACKEND_KEY); - backend.changed += handle_backend_changed; + var location = new DejaDup.ConfigLocation(); + location.changed.connect(handle_location_changed); label = new Gtk.Label(_("_Backup location:")); - label.set("mnemonic-widget", backend, + label.set("mnemonic-widget", location, "use-underline", true, "xalign", 0.0f); label_sizes.add_widget(label); table.attach(label, 0, 1, row, row + 1, 0, Gtk.AttachOptions.FILL, 3, 3); - table.attach(backend, 1, 2, row, row + 1, + table.attach(location, 1, 2, row, row + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL, 3, 3); - - w = new Gtk.Image.from_stock(Gtk.STOCK_HELP, Gtk.IconSize.BUTTON); - var button = new Gtk.Button(); - button.clicked += handle_link_clicked; - button.add(w); - table.attach(button, 2, 3, row, row + 1, - Gtk.AttachOptions.FILL, - Gtk.AttachOptions.FILL, 3, 3); - backend_widgets[S3_LIST].append(button); ++row; var s3_table = new Gtk.Table(1, 3, false); - w = new ConfigEntry(DejaDup.S3_ID_KEY); + w = new DejaDup.ConfigEntry(DejaDup.S3_ID_KEY); label = new Gtk.Label(" %s".printf(_("S3 Access Key I_D:"))); label.set("mnemonic-widget", w, "use-underline", true, @@ -87,7 +76,7 @@ Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL, 3, 3); - w = new ConfigEntry(DejaDup.S3_FOLDER_KEY); + w = new DejaDup.ConfigEntry(DejaDup.S3_FOLDER_KEY); label = new Gtk.Label(" %s".printf(_("_Folder:"))); label.set("mnemonic-widget", w, "use-underline", true, @@ -105,122 +94,59 @@ backend_widgets[S3_LIST].append(s3_table); ++row; - var file_table = new Gtk.Table(1, 3, false); - w = new ConfigFolder(DejaDup.FILE_PATH_KEY); - label = new Gtk.Label(" %s".printf(_("_Folder:"))); + w = new DejaDup.ConfigList(DejaDup.INCLUDE_LIST_KEY); + w.set_size_request(250, 80); + label = new Gtk.Label(_("I_nclude files in folders:")); label.set("mnemonic-widget", w, "use-underline", true, - "xalign", 0.0f); - label_sizes.add_widget(label); - file_table.attach(label, 0, 1, 0, 1, - 0, Gtk.AttachOptions.FILL, 3, 3); - file_table.attach(w, 1, 3, 0, 1, - Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, - Gtk.AttachOptions.FILL, 3, 3); - table.attach(file_table, 0, 3, row, row + 1, - Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, - 0, 0); - backend_widgets[FILE_LIST].append(file_table); - ++row; - - var ssh_table = new Gtk.Table(4, 3, false); - w = new ConfigEntry(DejaDup.SSH_USERNAME_KEY); - label = new Gtk.Label(" %s".printf(_("_Username:"))); - label.set("mnemonic-widget", w, - "use-underline", true, - "xalign", 0.0f); - label_sizes.add_widget(label); - ssh_table.attach(label, 0, 1, 0, 1, - 0, Gtk.AttachOptions.FILL, 3, 3); - ssh_table.attach(w, 1, 3, 0, 1, - Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, - Gtk.AttachOptions.FILL, 3, 3); - - w = new ConfigEntry(DejaDup.SSH_SERVER_KEY); - label = new Gtk.Label(" %s".printf(_("_Server:"))); - label.set("mnemonic-widget", w, - "use-underline", true, - "xalign", 0.0f); - label_sizes.add_widget(label); - ssh_table.attach(label, 0, 1, 1, 2, - 0, Gtk.AttachOptions.FILL, 3, 3); - ssh_table.attach(w, 1, 3, 1, 2, - Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, - Gtk.AttachOptions.FILL, 3, 3); - - w = new ConfigNumber(DejaDup.SSH_PORT_KEY, 1, 100000); - label = new Gtk.Label(" %s".printf(_("_Port:"))); - label.set("mnemonic-widget", w, - "use-underline", true, - "xalign", 0.0f); - label_sizes.add_widget(label); - ssh_table.attach(label, 0, 1, 2, 3, - 0, Gtk.AttachOptions.FILL, 3, 3); - ssh_table.attach(w, 1, 3, 2, 3, - Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, - Gtk.AttachOptions.FILL, 3, 3); - - w = new ConfigEntry(DejaDup.SSH_DIRECTORY_KEY); - label = new Gtk.Label(" %s".printf(_("_Folder:"))); - label.set("mnemonic-widget", w, - "use-underline", true, - "xalign", 0.0f); - label_sizes.add_widget(label); - ssh_table.attach(label, 0, 1, 3, 4, - 0, Gtk.AttachOptions.FILL, 3, 3); - ssh_table.attach(w, 1, 3, 3, 4, - Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, - Gtk.AttachOptions.FILL, 3, 3); - - table.attach(ssh_table, 0, 3, row, row + 1, - Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL, - 0, 0); - backend_widgets[SSH_LIST].append(ssh_table); - ++row; - - w = new ConfigList(DejaDup.INCLUDE_LIST_KEY); - label = new Gtk.Label(_("I_nclude:")); - label.set("use-underline", true, + "wrap", true, + "width-request", 150, "xalign", 0.0f, "yalign", 0.0f); label_sizes.add_widget(label); table.attach(label, 0, 1, row, row + 1, - 0, Gtk.AttachOptions.FILL, 3, 3); + Gtk.AttachOptions.FILL, + Gtk.AttachOptions.FILL, 3, 3); table.attach(w, 1, 3, row, row + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 3, 3); ++row; - w = new ConfigList(DejaDup.EXCLUDE_LIST_KEY); - label = new Gtk.Label(_("E_xclude:")); - label.set("use-underline", true, + w = new DejaDup.ConfigList(DejaDup.EXCLUDE_LIST_KEY); + w.set_size_request(250, 120); + label = new Gtk.Label(_("E_xcept files in folders:")); + label.set("mnemonic-widget", w, + "use-underline", true, + "wrap", true, + "width-request", 150, "xalign", 0.0f, "yalign", 0.0f); label_sizes.add_widget(label); table.attach(label, 0, 1, row, row + 1, - 0, Gtk.AttachOptions.FILL, 3, 3); + Gtk.AttachOptions.FILL, + Gtk.AttachOptions.FILL, 3, 3); table.attach(w, 1, 3, row, row + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 3, 3); ++row; - w = new ConfigBool(DejaDup.ENCRYPT_KEY, _("_Encrypt backup files")); + w = new DejaDup.ConfigBool(DejaDup.ENCRYPT_KEY, _("_Encrypt backup files")); table.attach(w, 0, 3, row, row + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL, 3, 3); ++row; - ConfigBool periodic_check = new ConfigBool(DejaDup.PERIODIC_KEY, _("_Automatically backup on a regular schedule")); + DejaDup.ConfigBool periodic_check = new DejaDup.ConfigBool(DejaDup.PERIODIC_KEY, _("_Automatically backup on a regular schedule")); table.attach(periodic_check, 0, 3, row, row + 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL, 3, 3); ++row; - w = new ConfigPeriod(DejaDup.PERIODIC_PERIOD_KEY); + w = new DejaDup.ConfigPeriod(DejaDup.PERIODIC_PERIOD_KEY); label = new Gtk.Label(" %s".printf(_("How _often to backup:"))); - label.set("mnemonic-widget", backend, + label.set("mnemonic-widget", w, "use-underline", true, "xalign", 0.0f); label_sizes.add_widget(label); @@ -230,26 +156,21 @@ Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL, 3, 3); - periodic_toggle = new ToggleGroup(periodic_check); + periodic_toggle = new DejaDup.ToggleGroup(periodic_check); periodic_toggle.add_dependent(label); periodic_toggle.add_dependent(w); periodic_toggle.check(); ++row; - Value val = backend.get_current_value(); - handle_backend_changed(backend, val.get_string()); + handle_location_changed(location); vbox.add(table); } - void handle_backend_changed(ConfigBackend backend, string val) + void handle_location_changed(DejaDup.ConfigLocation location) { for (int i = 0; i < NUM_LISTS; ++i) { bool show = false; - if (i == S3_LIST && val == "s3") - show = true; - else if (i == FILE_LIST && val == "file") - show = true; - else if (i == SSH_LIST && val == "ssh") + if (i == S3_LIST && location.is_s3) show = true; foreach (Gtk.Widget w in backend_widgets[i]) { @@ -262,7 +183,7 @@ } } - void handle_response(PreferencesDialog dlg, int response) { + void handle_response(Gtk.Dialog dlg, int response) { switch (response) { case Gtk.ResponseType.HELP: DejaDup.show_uri(dlg, "ghelp:deja-dup#deja-dup-prefs"); @@ -272,10 +193,5 @@ break; } } - - void handle_link_clicked(Gtk.Button button) - { - DejaDup.show_uri((Gtk.Window)button.get_toplevel(), "http://aws.amazon.com/s3/"); - } } diff -Nru deja-dup-7.4/preferences/preferences.h deja-dup-10.0/preferences/preferences.h --- deja-dup-7.4/preferences/preferences.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/preferences.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,60 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ - -#ifndef __PREFERENCES_H__ -#define __PREFERENCES_H__ - -#include <glib.h> -#include <glib-object.h> -#include <stdlib.h> -#include <string.h> - -G_BEGIN_DECLS - - -#define TYPE_DEJA_DUP_PREFERENCES (deja_dup_preferences_get_type ()) -#define DEJA_DUP_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEJA_DUP_PREFERENCES, DejaDupPreferences)) -#define DEJA_DUP_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEJA_DUP_PREFERENCES, DejaDupPreferencesClass)) -#define IS_DEJA_DUP_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEJA_DUP_PREFERENCES)) -#define IS_DEJA_DUP_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEJA_DUP_PREFERENCES)) -#define DEJA_DUP_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEJA_DUP_PREFERENCES, DejaDupPreferencesClass)) - -typedef struct _DejaDupPreferences DejaDupPreferences; -typedef struct _DejaDupPreferencesClass DejaDupPreferencesClass; -typedef struct _DejaDupPreferencesPrivate DejaDupPreferencesPrivate; - -/* - Déjà Dup Preferences - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _DejaDupPreferences { - GObject parent_instance; - DejaDupPreferencesPrivate * priv; -}; - -struct _DejaDupPreferencesClass { - GObjectClass parent_class; -}; - - -gint deja_dup_preferences_main (char** args, int args_length1); -DejaDupPreferences* deja_dup_preferences_construct (GType object_type); -DejaDupPreferences* deja_dup_preferences_new (void); -GType deja_dup_preferences_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/preferences.vala deja-dup-10.0/preferences/preferences.vala --- deja-dup-7.4/preferences/preferences.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/preferences.vala 2009-06-02 17:48:48.000000000 -0400 @@ -1,7 +1,7 @@ -/* -*- Mode: C; indent-tabs-mode: nil; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup Preferences - © 2008—2009 Michael Terry <mike@mterry.name> + © 2008,2009 Michael Terry <mike@mterry.name> 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 @@ -79,6 +79,7 @@ if (!handle_console_options(out status)) return status; + DejaDup.initialize(); Gtk.init(ref args); // to open display ('cause we passed false above) // We don't have a solid domain for Déjà Dup... @@ -93,7 +94,7 @@ pref_window = new PreferencesDialog(); - app.message_received += message_received; + app.message_received.connect(message_received); app.watch_window(pref_window); pref_window.show_all(); diff -Nru deja-dup-7.4/preferences/ToggleGroup.c deja-dup-10.0/preferences/ToggleGroup.c --- deja-dup-7.4/preferences/ToggleGroup.c 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ToggleGroup.c 1969-12-31 19:00:00.000000000 -0500 @@ -1,225 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#include "ToggleGroup.h" - - - - -struct _ToggleGroupPrivate { - Togglable* _toggle; - GList* dependents; -}; - -#define TOGGLE_GROUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_TOGGLE_GROUP, ToggleGroupPrivate)) -enum { - TOGGLE_GROUP_DUMMY_PROPERTY, - TOGGLE_GROUP_TOGGLE -}; -static void _g_list_free_g_object_unref (GList* self); -static void toggle_group_set_toggle (ToggleGroup* self, Togglable* value); -static void __lambda0 (Togglable* t, ToggleGroup* self); -static void ___lambda0_togglable_toggled (Togglable* _sender, gpointer self); -static GObject * toggle_group_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); -static gpointer toggle_group_parent_class = NULL; -static void toggle_group_finalize (GObject* obj); - - - -gboolean togglable_get_active (Togglable* self) { - return TOGGLABLE_GET_INTERFACE (self)->get_active (self); -} - - -static void togglable_base_init (TogglableIface * iface) { - static gboolean initialized = FALSE; - if (!initialized) { - initialized = TRUE; - g_signal_new ("toggled", TYPE_TOGGLABLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - } -} - - -GType togglable_get_type (void) { - static GType togglable_type_id = 0; - if (togglable_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (TogglableIface), (GBaseInitFunc) togglable_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; - togglable_type_id = g_type_register_static (G_TYPE_INTERFACE, "Togglable", &g_define_type_info, 0); - g_type_interface_add_prerequisite (togglable_type_id, G_TYPE_OBJECT); - } - return togglable_type_id; -} - - -static void _g_list_free_g_object_unref (GList* self) { - g_list_foreach (self, (GFunc) g_object_unref, NULL); - g_list_free (self); -} - - -ToggleGroup* toggle_group_construct (GType object_type, Togglable* toggle) { - GParameter * __params; - GParameter * __params_it; - ToggleGroup * self; - g_return_val_if_fail (toggle != NULL, NULL); - __params = g_new0 (GParameter, 1); - __params_it = __params; - __params_it->name = "toggle"; - g_value_init (&__params_it->value, TYPE_TOGGLABLE); - g_value_set_object (&__params_it->value, toggle); - __params_it++; - self = g_object_newv (object_type, __params_it - __params, __params); - while (__params_it > __params) { - --__params_it; - g_value_unset (&__params_it->value); - } - g_free (__params); - return self; -} - - -ToggleGroup* toggle_group_new (Togglable* toggle) { - return toggle_group_construct (TYPE_TOGGLE_GROUP, toggle); -} - - -void toggle_group_add_dependent (ToggleGroup* self, GtkWidget* w) { - GtkWidget* _tmp0; - g_return_if_fail (self != NULL); - g_return_if_fail (w != NULL); - _tmp0 = NULL; - self->priv->dependents = g_list_append (self->priv->dependents, (_tmp0 = w, (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0))); -} - - -void toggle_group_check (ToggleGroup* self) { - gboolean on; - g_return_if_fail (self != NULL); - on = togglable_get_active (self->priv->_toggle); - { - GList* w_collection; - GList* w_it; - w_collection = self->priv->dependents; - for (w_it = w_collection; w_it != NULL; w_it = w_it->next) { - GtkWidget* _tmp0; - GtkWidget* w; - _tmp0 = NULL; - w = (_tmp0 = (GtkWidget*) w_it->data, (_tmp0 == NULL) ? NULL : g_object_ref (_tmp0)); - { - gtk_widget_set_sensitive (w, on); - (w == NULL) ? NULL : (w = (g_object_unref (w), NULL)); - } - } - } -} - - -Togglable* toggle_group_get_toggle (ToggleGroup* self) { - g_return_val_if_fail (self != NULL, NULL); - return self->priv->_toggle; -} - - -static void toggle_group_set_toggle (ToggleGroup* self, Togglable* value) { - Togglable* _tmp2; - Togglable* _tmp1; - g_return_if_fail (self != NULL); - _tmp2 = NULL; - _tmp1 = NULL; - self->priv->_toggle = (_tmp2 = (_tmp1 = value, (_tmp1 == NULL) ? NULL : g_object_ref (_tmp1)), (self->priv->_toggle == NULL) ? NULL : (self->priv->_toggle = (g_object_unref (self->priv->_toggle), NULL)), _tmp2); - g_object_notify ((GObject *) self, "toggle"); -} - - -static void __lambda0 (Togglable* t, ToggleGroup* self) { - g_return_if_fail (t != NULL); - toggle_group_check (self); -} - - -static void ___lambda0_togglable_toggled (Togglable* _sender, gpointer self) { - __lambda0 (_sender, self); -} - - -static GObject * toggle_group_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { - GObject * obj; - ToggleGroupClass * klass; - GObjectClass * parent_class; - ToggleGroup * self; - klass = TOGGLE_GROUP_CLASS (g_type_class_peek (TYPE_TOGGLE_GROUP)); - parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass)); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = TOGGLE_GROUP (obj); - { - g_signal_connect (self->priv->_toggle, "toggled", (GCallback) ___lambda0_togglable_toggled, self); - } - return obj; -} - - -static void toggle_group_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { - ToggleGroup * self; - gpointer boxed; - self = TOGGLE_GROUP (object); - switch (property_id) { - case TOGGLE_GROUP_TOGGLE: - g_value_set_object (value, toggle_group_get_toggle (self)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void toggle_group_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { - ToggleGroup * self; - self = TOGGLE_GROUP (object); - switch (property_id) { - case TOGGLE_GROUP_TOGGLE: - toggle_group_set_toggle (self, g_value_get_object (value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } -} - - -static void toggle_group_class_init (ToggleGroupClass * klass) { - toggle_group_parent_class = g_type_class_peek_parent (klass); - g_type_class_add_private (klass, sizeof (ToggleGroupPrivate)); - G_OBJECT_CLASS (klass)->get_property = toggle_group_get_property; - G_OBJECT_CLASS (klass)->set_property = toggle_group_set_property; - G_OBJECT_CLASS (klass)->constructor = toggle_group_constructor; - G_OBJECT_CLASS (klass)->finalize = toggle_group_finalize; - g_object_class_install_property (G_OBJECT_CLASS (klass), TOGGLE_GROUP_TOGGLE, g_param_spec_object ("toggle", "toggle", "toggle", TYPE_TOGGLABLE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); -} - - -static void toggle_group_instance_init (ToggleGroup * self) { - self->priv = TOGGLE_GROUP_GET_PRIVATE (self); -} - - -static void toggle_group_finalize (GObject* obj) { - ToggleGroup * self; - self = TOGGLE_GROUP (obj); - (self->priv->_toggle == NULL) ? NULL : (self->priv->_toggle = (g_object_unref (self->priv->_toggle), NULL)); - (self->priv->dependents == NULL) ? NULL : (self->priv->dependents = (_g_list_free_g_object_unref (self->priv->dependents), NULL)); - G_OBJECT_CLASS (toggle_group_parent_class)->finalize (obj); -} - - -GType toggle_group_get_type (void) { - static GType toggle_group_type_id = 0; - if (toggle_group_type_id == 0) { - static const GTypeInfo g_define_type_info = { sizeof (ToggleGroupClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) toggle_group_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ToggleGroup), 0, (GInstanceInitFunc) toggle_group_instance_init, NULL }; - toggle_group_type_id = g_type_register_static (G_TYPE_OBJECT, "ToggleGroup", &g_define_type_info, 0); - } - return toggle_group_type_id; -} - - - - diff -Nru deja-dup-7.4/preferences/ToggleGroup.h deja-dup-10.0/preferences/ToggleGroup.h --- deja-dup-7.4/preferences/ToggleGroup.h 2009-01-29 15:50:14.000000000 -0500 +++ deja-dup-10.0/preferences/ToggleGroup.h 1969-12-31 19:00:00.000000000 -0500 @@ -1,76 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ - -#ifndef __TOGGLEGROUP_H__ -#define __TOGGLEGROUP_H__ - -#include <glib.h> -#include <glib-object.h> -#include <gtk/gtk.h> - -G_BEGIN_DECLS - - -#define TYPE_TOGGLABLE (togglable_get_type ()) -#define TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOGGLABLE, Togglable)) -#define IS_TOGGLABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOGGLABLE)) -#define TOGGLABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_TOGGLABLE, TogglableIface)) - -typedef struct _Togglable Togglable; -typedef struct _TogglableIface TogglableIface; - -#define TYPE_TOGGLE_GROUP (toggle_group_get_type ()) -#define TOGGLE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TOGGLE_GROUP, ToggleGroup)) -#define TOGGLE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TOGGLE_GROUP, ToggleGroupClass)) -#define IS_TOGGLE_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TOGGLE_GROUP)) -#define IS_TOGGLE_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TOGGLE_GROUP)) -#define TOGGLE_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TOGGLE_GROUP, ToggleGroupClass)) - -typedef struct _ToggleGroup ToggleGroup; -typedef struct _ToggleGroupClass ToggleGroupClass; -typedef struct _ToggleGroupPrivate ToggleGroupPrivate; - -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -struct _TogglableIface { - GTypeInterface parent_iface; - gboolean (*get_active) (Togglable* self); -}; - -struct _ToggleGroup { - GObject parent_instance; - ToggleGroupPrivate * priv; -}; - -struct _ToggleGroupClass { - GObjectClass parent_class; -}; - - -gboolean togglable_get_active (Togglable* self); -GType togglable_get_type (void); -ToggleGroup* toggle_group_construct (GType object_type, Togglable* toggle); -ToggleGroup* toggle_group_new (Togglable* toggle); -void toggle_group_add_dependent (ToggleGroup* self, GtkWidget* w); -void toggle_group_check (ToggleGroup* self); -Togglable* toggle_group_get_toggle (ToggleGroup* self); -GType toggle_group_get_type (void); - - -G_END_DECLS - -#endif diff -Nru deja-dup-7.4/preferences/ToggleGroup.vala deja-dup-10.0/preferences/ToggleGroup.vala --- deja-dup-7.4/preferences/ToggleGroup.vala 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/preferences/ToggleGroup.vala 1969-12-31 19:00:00.000000000 -0500 @@ -1,52 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ -/* - Déjà Dup - © 2008—2009 Michael Terry <mike@mterry.name> - - 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 3 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -using GLib; - -public interface Togglable : Object -{ - public signal void toggled(); - public abstract bool get_active(); -} - -public class ToggleGroup : Object -{ - public Togglable toggle {get; construct;} - - public ToggleGroup(Togglable toggle) { - this.toggle = toggle; - } - - List<Gtk.Widget> dependents; - public void add_dependent(Gtk.Widget w) { - dependents.append(w); - } - - public void check() - { - bool on = toggle.get_active(); - foreach (Gtk.Widget w in dependents) - w.set_sensitive(on); - } - - construct { - toggle.toggled += (t) => {check();}; - } -} - diff -Nru deja-dup-7.4/tests/backup/base.py deja-dup-10.0/tests/backup/base.py --- deja-dup-7.4/tests/backup/base.py 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/backup/base.py 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +from os import environ, path, remove +import tempfile +import sys +import os +import ldtp +import subprocess + +latest_duplicity = '0.5.17' + +temp_dir = None +gconf_dir = None +cleanup_dirs = [] +cleanup_mounts = [] + +# The current directory is always the 'distdir'. But 'srcdir' may be different +# if we're running inside a distcheck for example. So note that we check for +# srcdir and use it if available. Else, default to current directory. + +def setup(backend = None, encrypt = True, start = True, dest = '/', sources = []): + global gconf_dir, cleanup_dirs, latest_duplicity + + if 'srcdir' in environ: + srcdir = environ['srcdir'] + else: + srcdir = '.' + + environ['LANG'] = 'C' + + extra_paths = '../deja-dup:../preferences:../applet:../monitor:' + extra_pythonpaths = '' + + version = None + if 'DEJA_DUP_TEST_VERSION' in environ: + version = environ['DEJA_DUP_TEST_VERSION'] + if version is None: + version = latest_duplicity + if version != 'system': + os.system('%s/build-duplicity %s' % (srcdir, version)) + duproot = './duplicity/duplicity-%s' % (version) + if not os.path.exists(duproot): + print 'Could not find duplicity %s' % version + sys.exit(1) + + extra_paths += duproot + '/usr/local/bin:' + + # Also add the module path, but we have to find it + libdir = duproot + '/usr/local/lib/' + libdir += os.listdir(libdir)[0] # python2.5 or python2.6, etc + libdir += '/site-packages:' + extra_pythonpaths += libdir + + environ['PYTHONPATH'] = extra_pythonpaths + (environ['PYTHONPATH'] if 'PYTHONPATH' in environ else '') + environ['PATH'] = extra_paths + environ['PATH'] + + environ['XDG_CACHE_HOME'] = get_temp_name('cache') + + gconf_dir = get_temp_name('gconf') + os.system('mkdir -p %s' % gconf_dir) + environ['GCONF_CONFIG_SOURCE'] = 'xml:readwrite:' + gconf_dir + + # Now install default rules into our temporary config dir + os.system('gconftool-2 --makefile-install-rule %s > /dev/null' % ('%s/../data/deja-dup.schemas.in' % srcdir)) + + if backend == 'file': + create_local_config(dest, sources) + elif backend == 'ssh': + create_ssh_config(dest, sources); + + set_gconf_value("encrypt", 'true' if encrypt else 'false', 'bool') + + if start: + start_deja_dup() + +def cleanup(success): + global cleanup_dirs, cleanup_mounts + for d in cleanup_mounts: + os.system('gksudo "umount %s"' % d) + for d in cleanup_dirs: + os.system("rm -rf %s" % d) + if not success: + sys.exit(1) + +def set_gconf_value(key, value, key_type = "string", list_type = None): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, '-t', + key_type, '-s', '/apps/deja-dup/%s' % key, value] + if key_type == "list" and list_type: + cmd += ["--list-type=%s" % list_type] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + sp.communicate() + +def get_gconf_value(key): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, + '-g', '/apps/deja-dup/%s' % key] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + pout = sp.communicate()[0] + return pout.strip() + +def start_deja_dup(): + ldtp.launchapp('deja-dup', delay=0) + ldtp.appundertest('deja-dup') + ldtp.waittillguiexist('frmDéjàDup') + +def start_deja_dup_prefs(): + ldtp.launchapp('deja-dup-preferences', delay=0) + ldtp.appundertest('deja-dup-preferences') + ldtp.waittillguiexist('frmDéjàDupPreferences') + +def start_deja_dup_applet(): + ldtp.launchapp('deja-dup-applet') + ldtp.appundertest('deja-dup-applet') + +def create_local_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_ssh_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", "ssh://localhost" + dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_temp_dir(): + global temp_dir, cleanup_dirs + if temp_dir is not None: + return + if 'DEJA_DUP_TEST_TMP' in environ: + temp_dir = environ['DEJA_DUP_TEST_TMP'] + os.system('mkdir -p %s' % temp_dir) + # Don't automatically clean it + else: + temp_dir = tempfile.mkdtemp() + cleanup_dirs += [temp_dir] + +def get_temp_name(extra): + global temp_dir + create_temp_dir() + return temp_dir + '/' + extra + +def create_mount(path=None, mtype='ext3', size=20): + global cleanup_mounts + if mtype is None: mtype = 'ext3' + if size is None: size = 20 + if path is None: + path = get_temp_name('blob') + if not os.path.exists(path): + os.system('dd if=/dev/zero of=%s bs=1 count=0 seek=%dM' % (path, size)) + if mtype == 'ext3': + args = '-F' + else: + args = '' + os.system('mkfs -t %s %s %s' % (mtype, args, path)) + mount_dir = get_temp_name('mount') + os.system('mkdir -p %s' % mount_dir) + if mtype == 'vfat': + args = ',umask=0000' + else: + args = '' + if os.system('gksudo "mount -t %s -o loop,sizelimit=%d%s %s %s"' % (mtype, size*1024*1024, args, path, mount_dir)): + raise Exception("Couldn't mount") + cleanup_mounts += [mount_dir] + return mount_dir + +def quit(): + return ldtp.selectmenuitem('frmDéjàDup', 'mnuFile;mnuQuit') + +def run(method): + success = False + try: + success = method() + except Exception, e: + print e + quit() + finally: + cleanup(success) diff -Nru deja-dup-7.4/tests/base.py deja-dup-10.0/tests/base.py --- deja-dup-7.4/tests/base.py 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/base.py 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +from os import environ, path, remove +import tempfile +import sys +import os +import ldtp +import subprocess + +latest_duplicity = '0.5.17' + +temp_dir = None +gconf_dir = None +cleanup_dirs = [] +cleanup_mounts = [] + +# The current directory is always the 'distdir'. But 'srcdir' may be different +# if we're running inside a distcheck for example. So note that we check for +# srcdir and use it if available. Else, default to current directory. + +def setup(backend = None, encrypt = True, start = True, dest = '/', sources = []): + global gconf_dir, cleanup_dirs, latest_duplicity + + if 'srcdir' in environ: + srcdir = environ['srcdir'] + else: + srcdir = '.' + + environ['LANG'] = 'C' + + extra_paths = '../deja-dup:../preferences:../applet:../monitor:' + extra_pythonpaths = '' + + version = None + if 'DEJA_DUP_TEST_VERSION' in environ: + version = environ['DEJA_DUP_TEST_VERSION'] + if version is None: + version = latest_duplicity + if version != 'system': + os.system('%s/build-duplicity %s' % (srcdir, version)) + duproot = './duplicity/duplicity-%s' % (version) + if not os.path.exists(duproot): + print 'Could not find duplicity %s' % version + sys.exit(1) + + extra_paths += duproot + '/usr/local/bin:' + + # Also add the module path, but we have to find it + libdir = duproot + '/usr/local/lib/' + libdir += os.listdir(libdir)[0] # python2.5 or python2.6, etc + libdir += '/site-packages:' + extra_pythonpaths += libdir + + environ['PYTHONPATH'] = extra_pythonpaths + (environ['PYTHONPATH'] if 'PYTHONPATH' in environ else '') + environ['PATH'] = extra_paths + environ['PATH'] + + environ['XDG_CACHE_HOME'] = get_temp_name('cache') + + gconf_dir = get_temp_name('gconf') + os.system('mkdir -p %s' % gconf_dir) + environ['GCONF_CONFIG_SOURCE'] = 'xml:readwrite:' + gconf_dir + + # Now install default rules into our temporary config dir + os.system('gconftool-2 --makefile-install-rule %s > /dev/null' % ('%s/../data/deja-dup.schemas.in' % srcdir)) + + if backend == 'file': + create_local_config(dest, sources) + elif backend == 'ssh': + create_ssh_config(dest, sources); + + set_gconf_value("encrypt", 'true' if encrypt else 'false', 'bool') + + if start: + start_deja_dup() + +def cleanup(success): + global cleanup_dirs, cleanup_mounts + for d in cleanup_mounts: + os.system('gksudo "umount %s"' % d) + for d in cleanup_dirs: + os.system("rm -rf %s" % d) + if not success: + sys.exit(1) + +def set_gconf_value(key, value, key_type = "string", list_type = None): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, '-t', + key_type, '-s', '/apps/deja-dup/%s' % key, value] + if key_type == "list" and list_type: + cmd += ["--list-type=%s" % list_type] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + sp.communicate() + +def get_gconf_value(key): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, + '-g', '/apps/deja-dup/%s' % key] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + pout = sp.communicate()[0] + return pout.strip() + +def start_deja_dup(): + ldtp.launchapp('deja-dup', delay=0) + ldtp.appundertest('deja-dup') + ldtp.waittillguiexist('frmDéjàDup') + +def start_deja_dup_prefs(): + ldtp.launchapp('deja-dup-preferences', delay=0) + ldtp.appundertest('deja-dup-preferences') + ldtp.waittillguiexist('frmDéjàDupPreferences') + +def start_deja_dup_applet(): + ldtp.launchapp('deja-dup-applet') + ldtp.appundertest('deja-dup-applet') + +def create_local_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_ssh_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", "ssh://localhost" + dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_temp_dir(): + global temp_dir, cleanup_dirs + if temp_dir is not None: + return + if 'DEJA_DUP_TEST_TMP' in environ: + temp_dir = environ['DEJA_DUP_TEST_TMP'] + os.system('mkdir -p %s' % temp_dir) + # Don't automatically clean it + else: + temp_dir = tempfile.mkdtemp() + cleanup_dirs += [temp_dir] + +def get_temp_name(extra): + global temp_dir + create_temp_dir() + return temp_dir + '/' + extra + +def create_mount(path=None, mtype='ext3', size=20): + global cleanup_mounts + if mtype is None: mtype = 'ext3' + if size is None: size = 20 + if path is None: + path = get_temp_name('blob') + if not os.path.exists(path): + os.system('dd if=/dev/zero of=%s bs=1 count=0 seek=%dM' % (path, size)) + if mtype == 'ext3': + args = '-F' + else: + args = '' + os.system('mkfs -t %s %s %s' % (mtype, args, path)) + mount_dir = get_temp_name('mount') + os.system('mkdir -p %s' % mount_dir) + if mtype == 'vfat': + args = ',umask=0000' + else: + args = '' + if os.system('gksudo "mount -t %s -o loop,sizelimit=%d%s %s %s"' % (mtype, size*1024*1024, args, path, mount_dir)): + raise Exception("Couldn't mount") + cleanup_mounts += [mount_dir] + return mount_dir + +def quit(): + return ldtp.selectmenuitem('frmDéjàDup', 'mnuFile;mnuQuit') + +def run(method): + success = False + try: + success = method() + except Exception, e: + print e + quit() + finally: + cleanup(success) diff -Nru deja-dup-7.4/tests/basic/badversion deja-dup-10.0/tests/basic/badversion --- deja-dup-7.4/tests/basic/badversion 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/basic/badversion 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +import base +import ldtp +import os + +def test(): + os.environ['DEJA_DUP_TEST_VERSION'] = '0.5.02' + base.setup() + ldtp.waittillguiexist('dlgError') + rv = ldtp.guiexist('dlgError', "lblDuplicity'sversionistooold") + ldtp.click('dlgError', 'btnOK') + return rv + +base.run(test) + diff -Nru deja-dup-7.4/tests/basic/base.py deja-dup-10.0/tests/basic/base.py --- deja-dup-7.4/tests/basic/base.py 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/basic/base.py 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +from os import environ, path, remove +import tempfile +import sys +import os +import ldtp +import subprocess + +latest_duplicity = '0.5.17' + +temp_dir = None +gconf_dir = None +cleanup_dirs = [] +cleanup_mounts = [] + +# The current directory is always the 'distdir'. But 'srcdir' may be different +# if we're running inside a distcheck for example. So note that we check for +# srcdir and use it if available. Else, default to current directory. + +def setup(backend = None, encrypt = True, start = True, dest = '/', sources = []): + global gconf_dir, cleanup_dirs, latest_duplicity + + if 'srcdir' in environ: + srcdir = environ['srcdir'] + else: + srcdir = '.' + + environ['LANG'] = 'C' + + extra_paths = '../deja-dup:../preferences:../applet:../monitor:' + extra_pythonpaths = '' + + version = None + if 'DEJA_DUP_TEST_VERSION' in environ: + version = environ['DEJA_DUP_TEST_VERSION'] + if version is None: + version = latest_duplicity + if version != 'system': + os.system('%s/build-duplicity %s' % (srcdir, version)) + duproot = './duplicity/duplicity-%s' % (version) + if not os.path.exists(duproot): + print 'Could not find duplicity %s' % version + sys.exit(1) + + extra_paths += duproot + '/usr/local/bin:' + + # Also add the module path, but we have to find it + libdir = duproot + '/usr/local/lib/' + libdir += os.listdir(libdir)[0] # python2.5 or python2.6, etc + libdir += '/site-packages:' + extra_pythonpaths += libdir + + environ['PYTHONPATH'] = extra_pythonpaths + (environ['PYTHONPATH'] if 'PYTHONPATH' in environ else '') + environ['PATH'] = extra_paths + environ['PATH'] + + environ['XDG_CACHE_HOME'] = get_temp_name('cache') + + gconf_dir = get_temp_name('gconf') + os.system('mkdir -p %s' % gconf_dir) + environ['GCONF_CONFIG_SOURCE'] = 'xml:readwrite:' + gconf_dir + + # Now install default rules into our temporary config dir + os.system('gconftool-2 --makefile-install-rule %s > /dev/null' % ('%s/../data/deja-dup.schemas.in' % srcdir)) + + if backend == 'file': + create_local_config(dest, sources) + elif backend == 'ssh': + create_ssh_config(dest, sources); + + set_gconf_value("encrypt", 'true' if encrypt else 'false', 'bool') + + if start: + start_deja_dup() + +def cleanup(success): + global cleanup_dirs, cleanup_mounts + for d in cleanup_mounts: + os.system('gksudo "umount %s"' % d) + for d in cleanup_dirs: + os.system("rm -rf %s" % d) + if not success: + sys.exit(1) + +def set_gconf_value(key, value, key_type = "string", list_type = None): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, '-t', + key_type, '-s', '/apps/deja-dup/%s' % key, value] + if key_type == "list" and list_type: + cmd += ["--list-type=%s" % list_type] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + sp.communicate() + +def get_gconf_value(key): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, + '-g', '/apps/deja-dup/%s' % key] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + pout = sp.communicate()[0] + return pout.strip() + +def start_deja_dup(): + ldtp.launchapp('deja-dup', delay=0) + ldtp.appundertest('deja-dup') + ldtp.waittillguiexist('frmDéjàDup') + +def start_deja_dup_prefs(): + ldtp.launchapp('deja-dup-preferences', delay=0) + ldtp.appundertest('deja-dup-preferences') + ldtp.waittillguiexist('frmDéjàDupPreferences') + +def start_deja_dup_applet(): + ldtp.launchapp('deja-dup-applet') + ldtp.appundertest('deja-dup-applet') + +def create_local_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_ssh_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", "ssh://localhost" + dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_temp_dir(): + global temp_dir, cleanup_dirs + if temp_dir is not None: + return + if 'DEJA_DUP_TEST_TMP' in environ: + temp_dir = environ['DEJA_DUP_TEST_TMP'] + os.system('mkdir -p %s' % temp_dir) + # Don't automatically clean it + else: + temp_dir = tempfile.mkdtemp() + cleanup_dirs += [temp_dir] + +def get_temp_name(extra): + global temp_dir + create_temp_dir() + return temp_dir + '/' + extra + +def create_mount(path=None, mtype='ext3', size=20): + global cleanup_mounts + if mtype is None: mtype = 'ext3' + if size is None: size = 20 + if path is None: + path = get_temp_name('blob') + if not os.path.exists(path): + os.system('dd if=/dev/zero of=%s bs=1 count=0 seek=%dM' % (path, size)) + if mtype == 'ext3': + args = '-F' + else: + args = '' + os.system('mkfs -t %s %s %s' % (mtype, args, path)) + mount_dir = get_temp_name('mount') + os.system('mkdir -p %s' % mount_dir) + if mtype == 'vfat': + args = ',umask=0000' + else: + args = '' + if os.system('gksudo "mount -t %s -o loop,sizelimit=%d%s %s %s"' % (mtype, size*1024*1024, args, path, mount_dir)): + raise Exception("Couldn't mount") + cleanup_mounts += [mount_dir] + return mount_dir + +def quit(): + return ldtp.selectmenuitem('frmDéjàDup', 'mnuFile;mnuQuit') + +def run(method): + success = False + try: + success = method() + except Exception, e: + print e + quit() + finally: + cleanup(success) diff -Nru deja-dup-7.4/tests/basic/quit deja-dup-10.0/tests/basic/quit --- deja-dup-7.4/tests/basic/quit 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/basic/quit 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,11 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +import base + +def test(): + base.setup() + return base.quit() + +base.run(test) + diff -Nru deja-dup-7.4/tests/build-duplicity deja-dup-10.0/tests/build-duplicity --- deja-dup-7.4/tests/build-duplicity 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/build-duplicity 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,73 @@ +#!/bin/sh +# -*- Mode: sh; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +set -e + +SCRIPTDIR='.' +SCRIPTDIR=$(readlink -m "$SCRIPTDIR") +SRCDIR="$SCRIPTDIR/duplicity-src" +INSTDIR="$SCRIPTDIR/duplicity" + +download_tgz() +{ + mkdir -p "$SRCDIR" + if [ ! -e "$SRCDIR/$1" ]; then + wget "http://download.savannah.gnu.org/releases-noredirect/duplicity/$1" -P "$SRCDIR" + fi +} + +install_tgz() +{ + mkdir -p "$INSTDIR" + + TGZ="$SRCDIR/duplicity-$1.tar.gz" + + if [ "$1" != "bzr" ] && [ -d "$INSTDIR/duplicity-$1" ]; then + return + fi + + download_tgz $(basename "$TGZ") + + BUILDDIR=$(mktemp -d) + tar -xzf "$TGZ" -C "$BUILDDIR" + + cd "$BUILDDIR"/* + ./setup.py install --root="$INSTDIR/duplicity-$1" --prefix="/usr/local" > /dev/null + cd - + + rm -r "$BUILDDIR" +} + +install_bzr() +{ + mkdir -p "$SRCDIR" + if [ -d "$SRCDIR/duplicity-bzr" ]; then + cd "$SRCDIR/duplicity-bzr" + if LANG=C bzr update | grep "Tree is up to date"; then + #install_tgz "bzr" + #return + : # ignore... Still want to makedist. Doesn't cost much to redo, and + # lets us package changes made in the tree since last update + fi + else + # Don't use lp:duplicity because that likes to use bzr+ssh, which can prompt + # for ssh passphrase (which we don't want) + bzr co "http://bazaar.launchpad.net/~vcs-imports/duplicity/trunk" "$SRCDIR/duplicity-bzr" + cd "$SRCDIR/duplicity-bzr" + fi + ./dist/makedist "999" # fake a really big version number + mv "duplicity-999.tar.gz" "../duplicity-bzr.tar.gz" + install_tgz "bzr" +} + +if [ -z "$1" ]; then + echo 'Must provide a duplicity version' + exit 1 +elif [ "$1" = "bzr" ]; then + install_bzr + exit 0 +else + install_tgz "$1" + exit 0 +fi + diff -Nru deja-dup-7.4/tests/interactive deja-dup-10.0/tests/interactive --- deja-dup-7.4/tests/interactive 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/interactive 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,66 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- +# +# Setup a local backend, but just show the UI. The user will interact with +# it and test manually. Good for playing with the UI as you make changes, +# without futzing up your own gconf settings. + +import base +import ldtp +import sys +import os +import tempfile + +def test(): + version = None + mtype = None + tmpid = None + sources = [] + dest = None + size = None + back = 'file' + prog = None + for arg in sys.argv[1:]: + if arg == 'vfat': + mtype = arg + elif arg == 'ext3': + mtype = arg + elif arg == 'applet': + prog = arg + elif arg.startswith('id='): + tmpid = arg.split('=', 1)[-1] + elif arg.startswith('dup='): + version = arg.split('=', 1)[-1] + elif arg.startswith('source='): + source = arg.split('=', 1)[-1] + sources += [source] + elif arg.startswith('size='): + size = int(arg.split('=', 1)[-1]) + elif arg.startswith('back='): + back = arg.split('=', 1)[-1] + else: + print "Unrecognized argument '%s'" % arg + return 1 + + if version is not None: + os.environ['DEJA_DUP_TEST_VERSION'] = version + if tmpid is not None: + tmpdir = tempfile.gettempdir() + '/' + tmpid + os.environ['DEJA_DUP_TEST_TMP'] = tmpdir + if mtype is not None or size is not None: + dest = base.create_mount(mtype=mtype, size=size) + if sources: + sources = map(lambda s: os.path.abspath(s), sources) + + base.setup(backend=back, dest=dest, sources=sources, start=False) + + if prog is None: + base.start_deja_dup() + # Let user play with it for a while, maximum 2 hours + if ldtp.waittillguinotexist('frmDéjàDup', guiTimeOut=60*60*2) == 0: + base.quit() + elif prog == 'applet': + base.start_deja_dup_applet() + ldtp.wait(60*60*2) + +base.run(test) diff -Nru deja-dup-7.4/tests/Makefile.am deja-dup-10.0/tests/Makefile.am --- deja-dup-7.4/tests/Makefile.am 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/Makefile.am 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,32 @@ +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- + +# This special name 'TESTS' will trigger an automatically-created 'check' +# target used during distcheck, for example. This is nice. + +TESTS = \ + basic/quit \ + basic/badversion \ + prefs/ssh-to-file +# backup/local + +test: + @for t in $(TESTS); do \ + echo -n "Testing $$t..."; \ + if ./$$t >/dev/null 2>&1; then \ + echo -e " \e[32mPASSED\e[0m"; \ + else \ + echo -e " \e[31mFAILED\e[0m"; \ + fi; \ + done + +EXTRA_DIST = $(TESTS) \ + base.py \ + basic/base.py \ + backup/base.py \ + prefs/base.py \ + build-duplicity \ + interactive \ + README + +distclean-local: + rm -rf duplicity duplicity-src diff -Nru deja-dup-7.4/tests/Makefile.in deja-dup-10.0/tests/Makefile.in --- deja-dup-7.4/tests/Makefile.in 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -0,0 +1,502 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- + +# This special name 'TESTS' will trigger an automatically-created 'check' +# target used during distcheck, for example. This is nice. +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = tests +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/gnome-doc-utils.m4 $(top_srcdir)/m4/iconv.m4 \ + $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intltool.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +AMTAR = @AMTAR@ +APPLET_CFLAGS = @APPLET_CFLAGS@ +APPLET_LIBS = @APPLET_LIBS@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DATADIRNAME = @DATADIRNAME@ +DEBUG_CFLAGS = @DEBUG_CFLAGS@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ +DOC_USER_FORMATS = @DOC_USER_FORMATS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +DUP_CFLAGS = @DUP_CFLAGS@ +DUP_LIBS = @DUP_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCONFTOOL = @GCONFTOOL@ +GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ +GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +HELP_DIR = @HELP_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBRARY_CFLAGS = @LIBRARY_CFLAGS@ +LIBRARY_LIBS = @LIBRARY_LIBS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MONITOR_CFLAGS = @MONITOR_CFLAGS@ +MONITOR_LIBS = @MONITOR_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NAUTILUS_CFLAGS = @NAUTILUS_CFLAGS@ +NAUTILUS_EXTENSION_DIR = @NAUTILUS_EXTENSION_DIR@ +NAUTILUS_LIBS = @NAUTILUS_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OMF_DIR = @OMF_DIR@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ +POSUB = @POSUB@ +PREF_CFLAGS = @PREF_CFLAGS@ +PREF_LIBS = @PREF_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +USE_NLS = @USE_NLS@ +VALAC = @VALAC@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +TESTS = \ + basic/quit \ + basic/badversion \ + prefs/ssh-to-file + +EXTRA_DIST = $(TESTS) \ + base.py \ + basic/base.py \ + backup/base.py \ + prefs/base.py \ + build-duplicity \ + interactive \ + README + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-TESTS check-am clean clean-generic \ + clean-libtool distclean distclean-generic distclean-libtool \ + distclean-local distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + +# backup/local + +test: + @for t in $(TESTS); do \ + echo -n "Testing $$t..."; \ + if ./$$t >/dev/null 2>&1; then \ + echo -e " \e[32mPASSED\e[0m"; \ + else \ + echo -e " \e[31mFAILED\e[0m"; \ + fi; \ + done + +distclean-local: + rm -rf duplicity duplicity-src +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff -Nru deja-dup-7.4/tests/prefs/base.py deja-dup-10.0/tests/prefs/base.py --- deja-dup-7.4/tests/prefs/base.py 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/prefs/base.py 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,193 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +from os import environ, path, remove +import tempfile +import sys +import os +import ldtp +import subprocess + +latest_duplicity = '0.5.17' + +temp_dir = None +gconf_dir = None +cleanup_dirs = [] +cleanup_mounts = [] + +# The current directory is always the 'distdir'. But 'srcdir' may be different +# if we're running inside a distcheck for example. So note that we check for +# srcdir and use it if available. Else, default to current directory. + +def setup(backend = None, encrypt = True, start = True, dest = '/', sources = []): + global gconf_dir, cleanup_dirs, latest_duplicity + + if 'srcdir' in environ: + srcdir = environ['srcdir'] + else: + srcdir = '.' + + environ['LANG'] = 'C' + + extra_paths = '../deja-dup:../preferences:../applet:../monitor:' + extra_pythonpaths = '' + + version = None + if 'DEJA_DUP_TEST_VERSION' in environ: + version = environ['DEJA_DUP_TEST_VERSION'] + if version is None: + version = latest_duplicity + if version != 'system': + os.system('%s/build-duplicity %s' % (srcdir, version)) + duproot = './duplicity/duplicity-%s' % (version) + if not os.path.exists(duproot): + print 'Could not find duplicity %s' % version + sys.exit(1) + + extra_paths += duproot + '/usr/local/bin:' + + # Also add the module path, but we have to find it + libdir = duproot + '/usr/local/lib/' + libdir += os.listdir(libdir)[0] # python2.5 or python2.6, etc + libdir += '/site-packages:' + extra_pythonpaths += libdir + + environ['PYTHONPATH'] = extra_pythonpaths + (environ['PYTHONPATH'] if 'PYTHONPATH' in environ else '') + environ['PATH'] = extra_paths + environ['PATH'] + + environ['XDG_CACHE_HOME'] = get_temp_name('cache') + + gconf_dir = get_temp_name('gconf') + os.system('mkdir -p %s' % gconf_dir) + environ['GCONF_CONFIG_SOURCE'] = 'xml:readwrite:' + gconf_dir + + # Now install default rules into our temporary config dir + os.system('gconftool-2 --makefile-install-rule %s > /dev/null' % ('%s/../data/deja-dup.schemas.in' % srcdir)) + + if backend == 'file': + create_local_config(dest, sources) + elif backend == 'ssh': + create_ssh_config(dest, sources); + + set_gconf_value("encrypt", 'true' if encrypt else 'false', 'bool') + + if start: + start_deja_dup() + +def cleanup(success): + global cleanup_dirs, cleanup_mounts + for d in cleanup_mounts: + os.system('gksudo "umount %s"' % d) + for d in cleanup_dirs: + os.system("rm -rf %s" % d) + if not success: + sys.exit(1) + +def set_gconf_value(key, value, key_type = "string", list_type = None): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, '-t', + key_type, '-s', '/apps/deja-dup/%s' % key, value] + if key_type == "list" and list_type: + cmd += ["--list-type=%s" % list_type] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + sp.communicate() + +def get_gconf_value(key): + cmd = ['gconftool-2', '--config-source=xml:readwrite:%s' % gconf_dir, + '-g', '/apps/deja-dup/%s' % key] + sp = subprocess.Popen(cmd, stdout=subprocess.PIPE) + pout = sp.communicate()[0] + return pout.strip() + +def start_deja_dup(): + ldtp.launchapp('deja-dup', delay=0) + ldtp.appundertest('deja-dup') + ldtp.waittillguiexist('frmDéjàDup') + +def start_deja_dup_prefs(): + ldtp.launchapp('deja-dup-preferences', delay=0) + ldtp.appundertest('deja-dup-preferences') + ldtp.waittillguiexist('frmDéjàDupPreferences') + +def start_deja_dup_applet(): + ldtp.launchapp('deja-dup-applet') + ldtp.appundertest('deja-dup-applet') + +def create_local_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_ssh_config(dest='/', includes=None, excludes=None): + if dest is None: + dest = get_temp_name('local') + os.system('mkdir -p %s' % dest) + set_gconf_value("backend", "file") + set_gconf_value("file/path", "ssh://localhost" + dest) + if includes: + includes = '[' + ','.join(includes) + ']' + set_gconf_value("include-list", includes, "list", "string") + if excludes: + excludes = '[' + ','.join(excludes) + ']' + set_gconf_value("exclude-list", excludes, "list", "string") + +def create_temp_dir(): + global temp_dir, cleanup_dirs + if temp_dir is not None: + return + if 'DEJA_DUP_TEST_TMP' in environ: + temp_dir = environ['DEJA_DUP_TEST_TMP'] + os.system('mkdir -p %s' % temp_dir) + # Don't automatically clean it + else: + temp_dir = tempfile.mkdtemp() + cleanup_dirs += [temp_dir] + +def get_temp_name(extra): + global temp_dir + create_temp_dir() + return temp_dir + '/' + extra + +def create_mount(path=None, mtype='ext3', size=20): + global cleanup_mounts + if mtype is None: mtype = 'ext3' + if size is None: size = 20 + if path is None: + path = get_temp_name('blob') + if not os.path.exists(path): + os.system('dd if=/dev/zero of=%s bs=1 count=0 seek=%dM' % (path, size)) + if mtype == 'ext3': + args = '-F' + else: + args = '' + os.system('mkfs -t %s %s %s' % (mtype, args, path)) + mount_dir = get_temp_name('mount') + os.system('mkdir -p %s' % mount_dir) + if mtype == 'vfat': + args = ',umask=0000' + else: + args = '' + if os.system('gksudo "mount -t %s -o loop,sizelimit=%d%s %s %s"' % (mtype, size*1024*1024, args, path, mount_dir)): + raise Exception("Couldn't mount") + cleanup_mounts += [mount_dir] + return mount_dir + +def quit(): + return ldtp.selectmenuitem('frmDéjàDup', 'mnuFile;mnuQuit') + +def run(method): + success = False + try: + success = method() + except Exception, e: + print e + quit() + finally: + cleanup(success) diff -Nru deja-dup-7.4/tests/prefs/ssh-to-file deja-dup-10.0/tests/prefs/ssh-to-file --- deja-dup-7.4/tests/prefs/ssh-to-file 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/prefs/ssh-to-file 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 2; coding: utf-8 -*- + +import base +import ldtp +import os + +# First we test how things work when there's no valid ssh info +def no_values(): + base.setup(start = False) + base.set_gconf_value('backend', 'ssh') + base.start_deja_dup() + rv = base.get_gconf_value('backend') == 'file' + base.quit() + return rv + +# Now test bits and pieces missing +def some_values(): + base.setup(start = False) + base.set_gconf_value('backend', 'ssh') + base.set_gconf_value('ssh/server', 'localhost') + base.start_deja_dup() + rv = base.get_gconf_value('backend') == 'file' and \ + base.get_gconf_value('file/path') == 'ssh://localhost/' + base.quit() + return rv + +# Now test everything together +def all_values(): + base.setup(start = False) + base.set_gconf_value('backend', 'ssh') + base.set_gconf_value('ssh/server', 'localhost') + base.set_gconf_value('ssh/port', '42', key_type = 'int') + base.set_gconf_value('ssh/username', 'goober') + base.set_gconf_value('ssh/directory', '/hello') + base.start_deja_dup() + rv = base.get_gconf_value('backend') == 'file' and \ + base.get_gconf_value('file/path') == 'ssh://goober@localhost:42/hello' + base.quit() + return rv + +base.run(no_values) +base.run(some_values) +base.run(all_values) + diff -Nru deja-dup-7.4/tests/README deja-dup-10.0/tests/README --- deja-dup-7.4/tests/README 1969-12-31 19:00:00.000000000 -0500 +++ deja-dup-10.0/tests/README 2009-06-02 17:48:49.000000000 -0400 @@ -0,0 +1,40 @@ +What's going on here? + This directory is all about testing Déjà Dup. The scripts here let you run + it in a safe testing environment, with any version of duplicity, with any + size and format mount directory. + +How does it work? + These scripts set up your environment in such a way that your normal Déjà + Dup settings are not altered. They also download and install into a + temporary directory the version of duplicity specified by a test. All of + this is done automatically as part of running the test, and it shouldn't + affect your system's or user's settings or data. + + Lastly, it uses the Linux Desktop Testing Project (LDTP) python libraries + to control the Déjà Dup UI. It is probably best not to have any other + Déjà Dup instances running while a test is active. + +What is required? + These tests need LDTP >= 1.5.1. They also need you to have first compiled + the rest of Déjà Dup. To do this, you just need to build the executables, + but you don't need to install them. The tests will find them where they + sit. + +How do I run them? + There are a couple ways. You can run the whole suite by running 'make test' + or an individual test by running it from the 'tests' directory. For + example, to run the test 'badversion' in the 'basic' directory, type + './basic/badversion'. It will run and return either 0 for success or 1 + for failure. The 'make test' output is prettier though. + + There is also a special test called 'interactive' that just sets up a safe + testing environment and lets you play with it. Very useful for testing + changes to code or just feeling your way around a freshly built executable. + +How do I clean up after the tests? + The only files created as a side-effect are either in /tmp (and should + mostly clean up after themselves) or in 'duplicity' and 'duplicity-src' + subdirectories. These are created to store the downloaded duplicity + tarballs and installed duplicity executables. You can safely delete either + directory. + diff -Nru deja-dup-7.4/vapi/hacks.vapi deja-dup-10.0/vapi/hacks.vapi --- deja-dup-7.4/vapi/hacks.vapi 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/vapi/hacks.vapi 2009-06-02 17:48:49.000000000 -0400 @@ -1,4 +1,4 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup © 2008 Michael Terry <mike@mterry.name> @@ -17,4 +17,38 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +[CCode (cheader_filename = "hacks.h")] +uint32 hacks_status_icon_get_x11_window_id (Gtk.StatusIcon icon); +[CCode (cheader_filename = "hacks.h")] +bool hacks_show_uri (string uri) throws GLib.Error; + +[CCode (cheader_filename = "hacks.h")] +bool hacks_file_make_directory_with_parents (GLib.File file) throws GLib.Error; + +[CCode (cheader_filename = "hacks.h")] +Gdk.Pixbuf hacks_get_icon_at_size (string name, int size) throws GLib.Error; + +[CCode (cheader_filename = "hacks.h")] +GLib.FileType hacks_file_query_file_type (GLib.File file, GLib.FileQueryInfoFlags flags); + +[CCode (cheader_filename = "hacks.h")] +string hacks_unix_mount_get_fs_type (string file); + +[CCode (cheader_filename = "hacks.h")] +void hacks_status_icon_set_tooltip_text (Gtk.StatusIcon icon, string text); + +[CCode (cheader_filename = "hacks.h")] +Gdk.Window hacks_widget_get_window (Gtk.Widget widget); + +[CCode (cheader_filename = "hacks.h")] +GLib.MountOperation hacks_mount_operation_new (Gtk.Window parent); + +[CCode (cheader_filename = "hacks.h")] +double hacks_adjustment_get_page_size (Gtk.Adjustment adjust); + +[CCode (cheader_filename = "hacks.h")] +double hacks_adjustment_get_upper (Gtk.Adjustment adjust); + +[CCode (cheader_filename = "hacks.h")] +weak Gtk.Widget hacks_dialog_get_action_area (Gtk.Dialog dialog); diff -Nru deja-dup-7.4/vapi/libnotify.vapi deja-dup-10.0/vapi/libnotify.vapi --- deja-dup-7.4/vapi/libnotify.vapi 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/vapi/libnotify.vapi 1969-12-31 19:00:00.000000000 -0500 @@ -1,63 +0,0 @@ -/* libnotify.vapi generated by lt-vapigen, do not modify. */ - -[CCode (cprefix = "Notify", lower_case_cprefix = "notify_")] -namespace Notify { - [CCode (cprefix = "NOTIFY_URGENCY_", has_type_id = "0", cheader_filename = "libnotify/notify.h")] - public enum Urgency { - LOW, - NORMAL, - CRITICAL - } - [CCode (cheader_filename = "libnotify/notify.h")] - public class Notification : GLib.Object { - public void add_action (string action, string label, Notify.ActionCallback callback, void *user_data, GLib.FreeFunc? free_func); - public void attach_to_status_icon (Gtk.StatusIcon status_icon); - public void attach_to_widget (Gtk.Widget attach); - public void clear_actions (); - public void clear_hints (); - public bool close () throws GLib.Error; - public Notification (string summary, string body, string icon, Gtk.Widget attach); - public Notification.with_status_icon (string summary, string body, string icon, Gtk.StatusIcon status_icon); - public void set_category (string category); - public void set_geometry_hints (Gdk.Screen screen, int x, int y); - public void set_hint_byte (string key, uchar value); - public void set_hint_byte_array (string key, uchar[] value, ulong len); - public void set_hint_double (string key, double value); - public void set_hint_int32 (string key, int value); - public void set_hint_string (string key, string value); - public void set_icon_from_pixbuf (Gdk.Pixbuf icon); - public void set_timeout (int timeout); - public void set_urgency (Notify.Urgency urgency); - public bool show () throws GLib.Error; - public bool update (string summary, string body, string icon); - [NoAccessorMethod] - public Gtk.Widget attach_widget { get; set construct; } - [NoAccessorMethod] - public string body { get; set construct; } - [NoAccessorMethod] - public string icon_name { get; set construct; } - [NoAccessorMethod] - public Gtk.StatusIcon status_icon { get; set construct; } - [NoAccessorMethod] - public string summary { get; set construct; } - public virtual signal void closed (); - } - [CCode (cheader_filename = "libnotify/notify.h")] - public static delegate void ActionCallback (Notify.Notification p1, string p2, void* p3); - [CCode (cheader_filename = "libnotify/notify.h")] - public const int EXPIRES_DEFAULT; - [CCode (cheader_filename = "libnotify/notify.h")] - public const int EXPIRES_NEVER; - [CCode (cheader_filename = "libnotify/notify.h")] - public static weak string get_app_name (); - [CCode (cheader_filename = "libnotify/notify.h")] - public static weak GLib.List get_server_caps (); - [CCode (cheader_filename = "libnotify/notify.h")] - public static bool get_server_info (out weak string ret_name, out weak string ret_vendor, out weak string ret_version, out weak string ret_spec_version); - [CCode (cheader_filename = "libnotify/notify.h")] - public static bool init (string app_name); - [CCode (cheader_filename = "libnotify/notify.h")] - public static bool is_initted (); - [CCode (cheader_filename = "libnotify/notify.h")] - public static void uninit (); -} diff -Nru deja-dup-7.4/vapi/Makefile.am deja-dup-10.0/vapi/Makefile.am --- deja-dup-7.4/vapi/Makefile.am 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/vapi/Makefile.am 2009-06-02 17:48:49.000000000 -0400 @@ -1,4 +1,4 @@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- -EXTRA_DIST = config.vapi hacks.vapi libnotify.vapi packagekit.vapi PassphraseSchema.vapi unix.vapi +EXTRA_DIST = config.vapi hacks.vapi packagekit.vapi PassphraseSchema.vapi unix.vapi diff -Nru deja-dup-7.4/vapi/Makefile.in deja-dup-10.0/vapi/Makefile.in --- deja-dup-7.4/vapi/Makefile.in 2009-02-11 21:13:31.000000000 -0500 +++ deja-dup-10.0/vapi/Makefile.in 2009-06-02 17:51:13.000000000 -0400 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -14,7 +14,7 @@ @SET_MAKE@ -# -*- indent-tabs-mode: t; tab-width: 2 -*- +# -*- Mode: Makefile; indent-tabs-mode: t; tab-width: 2 -*- VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -101,29 +101,10 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ -INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ -INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ -INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ -INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ -INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ -INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@ -INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ -INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ -INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ -INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ -INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ -INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ -INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ -INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ -INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ -INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ -INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ -INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ @@ -151,6 +132,7 @@ NAUTILUS_LIBS = @NAUTILUS_LIBS@ NM = @NM@ NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OMF_DIR = @OMF_DIR@ OTOOL = @OTOOL@ @@ -163,6 +145,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PO4A = @PO4A@ POSUB = @POSUB@ PREF_CFLAGS = @PREF_CFLAGS@ PREF_LIBS = @PREF_LIBS@ @@ -226,9 +209,10 @@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = config.vapi hacks.vapi libnotify.vapi packagekit.vapi PassphraseSchema.vapi unix.vapi +EXTRA_DIST = config.vapi hacks.vapi packagekit.vapi PassphraseSchema.vapi unix.vapi all: all-am .SUFFIXES: @@ -236,8 +220,8 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ diff -Nru deja-dup-7.4/vapi/PassphraseSchema.vapi deja-dup-10.0/vapi/PassphraseSchema.vapi --- deja-dup-7.4/vapi/PassphraseSchema.vapi 2009-01-07 20:28:39.000000000 -0500 +++ deja-dup-10.0/vapi/PassphraseSchema.vapi 2009-06-02 17:48:49.000000000 -0400 @@ -1,4 +1,4 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup © 2008 Michael Terry <mike@mterry.name> diff -Nru deja-dup-7.4/vapi/unix.vapi deja-dup-10.0/vapi/unix.vapi --- deja-dup-7.4/vapi/unix.vapi 2009-01-29 15:47:30.000000000 -0500 +++ deja-dup-10.0/vapi/unix.vapi 2009-06-02 17:48:49.000000000 -0400 @@ -1,4 +1,4 @@ -/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 2; tab-width: 2 -*- */ +/* -*- Mode: Vala; indent-tabs-mode: nil; tab-width: 2 -*- */ /* Déjà Dup © 2008 Michael Terry <mike@mterry.name> @@ -17,15 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -[CCode (cheader_filename = "unistd.h")] -int pipe([CCode (array_length = false)] int[] fildes); - -[CCode (cheader_filename = "unistd.h")] -int close(int fildes); - -[CCode (cheader_filename = "sys/types.h,signal.h")] -int kill(int pid, int sig); - [CCode (cheader_filename = "libintl.h")] weak string ngettext(string msgid, string msgid_plural, ulong n);