diff options
59 files changed, 455 insertions, 370 deletions
diff --git a/Changes.txt b/Changes.txt index 064c5c0..e2b961a 100644 --- a/Changes.txt +++ b/Changes.txt @@ -1,3 +1,15 @@ +2011-10-20, S3QL 1.5 + + * Fixed parsing of storage urls, s3s:// no longer generates bogus + error message. + + * Fixed support for prefix in storage urls. + + * Retry on timeout when transmitting data to remote server. + + * Do not free mount point when terminating due to unhandled + exception in background thread. + 2011-10-06, S3QL 1.4 * Metadata is now always LZMA compressed, mount.s3ql's --compress @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: s3ql -Version: 1.4 +Version: 1.5 Summary: a full-featured file system for online data storage Home-page: http://code.google.com/p/s3ql/ Author: Nikolaus Rath diff --git a/contrib/expire_backups.1 b/contrib/expire_backups.1 index c946732..e70c3bb 100644 --- a/contrib/expire_backups.1 +++ b/contrib/expire_backups.1 @@ -1,4 +1,4 @@ -.TH "EXPIRE_BACKUPS" "1" "October 06, 2011" "1.4" "S3QL" +.TH "EXPIRE_BACKUPS" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME expire_backups \- Intelligently expire old backups . diff --git a/contrib/expire_backups.py b/contrib/expire_backups.py index 20b78a7..7a49d9b 100755 --- a/contrib/expire_backups.py +++ b/contrib/expire_backups.py @@ -97,9 +97,12 @@ def main(args=None): if not os.path.exists(options.state) and len(backup_list) > 1: if not options.reconstruct_state: raise QuietError('Found more than one backup but no state file! Aborting.') - else: - log.warn('Trying to reconstruct state file..') - state = upgrade_to_state(backup_list) + + log.warn('Trying to reconstruct state file..') + state = upgrade_to_state(backup_list) + if not options.n: + log.info('Saving reconstructed state..') + pickle.dump(state, open(options.state, 'wb'), pickle.HIGHEST_PROTOCOL) elif not os.path.exists(options.state): log.warn('Creating state file..') state = dict() diff --git a/contrib/pcp.1 b/contrib/pcp.1 index ce65684..1a31857 100644 --- a/contrib/pcp.1 +++ b/contrib/pcp.1 @@ -1,4 +1,4 @@ -.TH "PCP" "1" "October 06, 2011" "1.4" "S3QL" +.TH "PCP" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME pcp \- Recursive, parallel copy of directory trees . diff --git a/doc/html/.buildinfo b/doc/html/.buildinfo index 1477d1e..a3a4b18 100644 --- a/doc/html/.buildinfo +++ b/doc/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: e865faf28c93004a1127b2fd92570e19 +config: e54f704fa8b866eafa68f0ac31ee012b tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/doc/html/_static/jquery.js b/doc/html/_static/jquery.js index f3201aa..11e6d06 100644 --- a/doc/html/_static/jquery.js +++ b/doc/html/_static/jquery.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v1.6.2 + * jQuery JavaScript Library v1.6.4 * http://jquery.com/ * * Copyright 2011, John Resig @@ -11,7 +11,7 @@ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: Thu Jun 30 14:16:56 2011 -0400 + * Date: Mon Sep 12 18:54:48 2011 -0400 */ (function( window, undefined ) { @@ -37,8 +37,8 @@ var jQuery = function( selector, context ) { rootjQuery, // A simple way to check for HTML strings or ID strings - // (both of which we optimize for) - quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, // Check if a string has a non-whitespace character in it rnotwhite = /\S/, @@ -66,11 +66,12 @@ var jQuery = function( selector, context ) { rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/, // Matches dashed string for camelizing - rdashAlpha = /-([a-z])/ig, + rdashAlpha = /-([a-z]|[0-9])/ig, + rmsPrefix = /^-ms-/, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { - return letter.toUpperCase(); + return ( letter + "" ).toUpperCase(); }, // Keep a UserAgent string for use with jQuery.browser @@ -212,7 +213,7 @@ jQuery.fn = jQuery.prototype = { selector: "", // The current version of jQuery being used - jquery: "1.6.2", + jquery: "1.6.4", // The default length of a jQuery object is 0 length: 0, @@ -521,10 +522,15 @@ jQuery.extend({ return false; } - // Not own constructor property must be Object - if ( obj.constructor && - !hasOwn.call(obj, "constructor") && - !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + try { + // Not own constructor property must be Object + if ( obj.constructor && + !hasOwn.call(obj, "constructor") && + !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 return false; } @@ -574,24 +580,23 @@ jQuery.extend({ }, // Cross-browser xml parsing - // (xml & tmp used internally) - parseXML: function( data , xml , tmp ) { - - if ( window.DOMParser ) { // Standard - tmp = new DOMParser(); - xml = tmp.parseFromString( data , "text/xml" ); - } else { // IE - xml = new ActiveXObject( "Microsoft.XMLDOM" ); - xml.async = "false"; - xml.loadXML( data ); - } - - tmp = xml.documentElement; - - if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) { + parseXML: function( data ) { + var xml, tmp; + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } - return xml; }, @@ -611,10 +616,10 @@ jQuery.extend({ } }, - // Converts a dashed string to camelCased string; - // Used by both the css and data modules + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { - return string.replace( rdashAlpha, fcamelCase ); + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, nodeName: function( elem, name ) { @@ -699,6 +704,9 @@ jQuery.extend({ }, inArray: function( elem, array ) { + if ( !array ) { + return -1; + } if ( indexOf ) { return indexOf.call( array, elem ); @@ -1071,7 +1079,7 @@ jQuery.extend({ if ( returned && jQuery.isFunction( returned.promise ) ) { returned.promise().then( newDefer.resolve, newDefer.reject ); } else { - newDefer[ action ]( returned ); + newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] ); } }); } else { @@ -1173,6 +1181,7 @@ jQuery.support = (function() { div.setAttribute("className", "t"); div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; + all = div.getElementsByTagName( "*" ); a = div.getElementsByTagName( "a" )[ 0 ]; @@ -1293,13 +1302,14 @@ jQuery.support = (function() { width: 0, height: 0, border: 0, - margin: 0 + margin: 0, + background: "none" }; if ( body ) { jQuery.extend( testElementStyle, { position: "absolute", - left: -1000, - top: -1000 + left: "-1000px", + top: "-1000px" }); } for ( i in testElementStyle ) { @@ -1404,7 +1414,7 @@ jQuery.boxModel = jQuery.support.boxModel; var rbrace = /^(?:\{.*\}|\[.*\])$/, - rmultiDash = /([a-z])([A-Z])/g; + rmultiDash = /([A-Z])/g; jQuery.extend({ cache: {}, @@ -1436,7 +1446,9 @@ jQuery.extend({ return; } - var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache, + var thisCache, ret, + internalKey = jQuery.expando, + getByName = typeof name === "string", // We have to handle DOM nodes and JS objects differently because IE6-7 // can't GC object references properly across the DOM-JS boundary @@ -1452,7 +1464,7 @@ jQuery.extend({ // Avoid doing any more work than we need to when trying to get data on an // object that has no data at all - if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) { + if ( (!id || (pvt && id && (cache[ id ] && !cache[ id ][ internalKey ]))) && getByName && data === undefined ) { return; } @@ -1511,10 +1523,24 @@ jQuery.extend({ return thisCache[ internalKey ] && thisCache[ internalKey ].events; } - return getByName ? - // Check for both converted-to-camel and non-converted data property names - thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] : - thisCache; + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( getByName ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; }, removeData: function( elem, name, pvt /* Internal Use Only */ ) { @@ -1522,7 +1548,12 @@ jQuery.extend({ return; } - var internalKey = jQuery.expando, isNode = elem.nodeType, + var thisCache, + + // Reference to internal data cache key + internalKey = jQuery.expando, + + isNode = elem.nodeType, // See jQuery.data for more information cache = isNode ? jQuery.cache : elem, @@ -1537,9 +1568,16 @@ jQuery.extend({ } if ( name ) { - var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; + + thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ]; if ( thisCache ) { + + // Support interoperable removal of hyphenated or camelcased keys + if ( !thisCache[ name ] ) { + name = jQuery.camelCase( name ); + } + delete thisCache[ name ]; // If there is no data left in the cache, we want to continue @@ -1566,7 +1604,8 @@ jQuery.extend({ // Browsers that fail expando deletion also refuse to delete expandos on // the window, but it will allow it on all other JS objects; other browsers // don't care - if ( jQuery.support.deleteExpando || cache != window ) { + // Ensure that `cache` is not a window object #10080 + if ( jQuery.support.deleteExpando || !cache.setInterval ) { delete cache[ id ]; } else { cache[ id ] = null; @@ -1690,7 +1729,8 @@ function dataAttr( elem, key, data ) { // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined && elem.nodeType === 1 ) { - var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase(); + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); data = elem.getAttribute( name ); @@ -1910,8 +1950,7 @@ var rclass = /[\n\t\r]/g, rfocusable = /^(?:button|input|object|select|textarea)$/i, rclickable = /^a(?:rea)?$/i, rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, - rinvalidChar = /\:|^on/, - formHook, boolHook; + nodeHook, boolHook; jQuery.fn.extend({ attr: function( name, value ) { @@ -2049,7 +2088,7 @@ jQuery.fn.extend({ hasClass: function( selector ) { var className = " " + selector + " "; for ( var i = 0, l = this.length; i < l; i++ ) { - if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) { return true; } } @@ -2229,14 +2268,11 @@ jQuery.extend({ if ( !hooks ) { // Use boolHook for boolean attributes if ( rboolean.test( name ) ) { - hooks = boolHook; - // Use formHook for forms and if the name contains certain characters - } else if ( formHook && name !== "className" && - (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) { - - hooks = formHook; + // Use nodeHook if available( IE6/7 ) + } else if ( nodeHook ) { + hooks = nodeHook; } } } @@ -2273,14 +2309,9 @@ jQuery.extend({ var propName; if ( elem.nodeType === 1 ) { name = jQuery.attrFix[ name ] || name; - - if ( jQuery.support.getSetAttribute ) { - // Use removeAttribute in browsers that support it - elem.removeAttribute( name ); - } else { - jQuery.attr( elem, name, "" ); - elem.removeAttributeNode( elem.getAttributeNode( name ) ); - } + + jQuery.attr( elem, name, "" ); + elem.removeAttribute( name ); // Set corresponding property to false for boolean attributes if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) { @@ -2308,33 +2339,20 @@ jQuery.extend({ } } }, - tabIndex: { - get: function( elem ) { - // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set - // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - var attributeNode = elem.getAttributeNode("tabIndex"); - - return attributeNode && attributeNode.specified ? - parseInt( attributeNode.value, 10 ) : - rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? - 0 : - undefined; - } - }, // Use the value property for back compat - // Use the formHook for button elements in IE6/7 (#1954) + // Use the nodeHook for button elements in IE6/7 (#1954) value: { get: function( elem, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.get( elem, name ); + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.get( elem, name ); } return name in elem ? elem.value : null; }, set: function( elem, value, name ) { - if ( formHook && jQuery.nodeName( elem, "button" ) ) { - return formHook.set( elem, value, name ); + if ( nodeHook && jQuery.nodeName( elem, "button" ) ) { + return nodeHook.set( elem, value, name ); } // Does not return so that setAttribute is also used elem.value = value; @@ -2383,7 +2401,7 @@ jQuery.extend({ } } else { - if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) { + if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { return ret; } else { @@ -2392,14 +2410,33 @@ jQuery.extend({ } }, - propHooks: {} + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + var attributeNode = elem.getAttributeNode("tabindex"); + + return attributeNode && attributeNode.specified ? + parseInt( attributeNode.value, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + undefined; + } + } + } }); +// Add the tabindex propHook to attrHooks for back-compat +jQuery.attrHooks.tabIndex = jQuery.propHooks.tabIndex; + // Hook for boolean attributes boolHook = { get: function( elem, name ) { // Align boolean attributes with corresponding properties - return jQuery.prop( elem, name ) ? + // Fall back to attribute presence where some booleans are not supported + var attrNode; + return jQuery.prop( elem, name ) === true || ( attrNode = elem.getAttributeNode( name ) ) && attrNode.nodeValue !== false ? name.toLowerCase() : undefined; }, @@ -2425,12 +2462,10 @@ boolHook = { // IE6/7 do not support getting/setting some attributes with get/setAttribute if ( !jQuery.support.getSetAttribute ) { - - // propFix is more comprehensive and contains all fixes - jQuery.attrFix = jQuery.propFix; - // Use this for any attribute on a form in IE6/7 - formHook = jQuery.attrHooks.name = jQuery.attrHooks.title = jQuery.valHooks.button = { + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = jQuery.valHooks.button = { get: function( elem, name ) { var ret; ret = elem.getAttributeNode( name ); @@ -2440,13 +2475,13 @@ if ( !jQuery.support.getSetAttribute ) { undefined; }, set: function( elem, value, name ) { - // Check form objects in IE (multiple bugs related) - // Only use nodeValue if the attribute node exists on the form + // Set the existing or create a new attribute node var ret = elem.getAttributeNode( name ); - if ( ret ) { - ret.nodeValue = value; - return value; + if ( !ret ) { + ret = document.createAttribute( name ); + elem.setAttributeNode( ret ); } + return (ret.nodeValue = value + ""); } }; @@ -2505,6 +2540,7 @@ if ( !jQuery.support.optSelected ) { parent.parentNode.selectedIndex; } } + return null; } }); } @@ -3235,8 +3271,9 @@ if ( !jQuery.support.submitBubbles ) { setup: function( data, namespaces ) { if ( !jQuery.nodeName( this, "form" ) ) { jQuery.event.add(this, "click.specialSubmit", function( e ) { + // Avoid triggering error on non-existent type attribute in IE VML (#7071) var elem = e.target, - type = elem.type; + type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : ""; if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) { trigger( "submit", this, arguments ); @@ -3245,7 +3282,7 @@ if ( !jQuery.support.submitBubbles ) { jQuery.event.add(this, "keypress.specialSubmit", function( e ) { var elem = e.target, - type = elem.type; + type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : ""; if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) { trigger( "submit", this, arguments ); @@ -3270,7 +3307,8 @@ if ( !jQuery.support.changeBubbles ) { var changeFilters, getVal = function( elem ) { - var type = elem.type, val = elem.value; + var type = jQuery.nodeName( elem, "input" ) ? elem.type : "", + val = elem.value; if ( type === "radio" || type === "checkbox" ) { val = elem.checked; @@ -5295,12 +5333,17 @@ jQuery.fn.extend({ // Determine the position of an element within // the matched set of elements index: function( elem ) { - if ( !elem || typeof elem === "string" ) { - return jQuery.inArray( this[0], - // If it receives a string, the selector is used - // If it receives nothing, the siblings are used - elem ? jQuery( elem ) : this.parent().children() ); + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1; } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + // Locate the position of the desired element return jQuery.inArray( // If it receives a jQuery object, the first element is used @@ -6048,7 +6091,10 @@ jQuery.extend({ // with an element if you are cloning the body and one of the // elements on the page has a name or id of "length" for ( i = 0; srcElements[i]; ++i ) { - cloneFixAttributes( srcElements[i], destElements[i] ); + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + cloneFixAttributes( srcElements[i], destElements[i] ); + } } } @@ -6248,14 +6294,14 @@ function evalScript( i, elem ) { + var ralpha = /alpha\([^)]*\)/i, ropacity = /opacity=([^)]*)/, // fixed for IE9, see #8346 rupper = /([A-Z]|^ms)/g, rnumpx = /^-?\d+(?:px)?$/i, rnum = /^-?\d/, - rrelNum = /^[+\-]=/, - rrelNumFilter = /[^+\-\.\de]+/g, + rrelNum = /^([\-+])=([\-+.\de]+)/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssWidth = [ "Left", "Right" ], @@ -6332,18 +6378,18 @@ jQuery.extend({ if ( value !== undefined ) { type = typeof value; - // Make sure that NaN and null values aren't set. See: #7116 - if ( type === "number" && isNaN( value ) || value == null ) { - return; - } - // convert relative number strings (+= or -=) to relative numbers. #7345 - if ( type === "string" && rrelNum.test( value ) ) { - value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) ); + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) ); // Fixes bug #9237 type = "number"; } + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + // If a number was passed in, add 'px' to the (except for certain CSS properties) if ( type === "number" && !jQuery.cssNumber[ origName ] ) { value += "px"; @@ -6459,18 +6505,29 @@ if ( !jQuery.support.opacity ) { set: function( elem, value ) { var style = elem.style, - currentStyle = elem.currentStyle; + currentStyle = elem.currentStyle, + opacity = jQuery.isNaN( value ) ? "" : "alpha(opacity=" + value * 100 + ")", + filter = currentStyle && currentStyle.filter || style.filter || ""; // IE has trouble with opacity if it does not have layout // Force it by setting the zoom level style.zoom = 1; - // Set the alpha filter to set the opacity - var opacity = jQuery.isNaN( value ) ? - "" : - "alpha(opacity=" + value * 100 + ")", - filter = currentStyle && currentStyle.filter || style.filter || ""; + // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 + if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) { + + // Setting style.filter to null, "" & " " still leave "filter:" in the cssText + // if "filter:" is present at all, clearType is disabled, we want to avoid this + // style.removeAttribute is IE Only, but so apparently is this code path... + style.removeAttribute( "filter" ); + // if there there is no filter style applied in a css rule, we are done + if ( currentStyle && !currentStyle.filter ) { + return; + } + } + + // otherwise, set new filter values style.filter = ralpha.test( filter ) ? filter.replace( ralpha, opacity ) : filter + " " + opacity; @@ -6625,9 +6682,9 @@ var r20 = /%20/g, rCRLF = /\r?\n/g, rhash = /#.*$/, rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL - rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/, + rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, rquery = /\?/, @@ -6662,7 +6719,10 @@ var r20 = /%20/g, ajaxLocation, // Document location segments - ajaxLocParts; + ajaxLocParts, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = ["*/"] + ["*"]; // #8138, IE may throw an exception when accessing // a field from window.location if document.domain has been set @@ -6755,6 +6815,22 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX return selection; } +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + for( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } +} + jQuery.fn.extend({ load: function( url, params, callback ) { if ( typeof url !== "string" && _load ) { @@ -6898,23 +6974,16 @@ jQuery.extend({ // Creates a full fledged settings object into target // with both ajaxSettings and settings fields. // If target is omitted, writes into ajaxSettings. - ajaxSetup: function ( target, settings ) { - if ( !settings ) { - // Only one parameter, we extend ajaxSettings - settings = target; - target = jQuery.extend( true, jQuery.ajaxSettings, settings ); + ajaxSetup: function( target, settings ) { + if ( settings ) { + // Building a settings object + ajaxExtend( target, jQuery.ajaxSettings ); } else { - // target was provided, we extend into it - jQuery.extend( true, target, jQuery.ajaxSettings, settings ); - } - // Flatten fields we don't want deep extended - for( var field in { context: 1, url: 1 } ) { - if ( field in settings ) { - target[ field ] = settings[ field ]; - } else if( field in jQuery.ajaxSettings ) { - target[ field ] = jQuery.ajaxSettings[ field ]; - } + // Extending ajaxSettings + settings = target; + target = jQuery.ajaxSettings; } + ajaxExtend( target, settings ); return target; }, @@ -6942,7 +7011,7 @@ jQuery.extend({ html: "text/html", text: "text/plain", json: "application/json, text/javascript", - "*": "*/*" + "*": allTypes }, contents: { @@ -6972,6 +7041,15 @@ jQuery.extend({ // Parse text as xml "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + context: true, + url: true } }, @@ -7082,7 +7160,7 @@ jQuery.extend({ // Callback for when everything is done // It is defined here because jslint complains if it is declared // at the end of the function (which would be more logical and readable) - function done( status, statusText, responses, headers ) { + function done( status, nativeStatusText, responses, headers ) { // Called once if ( state === 2 ) { @@ -7105,11 +7183,12 @@ jQuery.extend({ responseHeadersString = headers || ""; // Set readyState - jqXHR.readyState = status ? 4 : 0; + jqXHR.readyState = status > 0 ? 4 : 0; var isSuccess, success, error, + statusText = nativeStatusText, response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined, lastModified, etag; @@ -7161,7 +7240,7 @@ jQuery.extend({ // Set data for the fake xhr object jqXHR.status = status; - jqXHR.statusText = statusText; + jqXHR.statusText = "" + ( nativeStatusText || statusText ); // Success/Error if ( isSuccess ) { @@ -7183,7 +7262,7 @@ jQuery.extend({ completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] ); if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] ); + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); // Handle the global AJAX counter if ( !( --jQuery.active ) ) { jQuery.event.trigger( "ajaxStop" ); @@ -7264,6 +7343,8 @@ jQuery.extend({ // If data is available, append data to url if ( s.data ) { s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data; + // #9682: remove data so that it's not used in an eventual retry + delete s.data; } // Get ifModifiedKey before adding the anti-cache parameter @@ -7301,7 +7382,7 @@ jQuery.extend({ jqXHR.setRequestHeader( "Accept", s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? - s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) : + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : s.accepts[ "*" ] ); @@ -7347,7 +7428,7 @@ jQuery.extend({ transport.send( requestHeaders, done ); } catch (e) { // Propagate exception as error if not done - if ( status < 2 ) { + if ( state < 2 ) { done( -1, e ); // Simply rethrow otherwise } else { @@ -7995,10 +8076,7 @@ var elemdisplay = {}, // opacity animations [ "opacity" ] ], - fxNow, - requestAnimationFrame = window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame; + fxNow; jQuery.fn.extend({ show: function( speed, easing, callback ) { @@ -8374,8 +8452,7 @@ jQuery.fx.prototype = { // Start an animation from one number to another custom: function( from, to, unit ) { var self = this, - fx = jQuery.fx, - raf; + fx = jQuery.fx; this.startTime = fxNow || createFxNow(); this.start = from; @@ -8391,20 +8468,7 @@ jQuery.fx.prototype = { t.elem = this.elem; if ( t() && jQuery.timers.push(t) && !timerId ) { - // Use requestAnimationFrame instead of setInterval if available - if ( requestAnimationFrame ) { - timerId = true; - raf = function() { - // When timerId gets set to null at any point, this stops - if ( timerId ) { - requestAnimationFrame( raf ); - fx.tick(); - } - }; - requestAnimationFrame( raf ); - } else { - timerId = setInterval( fx.tick, fx.interval ); - } + timerId = setInterval( fx.tick, fx.interval ); } }, @@ -8947,9 +9011,10 @@ jQuery.each([ "Height", "Width" ], function( i, name ) { if ( jQuery.isWindow( elem ) ) { // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat - var docElemProp = elem.document.documentElement[ "client" + name ]; + var docElemProp = elem.document.documentElement[ "client" + name ], + body = elem.document.body; return elem.document.compatMode === "CSS1Compat" && docElemProp || - elem.document.body[ "client" + name ] || docElemProp; + body && body[ "client" + name ] || docElemProp; // Get document width or height } else if ( elem.nodeType === 9 ) { diff --git a/doc/html/about.html b/doc/html/about.html index bc7baee..1c7c969 100644 --- a/doc/html/about.html +++ b/doc/html/about.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>About S3QL — S3QL v1.4 documentation</title> + <title>About S3QL — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="#" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Installation" href="installation.html" /> <link rel="prev" title="S3QL User’s Guide" href="index.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="index.html" title="S3QL User’s Guide" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -182,7 +182,7 @@ will, although being inconvenient, not endanger any stored data.</p> <li class="right" > <a href="index.html" title="S3QL User’s Guide" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/adm.html b/doc/html/adm.html index 6d36d4b..9ee0750 100644 --- a/doc/html/adm.html +++ b/doc/html/adm.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Managing Buckets — S3QL v1.4 documentation</title> + <title>Managing Buckets — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Mounting" href="mount.html" /> <link rel="prev" title="File System Creation" href="mkfs.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="mkfs.html" title="File System Creation" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -207,7 +207,7 @@ for help on the mailing list first (see <a class="reference internal" href="reso <li class="right" > <a href="mkfs.html" title="File System Creation" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/backends.html b/doc/html/backends.html index 5a40f14..14cabfa 100644 --- a/doc/html/backends.html +++ b/doc/html/backends.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Storage Backends — S3QL v1.4 documentation</title> + <title>Storage Backends — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="File System Creation" href="mkfs.html" /> <link rel="prev" title="General Information" href="general.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="general.html" title="General Information" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -270,7 +270,7 @@ with <a class="reference external" href="http://fuse.sourceforge.net/sshfs.html" <li class="right" > <a href="general.html" title="General Information" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/contrib.html b/doc/html/contrib.html index 5655fc4..55cfa51 100644 --- a/doc/html/contrib.html +++ b/doc/html/contrib.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Contributed Programs — S3QL v1.4 documentation</title> + <title>Contributed Programs — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Tips & Tricks" href="tips.html" /> <link rel="prev" title="Checking for Errors" href="fsck.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="fsck.html" title="Checking for Errors" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -226,7 +226,7 @@ properly unmounts it when the system is shut down.</p> <li class="right" > <a href="fsck.html" title="Checking for Errors" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/fsck.html b/doc/html/fsck.html index 790d19b..56fbc01 100644 --- a/doc/html/fsck.html +++ b/doc/html/fsck.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Checking for Errors — S3QL v1.4 documentation</title> + <title>Checking for Errors — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Contributed Programs" href="contrib.html" /> <link rel="prev" title="Unmounting" href="umount.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="umount.html" title="Unmounting" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -154,7 +154,7 @@ specified multiple times.</td></tr> <li class="right" > <a href="umount.html" title="Unmounting" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/general.html b/doc/html/general.html index 18569b4..e2a98a5 100644 --- a/doc/html/general.html +++ b/doc/html/general.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>General Information — S3QL v1.4 documentation</title> + <title>General Information — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Storage Backends" href="backends.html" /> <link rel="prev" title="Installation" href="installation.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="installation.html" title="Installation" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -237,7 +237,7 @@ will ever be a concern.</p> <li class="right" > <a href="installation.html" title="Installation" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/index.html b/doc/html/index.html index 0cc78f7..f13bb48 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>S3QL User’s Guide — S3QL v1.4 documentation</title> + <title>S3QL User’s Guide — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="#" /> + <link rel="top" title="S3QL v1.5 documentation" href="#" /> <link rel="next" title="About S3QL" href="about.html" /> </head> <body> @@ -33,7 +33,7 @@ <li class="right" style="margin-right: 10px"> <a href="about.html" title="About S3QL" accesskey="N">next</a></li> - <li><a href="#">S3QL v1.4 documentation</a> »</li> + <li><a href="#">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -180,7 +180,7 @@ <li class="right" style="margin-right: 10px"> <a href="about.html" title="About S3QL" >next</a></li> - <li><a href="#">S3QL v1.4 documentation</a> »</li> + <li><a href="#">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/installation.html b/doc/html/installation.html index f2c677d..94fe80c 100644 --- a/doc/html/installation.html +++ b/doc/html/installation.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Installation — S3QL v1.4 documentation</title> + <title>Installation — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="General Information" href="general.html" /> <link rel="prev" title="About S3QL" href="about.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="about.html" title="About S3QL" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -182,7 +182,7 @@ have to run <tt class="docutils literal"><span class="pre">sudo</span> <span cla <li class="right" > <a href="about.html" title="About S3QL" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/issues.html b/doc/html/issues.html index 33a66f0..c91d967 100644 --- a/doc/html/issues.html +++ b/doc/html/issues.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Known Issues — S3QL v1.4 documentation</title> + <title>Known Issues — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Manpages" href="man/index.html" /> <link rel="prev" title="Tips & Tricks" href="tips.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="tips.html" title="Tips & Tricks" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -182,7 +182,7 @@ the backend.</p> <li class="right" > <a href="tips.html" title="Tips & Tricks" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/man/adm.html b/doc/html/man/adm.html index fc5d4da..7e6a07f 100644 --- a/doc/html/man/adm.html +++ b/doc/html/man/adm.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The s3qladm command — S3QL v1.4 documentation</title> + <title>The s3qladm command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The mount.s3ql command" href="mount.html" /> <link rel="prev" title="The mkfs.s3ql command" href="mkfs.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="mkfs.html" title="The mkfs.s3ql command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -201,7 +201,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="mkfs.html" title="The mkfs.s3ql command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/cp.html b/doc/html/man/cp.html index 2f7f0d4..0634fe6 100644 --- a/doc/html/man/cp.html +++ b/doc/html/man/cp.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The s3qlcp command — S3QL v1.4 documentation</title> + <title>The s3qlcp command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The s3qlrm command" href="rm.html" /> <link rel="prev" title="The s3qlctrl command" href="ctrl.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="ctrl.html" title="The s3qlctrl command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -207,7 +207,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="ctrl.html" title="The s3qlctrl command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/ctrl.html b/doc/html/man/ctrl.html index 60b34c7..d9f322d 100644 --- a/doc/html/man/ctrl.html +++ b/doc/html/man/ctrl.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The s3qlctrl command — S3QL v1.4 documentation</title> + <title>The s3qlctrl command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The s3qlcp command" href="cp.html" /> <link rel="prev" title="The s3qlstat command" href="stat.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="stat.html" title="The s3qlstat command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -198,7 +198,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="stat.html" title="The s3qlstat command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/expire_backups.html b/doc/html/man/expire_backups.html index 46b16ae..ff76a8e 100644 --- a/doc/html/man/expire_backups.html +++ b/doc/html/man/expire_backups.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The expire_backups command — S3QL v1.4 documentation</title> + <title>The expire_backups command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="Further Resources / Getting Help" href="../resources.html" /> <link rel="prev" title="The pcp command" href="pcp.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="pcp.html" title="The pcp command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -228,7 +228,7 @@ error occured.</p> <li class="right" > <a href="pcp.html" title="The pcp command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/fsck.html b/doc/html/man/fsck.html index 72258c0..f0d5cc8 100644 --- a/doc/html/man/fsck.html +++ b/doc/html/man/fsck.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The fsck.s3ql command — S3QL v1.4 documentation</title> + <title>The fsck.s3ql command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The pcp command" href="pcp.html" /> <link rel="prev" title="The umount.s3ql command" href="umount.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="umount.html" title="The umount.s3ql command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -193,7 +193,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="umount.html" title="The umount.s3ql command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/index.html b/doc/html/man/index.html index 2c5f20d..a93cca0 100644 --- a/doc/html/man/index.html +++ b/doc/html/man/index.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Manpages — S3QL v1.4 documentation</title> + <title>Manpages — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="next" title="The mkfs.s3ql command" href="mkfs.html" /> <link rel="prev" title="Known Issues" href="../issues.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="../issues.html" title="Known Issues" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -135,7 +135,7 @@ here in the User’s Guide.</p> <li class="right" > <a href="../issues.html" title="Known Issues" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/man/lock.html b/doc/html/man/lock.html index c626d07..f8993ef 100644 --- a/doc/html/man/lock.html +++ b/doc/html/man/lock.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The s3qllock command — S3QL v1.4 documentation</title> + <title>The s3qllock command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The umount.s3ql command" href="umount.html" /> <link rel="prev" title="The s3qlrm command" href="rm.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="rm.html" title="The s3qlrm command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -198,7 +198,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="rm.html" title="The s3qlrm command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/mkfs.html b/doc/html/man/mkfs.html index eaf53cb..3892cc9 100644 --- a/doc/html/man/mkfs.html +++ b/doc/html/man/mkfs.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The mkfs.s3ql command — S3QL v1.4 documentation</title> + <title>The mkfs.s3ql command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The s3qladm command" href="adm.html" /> <link rel="prev" title="Manpages" href="index.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="index.html" title="Manpages" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -193,7 +193,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="index.html" title="Manpages" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/mount.html b/doc/html/man/mount.html index 73eb5af..162467d 100644 --- a/doc/html/man/mount.html +++ b/doc/html/man/mount.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The mount.s3ql command — S3QL v1.4 documentation</title> + <title>The mount.s3ql command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The s3qlstat command" href="stat.html" /> <link rel="prev" title="The s3qladm command" href="adm.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="adm.html" title="The s3qladm command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -247,7 +247,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="adm.html" title="The s3qladm command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/pcp.html b/doc/html/man/pcp.html index 1aaaee4..95631e1 100644 --- a/doc/html/man/pcp.html +++ b/doc/html/man/pcp.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The pcp command — S3QL v1.4 documentation</title> + <title>The pcp command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The expire_backups command" href="expire_backups.html" /> <link rel="prev" title="The fsck.s3ql command" href="fsck.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="fsck.html" title="The fsck.s3ql command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -171,7 +171,7 @@ error occured.</p> <li class="right" > <a href="fsck.html" title="The fsck.s3ql command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/rm.html b/doc/html/man/rm.html index f70982c..39324b5 100644 --- a/doc/html/man/rm.html +++ b/doc/html/man/rm.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The s3qlrm command — S3QL v1.4 documentation</title> + <title>The s3qlrm command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The s3qllock command" href="lock.html" /> <link rel="prev" title="The s3qlcp command" href="cp.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="cp.html" title="The s3qlcp command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -171,7 +171,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="cp.html" title="The s3qlcp command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/stat.html b/doc/html/man/stat.html index 0d939ae..a5f9f4a 100644 --- a/doc/html/man/stat.html +++ b/doc/html/man/stat.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The s3qlstat command — S3QL v1.4 documentation</title> + <title>The s3qlstat command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The s3qlctrl command" href="ctrl.html" /> <link rel="prev" title="The mount.s3ql command" href="mount.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="mount.html" title="The mount.s3ql command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -166,7 +166,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="mount.html" title="The mount.s3ql command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/man/umount.html b/doc/html/man/umount.html index 19b1068..676ff8d 100644 --- a/doc/html/man/umount.html +++ b/doc/html/man/umount.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The umount.s3ql command — S3QL v1.4 documentation</title> + <title>The umount.s3ql command — S3QL v1.5 documentation</title> <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="author" title="About these documents" href="../about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="../index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="../index.html" /> <link rel="up" title="Manpages" href="index.html" /> <link rel="next" title="The fsck.s3ql command" href="fsck.html" /> <link rel="prev" title="The s3qllock command" href="lock.html" /> @@ -38,7 +38,7 @@ <li class="right" > <a href="lock.html" title="The s3qllock command" accesskey="P">previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" accesskey="U">Manpages</a> »</li> </ul> </div> @@ -176,7 +176,7 @@ system, conventional locations are <tt class="file docutils literal"><span class <li class="right" > <a href="lock.html" title="The s3qllock command" >previous</a> |</li> - <li><a href="../index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="../index.html">S3QL v1.5 documentation</a> »</li> <li><a href="index.html" >Manpages</a> »</li> </ul> </div> diff --git a/doc/html/mkfs.html b/doc/html/mkfs.html index e5799ef..ecdb573 100644 --- a/doc/html/mkfs.html +++ b/doc/html/mkfs.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>File System Creation — S3QL v1.4 documentation</title> + <title>File System Creation — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Managing Buckets" href="adm.html" /> <link rel="prev" title="Storage Backends" href="backends.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="backends.html" title="Storage Backends" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -154,7 +154,7 @@ option to prevent accidental creation of an encrypted bucket.</p> <li class="right" > <a href="backends.html" title="Storage Backends" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/mount.html b/doc/html/mount.html index c243f32..834ed59 100644 --- a/doc/html/mount.html +++ b/doc/html/mount.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Mounting — S3QL v1.4 documentation</title> + <title>Mounting — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Advanced S3QL Features" href="special.html" /> <link rel="prev" title="Managing Buckets" href="adm.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="adm.html" title="Managing Buckets" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -375,7 +375,7 @@ mounted.</li> <li class="right" > <a href="adm.html" title="Managing Buckets" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/objects.inv b/doc/html/objects.inv index a1ddefe..11cec59 100644 --- a/doc/html/objects.inv +++ b/doc/html/objects.inv @@ -1,6 +1,6 @@ # Sphinx inventory version 2 # Project: S3QL -# Version: 1.4 +# Version: 1.5 # The remainder of this file is compressed using zlib. xÚ}RMÕ0¼çWD‚k¡½q$Ø•@À‰c•¦Þ×hó…í<xÿ·i«×z‹Æ3ã±c›ò¥Ë€ ƒ‰4ñðÆ›¼n^kv™nFþ…^sÍ»ÓÙÅ“žJúª¤\$nèö§ß›M°ñÞ°K±š¾Ô÷›lÚÛoŸÔ ¢‹üÞ+W´ªD$oÕûÜå_q¯ÔÊi„Ór©ËÛÂ#DvvŽ!VsêéBþÑ[Æ^KûÏi(–Ùæ=ߦÈèúu@©ßä‹š¶á“}Ús)ƒukVYF…M/Þ߀A;>“ÌØ’¤„¯æsËè;<=€~Ÿâ£;¬ƒ“ìF,ºÞȶâ@{‹·Ù¸mô»PDc'w“ÿwIRoæzÛÞªš>fo£É4&æéMdù››è¸ÎáÐáƒ!Ö`’;ƒ¼B:?+å ùPûjãVˆŽä~H-+è¼3½óŽ/G§XÙÍ5ûK\ a6X!P*háÙGlð6OA9fíʵ弟ե=`ô
\ No newline at end of file diff --git a/doc/html/resources.html b/doc/html/resources.html index f35b27a..823ca46 100644 --- a/doc/html/resources.html +++ b/doc/html/resources.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Further Resources / Getting Help — S3QL v1.4 documentation</title> + <title>Further Resources / Getting Help — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="prev" title="The expire_backups command" href="man/expire_backups.html" /> </head> <body> @@ -33,7 +33,7 @@ <li class="right" style="margin-right: 10px"> <a href="man/expire_backups.html" title="The expire_backups command" accesskey="P">previous</a></li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -105,7 +105,7 @@ can subscribe by sending a mail to <li class="right" style="margin-right: 10px"> <a href="man/expire_backups.html" title="The expire_backups command" >previous</a></li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/search.html b/doc/html/search.html index 2022e20..480959c 100644 --- a/doc/html/search.html +++ b/doc/html/search.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Search — S3QL v1.4 documentation</title> + <title>Search — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -24,7 +24,7 @@ <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="_static/searchtools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <script type="text/javascript"> jQuery(function() { Search.loadIndex("searchindex.js"); }); </script> @@ -35,7 +35,7 @@ <div class="related"> <h3>Navigation</h3> <ul> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -100,7 +100,7 @@ <div class="related"> <h3>Navigation</h3> <ul> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js index 1f60ce6..48f2cde 100644 --- a/doc/html/searchindex.js +++ b/doc/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{},terms:{suffici:1,all:[0,1,2,3,5,7,8,11,12,13,14,15,17,19,20,21,22,23,24,25,26,27],code:[8,17,0,22,11,23,10,25,21,3,4,26,6,20],partial:12,global:[],mnt:[5,14,27],month:[5,25],prefix:[12,1],stumbl:7,notquitesecret:1,follow:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,19,20,22,23,24,25,26,27],disk:[14,21],whose:12,decid:[14,1],middl:7,depend:[8,9,22,23,1,25,3,5,14,20,27],million:7,ulimit:[27,20],readabl:21,send:16,rel:[12,4],init:[27,7],program:[0,2,3,4,5,6,7,8,9,10,11,13,15,17,19,20,22,23,24,25,26,27],those:12,under:[12,22],aris:12,sha256:21,neglig:[],worth:7,introduc:[17,13],sourc:[17,21,22,4,5,13],everi:[17,0,27,1,25,12,5,14,13],risk:[],mkf:[8,2,23,18,9],far:14,faq:16,account:[20,12,27],util:[14,19],pycryptopp:22,failur:1,veri:[21,12,7],affect:[17,27,7,13,1],tri:[15,7],administr:[0,13],level:[26,13],did:21,list:[21,22,25,26,12,13,5,15,16],upload:[21,11,27,24,26,12,13,5,14,20,7],previou:[5,15,12],"try":[5,25,12,22,1],larg:[17,14,7,13],stderr:27,small:[14,7],blocksiz:[2,23,20,27],mount:[17,9,0,20,18,11,27,10,24,1,26,12,7,3,5,6,14,15,13],dir:[17,27],pleas:[21,16],upper:12,smaller:[14,21,7],slower:[17,27,13],ifac:27,ten:12,whitespac:[],compens:1,sync:4,sign:12,consequ:1,hors:[0,13],design:[0,21,13,1],pass:[27,4],download:[15,22,3],further:[9,15,16],correspond:12,port:12,rath:27,even:[8,0,11,24,1,12,19,13],what:[5,25,15,26,1],bzip2:[21,20,27],sub:7,entir:[21,0,10,13],descriptor:[27,20],section:[12,1],abl:[0,11,24,1,12,13,16],weren:16,asia:[],find:[0,12,27,7,13],access:[21,20,27,1,12,15,7],delet:[9,0,10,25,12,7,3,5,15,13],version:[8,17,0,20,22,11,23,10,24,19,25,2,12,21,3,4,26,6,15,27,7],suspect:19,directori:[0,1,2,3,4,5,7,8,10,11,12,13,14,15,17,19,20,21,22,23,25,27],consecut:12,"new":[8,0,20,23,1,25,26,12,7,5,15,27,13],net:27,ever:1,"public":[],contrast:[0,13],metadata:[9,20,27,3,26,14,15,13],elimin:12,full:[8,17,0,11,23,10,26,21,3,5,6,20,27,13],themselv:1,absolut:[5,25,12],pacif:[],gener:[9,0,22,1,25,12,7,5,15,13],never:[],privat:[],here:[26,12,18],satisfi:22,explicitli:7,modif:7,address:7,path:[8,20,22,23,19,2,12,3,15,27],becom:[5,25,14,12,1],modifi:[17,21,13],sinc:[27,1,25,12,5,7],valu:[27,20,7,1],wait:[11,14,27,24,7],dry:25,convert:12,joes_bucket:[],howev:[17,0,27,21,25,12,13,5,14,7],checksum:21,larger:27,step:5,amount:[26,14,12,21],throughput:[],action:[26,15,13,3],implement:1,magnitud:[17,13],chanc:7,control:13,fstab:[27,7],decrypt:1,appli:[14,12,1],modul:[8,20,1,23,19,2,3,26,22,15,27],apw:22,filenam:14,unix:[14,21,7],visibl:12,instal:[8,9,0,20,18,22,17,11,23,10,26,3,5,6,15],total:[27,7,13],establish:1,from:[8,17,0,20,22,19,23,21,1,25,2,12,3,4,5,14,15,27,13],describ:[12,1],would:[17,1,25,12,5,13],apswvers:22,upgrad:[9,15,22,3],impos:[],few:[5,12,22],concret:1,call:[17,0,27,10,1,25,26,12,5,6,14,20,13],usr:[8,17,0,11,23,10,26,3,5,6,20],recommend:[5,27,12,7,1],taken:[17,21,20,27,13],tape:[0,13],bill:1,type:[],until:[11,27,7,13,24],more:[21,22,1,13,4,26,7],sort:[5,25],desir:26,st_nlink:7,src:[17,13],peopl:[],hundr:[],relat:12,benchmark:[5,9,27],"19283712_yourname_s3ql":[],notic:[14,12],enhanc:5,warn:[26,10,15,13,1],sqlitelibvers:22,sens:14,known:[9,21,7],rare:[],hold:[12,1],unpack:22,cach:[8,9,21,20,23,19,2,13,3,26,15,27,7],must:[17,15,12,13,3],worst:[0,13],none:[8,20,1,27,19,3,15],word:[],sometim:15,restor:[17,9,14,15,13],dest:17,setup:22,work:[21,22,24,25,5,14,7],uniqu:1,conceptu:21,remain:27,wors:12,obvious:27,can:[0,1,2,3,5,6,7,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],about:[9,21,27,13,6,14,7],root:[17,0,11,27,10,24,26,6,20,13],fetch:[17,13],overrid:12,prompt:[8,19],tar:14,give:[5,25,14,15],process:[11,27,24,12,4,5,14,20,7],lock:[0,13],sudo:22,share:[8,17,0,11,23,10,26,3,5,6,20],accept:[8,17,0,20,19,11,23,10,24,1,25,2,3,4,26,6,15,27],high:[21,20,27,4],critic:21,minimum:[14,21],want:[11,27,24,25,5,14,16],onlin:[0,12,21,13],unfortun:[14,12,7],occur:[8,17,0,11,23,10,1,25,3,4,26,6,20],ratio:27,alwai:[17,27,25,13,5,7],end:[27,15],turn:[5,25,27,7],rather:[25,12,13,5,14,7],anoth:[7,1],ordinari:[17,11,24,13],write:[8,9,21,20,22,17,27,19,12,7,3,5,14,15,13],how:[5,25,14],manpag:[9,18],env:27,webpag:12,verifi:[12,7],simpl:[5,25,13],updat:[5,21,12,7],product:[],resourc:[9,15,16],job:[5,27],max:[27,20],earlier:[22,7,1],pyliblzma:22,badli:[15,3],wrong:[15,7,3],endang:21,mai:[17,0,20,22,27,16,21,24,1,26,12,7,3,5,14,15,13],multipl:[8,15,23,19,2,3,20,27],redund:[5,25,21,12],secondari:[],data:[8,17,21,20,19,11,23,27,24,1,2,12,7,3,5,14,15,26,13],grow:[21,27],physic:[5,17,0,15,13],man:[18,7],"short":[0,12,13],attempt:[8,27,7,1],practic:[14,12],third:14,read:[8,17,21,20,19,23,1,2,12,7,3,14,15,27,13],neitheristhi:1,author:[27,7],favorit:[],apsw:22,element:27,issu:[17,9,0,22,27,16,10,21,12,7,26,6,13],inform:[9,27,1,25,26,20,13],maintain:27,combin:[14,12,27,1],allow:[17,0,20,27,10,25,26,12,4,5,6,14,15,13],enter:[2,23],exclus:14,volum:27,order:[17,13,1],talk:12,oper:[8,17,0,20,11,23,10,1,25,21,3,4,26,6,15,27],creation:[2,23,9],help:[9,22,16,26,13,3,5,15,7],over:[17,21,27,12,13,14,20,7],move:[21,15,1],soon:[],topsecret:[],increas:[14,20,27],appar:12,effici:7,still:[17,21,11,27,24,1,12,13],dynam:21,paramet:1,overwrit:[2,23],fix:[0,25,12,13,5,7],inadvert:[17,13],better:[27,22,4],window:12,html:[],restart:[27,7],persist:1,mail:[21,15,22,16],main:[10,13],might:[17,0,27,16,10,19,13,26,6,7],documents_januari:[17,13],them:[17,11,24,1,12,15,13],good:[0,25,13,5,14,7],synopsi:[8,17,0,11,23,10,25,3,4,26,6,20],thei:[17,0,18,21,25,12,5,14,13],python:[27,22,1],promin:7,safe:[17,14,13],fuse4bsd:22,dai:[5,25],initi:[],dat:[5,25],terminolog:[9,1],therebi:12,instead:[17,11,24,1,12,13,7],interrupt:15,potenti:12,now:[0,22,25,12,5,13],bigger:[],choic:22,term:[5,25,1],eventu:12,somewher:[8,17,0,11,23,10,3,26,6,20,13],name:[17,23,1,25,2,12,5,14,20,27,13],joesdomain:[],authent:[8,9,20,19,23,1,2,12,3,15,27],achiev:[5,17,21,27,13],mode:[27,20],each:[5,25,27,20,1],debug:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],found:[14,1],beneath:13,confid:[],side:1,mean:[21,12,7],compil:27,s3ql:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],mkfifo:27,chunk:7,hard:[14,21],idea:[5,25,0,7,13],procedur:[17,13],realli:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,14,15,27,7],contrib:[5,14,27],meta:[26,14,13],expect:[27,12,1],year:[5,25,21,12],s3_copi:[5,9],happen:[0,12,13,1],todo:[],special:[17,13],out:[21,12,7],lzma:[21,20,22,27],ftp:[],shown:12,network:[17,14,27,21,13],space:[17,21,7,13],open:[11,27,24,7],newli:7,log_fifo:27,content:[17,21,27,0,1,3,13],suitabl:[21,22],rational:0,internet:[21,27],print:[8,17,0,20,22,11,23,10,24,19,25,2,3,4,26,6,15,27],eth0:27,bla:27,correct:[5,25],common:[17,0,12,13],foreground:[27,20],shut:[5,11,24,7],after:[17,0,21,1,12,14,15,13],insid:17,advanc:[9,13],migrat:5,documents_janurai:[],manipul:21,situat:[14,7],given:7,free:[21,12],standard:[5,25,21,12,27],inod:[8,7,19],reason:[10,27,24,1,25,12,13,5,14,19,7],base:27,theori:[12,7],ask:[22,23,2,12,15,7],org:27,"byte":[],likelihood:12,afterward:14,bash:14,care:[17,21,7,13],wai:[0,27,21,1,12,13,14,7],thread:[5,27,20],befor:[17,21,11,27,24,1,12,13,7],could:[17,13],success:[],refus:[5,25],keep:[0,27,1,25,5,13],recov:[0,13],thing:[15,3],length:12,rais:[27,20],place:[27,12],perman:[9,0,27,12,14,13],pycrypto:22,principl:27,confus:7,neglect:1,first:[21,22,27,1,12,14,15,7],origin:[],softwar:27,rang:[5,25],becaus:[17,21,27,1,12,5,13],directli:12,malici:[0,13],carri:21,onc:[0,11,27,21,24,12,13,14,20,7],clariti:[],s3q:[],number:[21,22,27,25,13,4,5,14,20,7],capac:21,restrict:[26,27,20],date:[5,25],instruct:[27,22],alreadi:[17,22,7,13],done:[27,12],wrapper:[5,4],llfuse:22,indistinguish:21,miss:[25,1],s3c:12,size:[21,23,2,13,26,14,20,27,7],differ:[17,21,22,27,1,26,3,5,14,15,13],convent:[8,17,0,11,23,10,3,26,6,20,7],script:[5,14,27,7],profil:[27,20],unknown:21,interact:3,s3qllock:[9,0,18,10,5,14,13],system:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27],least:[22,27,25,12,5,20],parallel:[9,27,4,5,14,20],checkpoint:1,attack:[0,7,13],necessarili:12,demonstr:5,s3qlrm:[9,0,18,10,25,5,13],termin:[11,24,7,1],lost:[12,1],john:12,"final":13,store:[8,9,21,20,19,23,1,25,2,12,3,5,14,15,27,7],low:[21,12],servi:7,luckili:7,consol:12,option:[0,2,3,4,5,6,7,8,10,11,13,14,15,17,19,20,22,23,24,25,26,27],especi:[14,21],shelf:[0,13],tool:12,copi:[17,9,21,1,13,4,5,14,15,7],specifi:[8,20,19,23,27,1,25,2,12,3,5,15,26,7],arbitrari:[14,12],part:[21,27,1,25,4,5],pars:1,mostli:[],consult:[8,23,20,3],exactli:[5,17,25,13],than:[10,27,1,25,13,5,14,7],wide:[27,22],target:[8,17,20,27,19,3,14,15,13],cachedir:[8,15,23,19,2,3,20,27],whenev:[14,22,27,1],prevent:[2,0,23,13],remov:[17,9,0,22,27,10,25,26,7,5,6,13],eleg:21,tree:[17,9,0,10,4,5,21,13],second:[27,1,25,12,5,14,20],structur:[21,15],exampl:[21,1,25,13,5,14,7],matter:[26,14,15],temporarili:27,friend:14,video:27,minut:[5,25],led:1,pre:27,unencrypt:[2,23],sai:[17,13],comput:[5,25,21,27],entail:[],plaintext:[],explicit:14,ram:27,mind:1,argument:[26,15,3],peculiar:12,"13th":21,packag:[5,22],expir:27,increment:[],disadvantag:[17,13],need:[17,20,22,27,1,25,12,5,15,13],seem:14,exclud:[0,13],paramiko:[],caus:[12,1],equival:[5,25],irrepar:15,destroi:[0,13],moreov:13,blindli:7,atim:7,accuraci:[5,25],note:[17,9,21,22,11,27,24,25,12,7,4,5,14,15,13],also:[8,17,0,18,11,23,10,24,1,25,26,12,21,3,4,5,6,14,20,27,13],builtin:22,denomin:12,take:[17,21,13,3,26,14,15,7],which:[17,10,22,21,1,25,12,13,5,7],discrep:[],transmit:[],environ:22,uplink:5,singl:[14,20,27],swordfish:1,mktemp:27,begin:1,sure:[20,22,27,12,14,15,7],unless:[2,0,23,13],distribut:[5,27,22],plenti:[],normal:[27,20,1],buffer:7,who:[11,27,20,24],compress:[9,21,27,5,20,13],most:[8,17,20,19,27,1,25,12,7,3,5,15,13],beta:21,said:[],rigor:[5,25],plan:[],stricli:[8,19],choos:[],homepag:[8,17,0,11,23,10,3,26,6,20],"class":[8,17,0,11,23,10,25,26,3,4,5,6,20],three:[27,12,22],simplic:21,renam:21,correctli:[7,19],ship:[25,27,22,4],url:[8,20,19,23,1,2,12,3,15,27],doc:[8,17,0,11,23,10,26,3,5,6,20],clear:[17,15,13],later:[17,0,22,1,12,13,7],cover:14,drive:[0,13],destruct:[0,13],doe:[21,27,24,1,12,7],declar:21,snapshot:[17,9,21,26,13],runtim:[9,13],determin:[5,27,1],sourceforg:[],occasion:12,usual:27,hmac:21,gracefulli:[5,25],myawssecretaccesskei:[],theoret:14,show:25,carefulli:1,random:[],syntax:[27,19,2,26,15,13],connect:[14,12,27,21],permiss:[5,21,20,27],bucketnam:12,newest:[14,3],anywai:[],rotat:[8,15,27,19,3,20],redirect:27,current:[5,15,12,25,7],onli:[17,25,0,20,22,11,27,10,24,21,26,12,7,4,5,6,14,15,13],slow:7,locat:[8,17,0,11,23,10,1,3,26,6,20,13],execut:[5,15,22,13],transact:21,configur:[9,27,13],activ:[8,17,0,20,19,11,23,10,24,1,25,2,12,3,4,26,6,15,27,13],state:[5,25,21,7],haven:[],authinfo:[],latenc:[14,21,4],suppos:12,rich:12,factor:[5,12],folder:[17,22,13],local:[8,9,0,22,17,11,23,10,12,21,3,26,6,14,20,27],defin:[5,25,27,1],contribut:[5,9],variou:[26,15,3],get:[8,9,0,20,22,19,23,27,1,25,2,16,3,5,15,26,13],googlegroup:16,nasti:[0,13],stop:27,autom:[5,21],regularli:[17,13],ssl:7,s3rr:[],cannot:[5,25],ssh:[9,14,12],report:[21,22,16,1],reconstruct:[5,25,1],requir:[8,21,1,27,19,25,26,5,22,20,7],myawsaccesskeyid:[],reveal:21,enabl:[],dramat:14,intrins:14,method:[27,22],provid:[21,22,27,1,12,7],bad:14,statist:[6,13,9],though:[27,12,1],contain:[22,27,25,3,5,15],userspac:[],nowher:[],where:[26,15,7,3,1],caches:[26,27,20,13],wiki:[22,16],kernel:22,set:[5,14,20,27],bucket1:1,bucket3:1,bucket2:1,startup:27,maximum:[5,2,23,20,27],see:[8,17,0,20,11,23,10,1,25,26,12,7,3,4,5,6,14,15,27,13],num:[27,20],s3qlcp:[5,9,17,18,13],fail:[12,22,7],close:[11,24],optimum:14,whatsoev:[0,21,13],best:[14,12,22,27],concern:1,infinit:21,awar:1,statu:[8,9,0,17,11,23,10,25,12,21,3,4,26,6,20,7],detect:[21,12,1],extend:21,inconveni:21,hopefulli:7,databas:21,boundari:[5,25],label:[2,23],favor:21,enough:[14,20,27,7],between:[5,25,27,20],"import":[5,22,1],neither:[0,13],across:21,attribut:21,amazon:[9,21,1,12,5,7],august:[],kei:[21,12],weak:[],inconsist:7,southeast:[],lazi:[11,24],hardlink:[17,21,13],joe:[5,1],expire_backup:[5,9,18,25],solv:14,come:[5,14,21],local0:27,addit:[17,10,27,21,1,3,26,15,13],both:[17,21,22,13,1],protect:[0,21,13],accident:[2,0,23,7,13],last:1,irregular:[5,25],extens:21,someth:[17,13],region:[5,12],alon:1,quiet:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],against:[0,21,13],configpars:1,etc:[17,27,7,13],instanc:14,freeli:27,corrupt:1,com:[8,17,0,22,11,23,10,25,3,4,26,6,14,20,16],pcp:[5,9,14,18,4],independ:[21,20,27],load:27,simpli:[0,13],figur:1,inspir:[17,13],buti:[],period:[0,13],insist:14,batch:[8,27,19],written:[21,20,27,1],littl:[27,12,22],shutdown:27,linux:[27,22],averag:12,guid:[8,9,18,23,3,20],assum:27,duplic:[17,21,1,12,5,13],quit:22,worthless:[0,13],strong:[8,17,0,11,23,10,25,3,4,26,6,20],nikolau:27,west:[],devic:27,due:[12,7],been:[0,19,11,27,21,24,1,25,12,7,5,14,15,13],mark:[8,19],compon:21,secret:12,much:4,interpret:27,interest:13,subscrib:16,monthli:[17,13],immedi:[10,11,27,24,12,13],strategi:[5,25],legaci:12,infect:[0,13],upstart:[5,27,20],great:[0,13],ani:[8,17,0,22,23,21,1,25,2,12,16,5,13],rsync_arg:14,zero:14,understand:[27,20],togeth:1,els:15,tradition:[0,13],s3qlstat:[6,18,7,13,9],present:12,"case":[17,0,22,21,1,25,5,14,15,13],replic:[5,17,21,13],trojan:[0,13],ident:[17,21,13,1],look:14,gnu:7,solid:21,plain:[2,23],servic:[21,12,1],zlib:[27,20],histor:1,trick:[9,14],documents_februari:[17,13],invok:[26,15],abov:[5,25,1],error:[8,9,0,20,17,11,23,10,1,25,21,3,4,26,6,19,7],login:[12,1],invoc:[5,25],ahax:4,loos:[12,1],jibbadup:[],earli:7,runlevel:27,argpars:22,have:[17,0,20,22,11,23,16,21,24,1,25,2,12,7,4,5,14,15,27,13],advantag:[5,25,0,13],stdout:27,almost:14,therefor:[5,27,12,7,1],remount:12,worri:7,destin:[17,14,13,4],exit:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],gsutil:[],conf:[5,9],incom:[],revis:[15,3],dedic:[27,7],sever:[21,22,27,1,12,4,5,14,20],tamper:[5,25],unmount:[9,11,27,24,1,12,5,14,19,7],develop:[9,21,12],minim:21,perform:[9,21,22,27,1,26,12,3,4,5,14,15,7],media:12,make:[17,0,20,22,27,21,1,25,12,13,5,14,15,7],flushcach:[26,13],same:[17,27,1,25,12,5,14,15,13],"while":[0,22,27,21,24,12,26,13],handl:[17,21,27,25,12,13,5,14,7],renumb:[8,19],unexpectedli:7,split:21,auto:[27,20],pai:12,document:[8,17,0,11,23,10,3,26,6,20,13],infer:[5,25],complet:[17,22,27,1,25,26,12,5,20,13],week:[5,25],geograph:12,archiv:[21,12],hostnam:12,closest:12,lie:17,optim:27,keyr:[],confidenti:[],upon:7,effect:[17,21,13,1],cycl:[5,25],solut:5,remot:[14,12,21],fuse:[27,7],temporari:12,user:[8,9,0,18,22,17,11,23,10,24,19,12,21,3,26,6,14,20,27,13],mani:[5,25,21,1],extern:[0,12,13],encrypt:[21,27,1,2,3,23],typic:[17,13],recent:[5,25,27,15,7],gss:12,appropri:27,kept:[8,15,27,19,3,20],older:15,nevertheless:[5,1],entri:[27,20,7,1],thu:1,irrelev:7,well:[0,20,27,10,1,25,5,15,13],without:[8,17,0,21,19,12,13,14,15,7],command:[0,1,2,3,4,5,6,7,8,9,10,11,13,15,17,18,19,20,22,23,24,25,26,27],thi:[0,1,2,3,4,5,6,7,8,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27],filesystem:[27,19,2,14,20,23],gzip:21,credenti:[8,20,1,23,19,2,3,15,27],spend:14,left:7,compromis:14,identifi:[12,1],just:[8,17,0,20,11,23,10,24,19,25,2,12,3,4,26,6,14,15,27,13],less:[7,1],conform:21,tip:[9,14],lowest:12,obtain:[],rest:14,bandwidth:[5,21],touch:[17,13],openstack:21,passphras:[9,15,3,1],roughli:27,speed:[5,27],yet:[12,7],web:12,viru:[0,13],detach:[11,24],homedir:[],easi:14,hint:[26,15,3],point:[21,11,27,1,12,20],had:[5,17,25,13],except:1,param:15,thousand:[27,12,7],add:[0,13],valid:[12,13],nor:[0,13],versa:[17,13],input:[8,19],logger:27,subsequ:[5,25,12],match:12,bin:[14,22],applic:[7,1],transpar:21,preserv:[5,21],big:[14,7],regard:[17,13],exception:[],traffic:12,know:[5,17,25,7,13],background:[11,24],amp:14,bit:21,password:[2,23,12,1],recurs:[5,9,10,13],presum:1,like:[17,0,27,21,12,13,4,20,7],loss:[12,1],daemon:[27,20],ctime:7,specif:[0,22,1,12,13,26,15,7],header:1,should:[8,17,0,20,22,19,11,23,10,24,1,7,3,26,6,14,15,27,13],anyth:[],manual:[11,22,24,16],resolv:[12,16],noth:[0,13],princip:7,necessari:15,either:[12,13,3,26,15,7],output:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],per:27,page:18,yyyi:[5,25],imagin:[5,25,0,13],right:14,old:[8,0,20,22,27,19,25,12,3,5,15,13],often:[14,1],deal:[],ll23bi:1,interv:[5,25,14,20,27],compat:[9,12,7],some:[8,17,0,20,22,11,23,10,24,1,25,26,12,21,3,4,5,6,19,7],umount:[9,18,11,27,24,7],self:22,certain:[],strongest:[],"export":[27,20,7],flush:[27,13],guarante:[5,25,12],server:[14,12,7],librari:[22,7],"24h":[27,20],rsync:[17,0,13,4,5,14,7],backend:[8,9,17,11,23,24,1,12,7,3,26,14,20,27,13],confirm:[10,13],stronger:12,freebsd:22,avoid:[5,25],exec:27,definit:[5,25],februari:[17,13],protocol:1,usernam:1,equal:27,leav:7,slash:12,cif:27,damag:[5,25,15,1],creep:21,refer:[18,1],machin:[],core:[5,27],plu:1,object:[20,12,27],run:[0,20,22,19,27,1,25,26,13,3,5,15,7],itself:[12,22,7,1],power:5,certif:[12,7],reach:[8,15,27,19,3,20],intellig:[5,25,21],view:18,usag:[5,17,27,25,13],symlink:21,speak:27,host:[],unreason:7,although:[21,10,7,13],januari:[17,13],bi23ll:1,immut:[9,0,10,5,21,14,13],"__version__":22,stage:[],sshf:[14,12],comparison:[],deflat:21,actual:[15,14,12,22,7],proce:22,memori:27,http:[8,17,0,22,11,23,10,25,12,3,4,26,6,20],storebackup:[17,13],acl:21,messag:[8,15,23,19,2,3,20,27],fals:[27,20],commit:[24,7],backup:[17,9,0,27,21,1,25,12,3,5,14,15,13],disabl:[8,15,27,19,3,20],block:[21,11,23,24,1,2,13,26,27,7],repair:8,client:7,real:12,encount:[16,7],xyz:[],within:[13,1],encod:27,automat:[5,9,27,12,15],two:[17,21,15,22,13],down:[5,11,24,7],ahv:14,authinfo2:[8,15,23,19,2,3,20,27],ensur:[5,25,14,21],chang:[17,9,0,27,21,12,7,3,26,15,13],insuffici:7,storag:[8,9,0,20,19,17,11,23,21,24,1,2,12,7,3,5,14,15,27,13],your:[8,17,0,18,22,11,23,10,25,26,12,3,5,6,14,20,27,13],durabl:1,manag:[9,12,15],east:[],fast:[9,21,27,13],fusermount:[11,24,7],prepar:26,her:[0,13],transfer:[5,14,21],support:[17,21,27,12,13,20,7],question:16,s3_backup:[5,9],"long":[5,25,14,7,1],avail:[8,0,20,23,25,12,7,3,5,15,27,13],start:[8,22,27,1,12,4,5,14,19],reli:[7,1],trigger:[12,13],includ:[22,21,12,18,7],lot:14,"var":12,succeed:[8,17,0,11,23,10,25,3,4,26,6,20],individu:[27,20,4],"function":15,properli:5,tracker:[21,22,16],form:[5,25,12,1],offer:[17,12,13],forc:[8,2,23,19],basic:[],continu:24,sigstop:[27,20],satur:27,measur:5,newer:[12,22],don:[27,20,7],line:[26,21],bug:[21,22,16,7],faster:[10,12,13],info:[8,15,27,19,3,26,20],commun:1,made:[17,21,0,14,13],furthermor:[21,1],consist:[12,1],possibl:[0,22,27,21,12,13,14,15,7],"default":[8,20,23,19,25,2,3,4,5,15,27],bucket:[9,23,1,2,12,3,5,15,27,7],displai:7,tell:[5,25,27],asynchron:21,authfil:[8,20,1,23,19,2,3,15,27],below:[12,13],limit:[17,0,27,10,1,26,12,7,5,6,20,13],unnot:12,problem:[8,17,0,16,21,1,25,12,7,5,14,13],similar:27,significantli:[5,22,1],featur:[17,9,0,21,1,12,13],creat:[17,0,20,23,10,25,2,12,7,5,21,15,27,13],classic:[],retriev:[14,12,27,20,4],dure:[15,20,12,27],day_hour:[5,25],stabl:21,s3qlctrl:[26,9,14,18,13],strongli:[5,25],workaround:14,decreas:4,file:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,27],mtime:7,request:12,exist:[17,0,23,10,1,25,2,12,5,13],improv:[5,9,14,4],mybucket:14,check:[8,9,22,27,19,12,15,7],probabl:[21,25,5,14,15,13],otherwis:[27,20],again:[0,12,7,13,24],readi:12,relatim:7,umask:27,googl:[8,9,0,22,17,11,23,10,25,12,21,3,4,26,6,20],sequenti:[8,19],when:[8,0,20,19,27,21,1,25,12,7,3,4,5,14,15,13],detail:[5,14,12,7],prepend:12,field:[],other:[17,0,22,27,10,21,12,16,26,6,20,13],futur:[17,0,10,13,26,6,7],rememb:[],test:[21,22],you:[17,0,20,22,19,11,23,16,10,24,1,25,2,12,7,5,14,15,27,13],shrink:21,rid:[0,13],particular:1,variabl:22,intend:[],clean:[8,19],fulli:7,mountpoint:[27,24,12,26,6,14,20,13],"return":[8,17,0,11,23,10,24,25,3,4,26,6,20,7],fsck:[8,9,18,19,27,1,12,15],briefli:[],releas:21,track:[5,25],log:[8,20,19,27,1,12,3,26,15,13],consid:[12,16,1],sql:24,noleaf:7,dd_hh:[5,25],pool:[],stai:[27,20],reduc:[5,12],infrequ:1,longer:[21,0,24,25,13,5,15,7],algorithm:[5,9,21,20,27],vice:[17,13],home:[5,14,12],reliabl:[9,12,1],descript:[8,17,0,11,23,10,25,3,4,26,6,14,20,27],save:[25,14,21,1],rule:14,sftp:[9,12],depth:[],ignor:[],back:[0,13],time:[8,0,20,19,23,21,1,25,2,12,7,3,5,14,15,27,13],backward:[],s3qladm:[9,15,18,3],daili:[]},objtypes:{},titles:["The <strong class=\"program\">s3qllock</strong> command","General Information","File System Creation","The <strong class=\"program\">s3qladm</strong> command","The <strong class=\"program\">pcp</strong> command","Contributed Programs","The <strong class=\"program\">s3qlstat</strong> command","Known Issues","The <strong class=\"program\">fsck.s3ql</strong> command","S3QL User’s Guide","The <strong class=\"program\">s3qlrm</strong> command","The <strong class=\"program\">umount.s3ql</strong> command","Storage Backends","Advanced S3QL Features","Tips & Tricks","Managing Buckets","Further Resources / Getting Help","The <strong class=\"program\">s3qlcp</strong> command","Manpages","Checking for Errors","The <strong class=\"program\">mount.s3ql</strong> command","About S3QL","Installation","The <strong class=\"program\">mkfs.s3ql</strong> command","Unmounting","The <strong class=\"program\">expire_backups</strong> command","The <strong class=\"program\">s3qlctrl</strong> command","Mounting"],objnames:{},filenames:["man/lock","general","mkfs","man/adm","man/pcp","contrib","man/stat","issues","man/fsck","index","man/rm","man/umount","backends","special","tips","adm","resources","man/cp","man/index","fsck","man/mount","about","installation","man/mkfs","umount","man/expire_backups","man/ctrl","mount"]})
\ No newline at end of file +Search.setIndex({objects:{},terms:{all:[0,1,2,3,5,7,8,11,12,13,14,15,17,19,20,21,22,23,24,25,26,27],code:[8,17,0,22,11,23,10,25,21,3,4,26,6,20],partial:12,global:[],mnt:[5,14,27],month:[5,25],prefix:[12,1],stumbl:13,notquitesecret:1,follow:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,19,20,22,23,24,25,26,27],disk:[14,21],intrins:14,locat:[8,17,0,11,23,10,1,3,26,6,20,7],whose:12,decid:[14,1],middl:13,depend:[8,9,22,23,1,25,3,5,14,20,27],system:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,27],ulimit:[27,20],readabl:21,specif:[0,22,1,12,13,26,15,7],send:16,init:[27,13],program:[0,2,3,4,5,6,7,8,9,10,11,13,15,17,19,20,22,23,24,25,26,27],present:12,under:[12,22],aris:12,sha256:21,neglig:[],worth:13,introduc:[17,7],sourc:[17,21,22,4,5,7],everi:[17,0,27,1,25,12,5,14,7],risk:[],far:14,faq:16,account:[20,12,27],util:[14,19],volum:27,failur:1,veri:[21,12,13],appar:12,documents_januari:[17,7],administr:[0,7],level:[26,7],did:21,list:[21,22,25,26,12,7,5,15,16],upload:[21,11,27,24,26,12,13,5,14,20,7],"try":[5,25,12,22,1],stderr:27,small:[14,13],refer:[18,1],servic:[21,12,1],dir:[17,27],pleas:[21,16],upper:12,smaller:[14,21,13],slower:[17,27,7],ifac:27,ten:12,compens:1,sync:4,sign:12,consequ:1,hors:[0,7],design:[0,21,7,1],pass:[27,4],download:[15,22,3],further:[9,15,16],correspond:12,port:12,rath:27,even:[8,0,11,24,1,12,19,7],what:[5,25,15,26,1],bzip2:[21,20,27],sub:13,descriptor:[27,20],preserv:[5,21],section:[12,1],abl:[0,11,24,1,12,7,16],invok:[26,15],asia:[],anywai:[],access:[21,20,27,1,12,15,13],delet:[9,0,10,25,12,7,3,5,15,13],version:[8,17,0,20,22,11,23,10,24,19,25,2,12,21,3,4,26,6,15,27,13],suspect:19,consecut:12,"new":[8,0,20,23,1,25,26,12,7,5,15,27,13],net:27,ever:1,"public":[],contrast:[0,7],metadata:[9,20,27,3,26,14,15,7],elimin:12,full:[8,17,0,11,23,10,26,21,3,5,6,20,27,7],themselv:1,pacif:[],gener:[9,0,22,1,25,12,7,5,15,13],never:[],privat:[],here:[26,12,18],satisfi:22,slow:13,modif:13,address:13,path:[8,20,22,23,19,2,12,3,15,27],becom:[5,25,14,12,1],modifi:[17,21,7],sinc:[27,1,25,12,5,13],valu:[27,20,13,1],wait:[11,14,27,24,13],dry:25,convert:12,joes_bucket:[],checksum:21,larger:27,host:[],loos:[12,1],amount:[26,14,12,21],throughput:[],shrink:21,action:[26,15,7,3],implement:1,magnitud:[17,7],chanc:13,control:7,configur:[9,27,7],retriev:[14,12,27,20,4],appli:[14,12,1],modul:[8,20,1,23,19,2,3,26,22,15,27],apw:22,expect:[27,12,1],filenam:14,unix:[14,21,13],leav:13,visibl:12,instal:[8,9,0,20,18,22,17,11,23,10,26,3,5,6,15],total:[27,7,13],establish:1,kei:[21,12],from:[8,17,0,20,22,19,23,21,1,25,2,12,3,4,5,14,15,27,7],describ:[12,1],would:[17,1,25,12,5,7],apswvers:22,upgrad:[9,15,22,3],few:[5,12,22],concret:1,call:[17,0,27,10,1,25,26,12,5,6,14,20,7],usr:[8,17,0,11,23,10,26,3,5,6,20],recommend:[5,27,12,13,1],taken:[17,21,20,27,7],suppos:12,type:[],until:[11,27,7,13,24],more:[21,22,1,13,4,26,7],sort:[5,25],desir:26,st_nlink:13,comparison:[],peopl:[],hundr:[],relat:12,benchmark:[5,9,27],deflat:21,notic:[14,12],enhanc:5,warn:[26,10,15,7,1],sqlitelibvers:22,depth:[],sens:14,known:[9,21,13],actual:[15,14,12,22,13],hold:[12,1],unpack:22,cach:[8,9,21,20,23,19,2,13,3,26,15,27,7],must:[17,15,12,7,3],worst:[0,7],none:[8,20,1,27,19,3,15],word:[],restor:[17,9,14,15,7],setup:22,work:[21,22,24,25,5,14,13],uniqu:1,conceptu:21,remain:27,wors:12,obvious:27,can:[0,1,2,3,5,6,7,8,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],root:[17,0,11,27,10,24,26,6,20,7],fetch:[17,7],overrid:12,prompt:[8,19],tar:14,give:[5,25,14,15],process:[11,27,24,12,4,5,14,20,13],lock:[0,7],sudo:22,share:[8,17,0,11,23,10,26,3,5,6,20],accept:[8,17,0,20,19,11,23,10,24,1,25,2,3,4,26,6,15,27],high:[21,20,27,4],critic:21,minimum:[14,21],want:[11,27,24,25,5,14,16],onlin:[0,12,21,7],acl:21,occur:[8,17,0,11,23,10,1,25,3,4,26,6,20],alwai:[17,27,25,13,5,7],algorithm:[5,9,21,20,27],end:[27,15],manipul:21,thing:[15,3],rather:[25,12,13,5,14,7],anoth:[13,1],ordinari:[17,11,24,7],write:[8,9,21,20,22,17,27,19,12,7,3,5,14,15,13],how:[5,25,14],env:27,instead:[17,11,24,1,12,13,7],simpl:[5,25,7],confid:[],product:[],resourc:[9,15,16],max:[27,20],earlier:[22,13,1],pyliblzma:22,duplic:[17,21,1,12,5,7],badli:[15,3],wrong:[15,13,3],endang:21,mai:[17,0,20,22,27,16,21,24,1,26,12,7,3,5,14,15,13],multipl:[8,15,23,19,2,3,20,27],redund:[5,25,21,12],autom:[5,21],data:[8,17,21,20,19,11,23,27,24,1,2,12,7,3,5,14,15,26,13],grow:[21,27],physic:[5,17,0,15,7],man:[18,13],handl:[17,21,27,25,12,13,5,14,7],"short":[0,12,7],attempt:[8,27,13,1],practic:[14,12],third:14,read:[8,17,21,20,19,23,1,2,12,7,3,14,15,27,13],neitheristhi:1,minim:21,favorit:[],apsw:22,element:27,issu:[17,9,0,22,27,16,10,21,12,7,26,6,13],inform:[9,27,1,25,26,20,7],maintain:27,combin:[14,12,27,1],allow:[17,0,20,27,10,25,26,12,4,5,6,14,15,7],enter:[2,23],exclus:14,pycryptopp:22,order:[17,7,1],talk:12,origin:[],help:[9,22,16,26,13,3,5,15,7],repair:8,over:[17,21,27,12,13,14,20,7],move:[21,15,1],soon:[],topsecret:[],report:[21,22,16,1],affect:[17,27,7,13,1],eventu:12,effici:13,still:[17,21,11,27,24,1,12,7],dynam:21,paramet:1,fix:[0,25,12,13,5,7],inadvert:[17,7],better:[27,22,4],window:12,renumb:[8,19],requir:[8,21,1,27,19,25,26,5,22,20,13],persist:1,mail:[21,15,22,16],main:[10,7],might:[17,0,27,16,10,19,13,26,6,7],split:21,tri:[15,13],them:[17,11,24,1,12,15,7],good:[0,25,13,5,14,7],synopsi:[8,17,0,11,23,10,25,3,4,26,6,20],thei:[17,0,18,21,25,12,5,14,7],python:[27,22,1],promin:13,safe:[17,14,7],fuse4bsd:22,dai:[5,25],initi:[],dat:[5,25],instanc:14,automat:[5,9,27,12,15],therebi:12,verifi:[12,13],interrupt:15,now:[0,22,25,12,5,7],bigger:[],choic:22,term:[5,25,1],document:[8,17,0,11,23,10,3,26,6,20,7],somewher:[8,17,0,11,23,10,3,26,6,20,7],name:[17,23,1,25,2,12,5,14,20,27,7],hardlink:[17,21,7],joesdomain:[],authent:[8,9,20,19,23,1,2,12,3,15,27],achiev:[5,17,21,27,7],mode:[27,20],each:[5,25,27,20,1],debug:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],found:[14,1],beneath:7,updat:[5,21,12,13],side:1,mean:[21,12,13],compil:27,s3ql:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],mkfifo:27,chunk:13,hard:[14,21],idea:[5,25,0,7,13],procedur:[17,7],realli:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,14,15,27,13],ensur:[5,25,14,21],meta:[26,14,7],significantli:[5,22,1],year:[5,25,21,12],s3_copi:[5,9],happen:[0,12,7,1],todo:[],special:[17,7],out:[21,12,13],lzma:[21,20,22,27],ftp:[],shown:12,network:[17,14,27,21,7],space:[17,21,7,13],miss:[25,1],newli:13,rational:0,content:[17,21,27,0,1,3,7],suitabl:[21,22],rel:[12,4],internet:[21,27],print:[8,17,0,20,22,11,23,10,24,19,25,2,3,4,26,6,15,27],current:[5,15,12,25,13],eth0:27,bla:27,correct:[5,25],statist:[6,7,9],foreground:[27,20],shut:[5,11,24,13],after:[17,0,21,1,12,14,15,7],insid:17,advanc:[9,7],migrat:5,documents_janurai:[],million:13,situat:[14,13],differ:[17,21,22,27,1,26,3,5,14,15,7],free:[21,12],standard:[5,25,21,12,27],inod:[8,13,19],reason:[10,27,24,1,25,12,13,5,14,19,7],base:27,theori:[12,13],ask:[22,23,2,12,15,13],org:27,"byte":[],likelihood:12,afterward:14,bash:14,care:[17,21,7,13],her:[0,7],thread:[5,27,20],befor:[17,21,11,27,24,1,12,13,7],guarante:[5,25,12],could:[17,7],refus:[5,25],keep:[0,27,1,25,5,7],recov:[0,7],turn:[5,25,27,13],length:12,fuse:[27,13],place:[27,12],perman:[9,0,27,12,14,7],url:[8,20,19,23,1,2,12,3,15,27],principl:27,confus:13,neglect:1,first:[21,22,27,1,12,14,15,13],oper:[8,17,0,20,11,23,10,1,25,21,3,4,26,6,15,27],softwar:27,rang:[5,25],directli:12,malici:[0,7],carri:21,onc:[0,11,27,21,24,12,13,14,20,7],clariti:[],s3q:[],number:[21,22,27,25,13,4,5,14,20,7],capac:21,restrict:[26,27,20],date:[5,25],instruct:[27,22],alreadi:[17,22,7,13],done:[27,12],least:[22,27,25,12,5,20],llfuse:22,indistinguish:21,open:[11,27,24,13],s3c:12,size:[21,23,2,13,26,14,20,27,7],given:13,"long":[5,25,14,13,1],convent:[8,17,0,11,23,10,3,26,6,20,13],script:[5,14,27,13],unknown:21,interact:3,s3qllock:[9,0,18,10,5,14,7],sometim:15,wrapper:[5,4],parallel:[9,27,4,5,14,20],checkpoint:1,attack:[0,7,13],necessarili:12,demonstr:5,s3qlrm:[9,0,18,10,25,5,7],termin:[11,24,13,1],john:12,"final":7,store:[8,9,21,20,19,23,1,25,2,12,3,5,14,15,27,13],includ:[22,21,12,18,13],servi:13,luckili:13,consol:12,option:[0,2,3,4,5,6,7,8,10,11,13,14,15,17,19,20,22,23,24,25,26,27],especi:[14,21],shelf:[0,7],tool:12,copi:[17,9,21,1,13,4,5,14,15,7],specifi:[8,20,19,23,27,1,25,2,12,3,5,15,26,13],part:[21,27,1,25,4,5],pars:1,mostli:[],consult:[8,23,20,3],exactli:[5,17,25,7],than:[10,27,1,25,13,5,14,7],wide:[27,22],target:[8,17,20,27,19,3,14,15,7],whenev:[14,22,27,1],prevent:[2,0,23,7],remov:[17,9,0,22,27,10,25,26,7,5,6,13],older:15,tree:[17,9,0,10,4,5,21,7],second:[27,1,25,12,5,14,20],structur:[21,15],matter:[26,14,15],optimum:14,num:[27,20],friend:14,histor:1,video:27,minut:[5,25],pre:27,unencrypt:[2,23],sai:[17,7],comput:[5,25,21,27],entail:[],close:[11,24],plaintext:[],explicit:14,ram:27,mind:1,argument:[26,15,3],peculiar:12,"13th":21,packag:[5,22],wai:[0,27,21,1,12,13,14,7],properli:5,expir:27,increment:[],disadvantag:[17,7],need:[17,20,22,27,1,25,12,5,15,7],seem:14,exclud:[0,7],paramiko:[],caus:[12,1],equival:[5,25],irrepar:15,destroi:[0,7],moreov:7,blindli:13,atim:13,accuraci:[5,25],note:[17,9,21,22,11,27,24,25,12,7,4,5,14,15,13],also:[8,17,0,18,11,23,10,24,1,25,26,12,21,3,4,5,6,14,20,27,7],builtin:22,denomin:12,take:[17,21,13,3,26,14,15,7],which:[17,10,22,21,1,25,12,13,5,7],discrep:[],transmit:[],environ:22,zlib:[27,20],uplink:5,singl:[14,20,27],mktemp:27,begin:1,sure:[20,22,27,12,14,15,13],unless:[2,0,23,7],distribut:[5,27,22],plenti:[],normal:[27,20,1],buffer:13,who:[11,27,20,24],compress:[9,21,27,5,20,7],most:[8,17,20,19,27,1,25,12,7,3,5,15,13],beta:21,detect:[21,12,1],rigor:[5,25],plan:[],homepag:[8,17,0,11,23,10,3,26,6,20],"class":[8,17,0,11,23,10,25,26,3,4,5,6,20],relatim:13,simplic:21,renam:21,inconveni:21,ship:[25,27,22,4],filesystem:[27,19,2,14,20,23],authfil:[8,20,1,23,19,2,3,15,27],doc:[8,17,0,11,23,10,26,3,5,6,20],clear:[17,15,7],later:[17,0,22,1,12,13,7],cover:14,drive:[0,7],destruct:[0,7],doe:[21,27,24,1,12,13],declar:21,snapshot:[17,9,21,26,7],runtim:[9,7],determin:[5,27,1],occasion:12,left:13,hmac:21,gracefulli:[5,25],myawssecretaccesskei:[],show:25,carefulli:1,random:[],syntax:[27,19,2,26,15,7],permiss:[5,21,20,27],bucketnam:12,newest:[14,3],find:[0,12,27,7,13],rotat:[8,15,27,19,3,20],redirect:27,absolut:[5,25,12],onli:[17,25,0,20,22,11,27,10,24,21,26,12,7,4,5,6,14,15,13],explicitli:13,ratio:27,just:[8,17,0,20,11,23,10,24,19,25,2,12,3,4,26,6,14,15,27,7],transact:21,fstab:[27,13],activ:[8,17,0,20,19,11,23,10,24,1,25,2,12,3,4,26,6,15,27,7],enough:[14,20,27,13],start:[8,22,27,1,12,4,5,14,19],haven:[],authinfo:[],latenc:[14,21,4],tape:[0,7],rich:12,factor:[5,12],folder:[17,22,7],local:[8,9,0,22,17,11,23,10,12,21,3,26,6,14,20,27],defin:[5,25,27,1],keyr:[],contribut:[5,9],variou:[26,15,3],get:[8,9,0,20,22,19,23,27,1,25,2,16,3,5,15,26,7],googlegroup:16,nasti:[0,7],stop:27,secondari:[],regularli:[17,7],ssl:13,s3rr:[],cannot:[5,25],ssh:[9,14,12],increas:[14,20,27],reconstruct:[5,25,1],restart:[27,13],myawsaccesskeyid:[],quiet:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],reveal:21,enabl:[],dramat:14,"19283712_yourname_s3ql":[],method:[27,22],provid:[21,22,27,1,12,13],bad:14,continu:24,common:[17,0,12,7],contain:[22,27,25,3,5,15],userspac:[],nowher:[],where:[26,15,13,3,1],caches:[26,27,20,7],wiki:[22,16],kernel:22,set:[5,14,20,27],noleaf:13,bucket1:1,bucket3:1,bucket2:1,startup:27,displai:13,see:[8,17,0,20,11,23,10,1,25,26,12,7,3,4,5,6,14,15,27,13],temporarili:27,s3qlcp:[5,9,17,18,7],fail:[12,22,13],led:1,becaus:[17,21,27,1,12,5,7],whatsoev:[0,21,7],best:[14,12,22,27],concern:1,infinit:21,awar:1,statu:[8,9,0,17,11,23,10,25,12,21,3,4,26,6,20,13],said:[],extend:21,correctli:[13,19],hopefulli:13,databas:21,boundari:[5,25],label:[2,23],favor:21,state:[5,25,21,13],between:[5,25,27,20],"import":[5,22,1],neither:[0,7],param:15,across:21,speed:[5,27],attribut:21,amazon:[9,21,1,12,5,13],august:[],manpag:[9,18],weak:[],inconsist:13,southeast:[],job:[5,27],entir:[21,0,10,7],joe:[5,1],expire_backup:[5,9,18,25],solv:14,come:[5,14,21],local0:27,addit:[17,10,27,21,1,3,26,15,7],both:[17,21,22,7,1],protect:[0,21,7],accident:[2,0,23,7,13],last:1,irregular:[5,25],extens:21,someth:[17,7],region:[5,12],anyth:[],alon:1,lazi:[11,24],against:[0,21,7],configpars:1,etc:[17,27,7,13],cachedir:[8,15,23,19,2,3,20,27],exec:27,freeli:27,corrupt:1,com:[8,17,0,22,11,23,10,25,3,4,26,6,14,20,16],pcp:[5,9,14,18,4],load:27,simpli:[0,7],figur:1,inspir:[17,7],buti:[],period:[0,7],insist:14,batch:[8,27,19],written:[21,20,27,1],littl:[27,12,22],shutdown:27,linux:[27,22],averag:12,typic:[17,7],guid:[8,9,18,23,3,20],assum:27,damag:[5,25,15,1],quit:22,worthless:[0,7],strong:[8,17,0,11,23,10,25,3,4,26,6,20],west:[],devic:27,due:[12,13],been:[0,19,11,27,21,24,1,25,12,7,5,14,15,13],mark:[8,19],compon:21,secret:12,much:4,interpret:27,interest:7,subscrib:16,monthli:[17,7],immedi:[10,11,27,24,12,7],strategi:[5,25],legaci:12,infect:[0,7],upstart:[5,27,20],great:[0,7],ani:[8,17,0,22,23,21,1,25,2,12,16,5,7],zero:14,understand:[27,20],togeth:1,input:[8,19],s3qlstat:[6,18,7,13,9],those:12,"case":[17,0,22,21,1,25,5,14,15,7],replic:[5,17,21,7],trojan:[0,7],ident:[17,21,7,1],look:14,gnu:13,solid:21,plain:[2,23],mount:[17,9,0,20,18,11,27,10,24,1,26,12,7,3,5,6,14,15,13],bill:1,sourceforg:[],trick:[9,14],documents_februari:[17,7],weren:16,abov:[5,25,1],error:[8,9,0,20,17,11,23,10,1,25,21,3,4,26,6,19,13],login:[12,1],invoc:[5,25],ahax:4,howev:[17,0,27,21,25,12,13,5,14,7],jibbadup:[],bin:[14,22],argpars:22,have:[17,0,20,22,11,23,16,21,24,1,25,2,12,7,4,5,14,15,27,13],advantag:[5,25,0,7],stdout:27,almost:14,therefor:[5,27,12,13,1],remount:12,worri:13,destin:[17,14,7,4],exit:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],gsutil:[],conf:[5,9],incom:[],revis:[15,3],dedic:[27,13],sever:[21,22,27,1,12,4,5,14,20],tamper:[5,25],unmount:[9,11,27,24,1,12,5,14,19,13],develop:[9,21,12],author:[27,13],perform:[9,21,22,27,1,26,12,3,4,5,14,15,13],media:12,make:[17,0,20,22,27,21,1,25,12,13,5,14,15,7],flushcach:[26,7],header:1,same:[17,27,1,25,12,5,14,15,7],"while":[0,22,27,21,24,12,26,7],dest:17,html:[],unexpectedli:13,nikolau:27,auto:[27,20],pai:12,"__version__":22,infer:[5,25],complet:[17,22,27,1,25,26,12,5,20,7],week:[5,25],geograph:12,archiv:[21,12],hostnam:12,closest:12,lie:17,optim:27,swordfish:1,confidenti:[],upon:13,effect:[17,21,7,1],solut:5,remot:[14,12,21],rais:[27,20],temporari:12,user:[8,9,0,18,22,17,11,23,10,24,19,12,21,3,26,6,14,20,27,7],mani:[5,25,21,1],extern:[0,12,7],encrypt:[21,27,1,2,3,23],tradition:[0,7],recent:[5,25,27,15,13],gss:12,appropri:27,kept:[8,15,27,19,3,20],eleg:21,nevertheless:[5,1],entri:[27,20,13,1],thu:1,irrelev:13,well:[0,20,27,10,1,25,5,15,7],object:[20,12,27],without:[8,17,0,21,19,12,13,14,15,7],exampl:[21,1,25,13,5,14,7],command:[0,1,2,3,4,5,6,7,8,9,10,11,13,15,17,18,19,20,22,23,24,25,26,27],thi:[0,1,2,3,4,5,6,7,8,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27],choos:[],gzip:21,credenti:[8,20,1,23,19,2,3,15,27],spend:14,usual:27,compromis:14,identifi:[12,1],execut:[5,15,22,7],less:[13,1],conform:21,when:[8,0,20,19,27,21,1,25,12,7,3,4,5,14,15,13],obtain:[],rest:14,detail:[5,14,12,13],bandwidth:[5,21],touch:[17,7],openstack:21,passphras:[9,15,3,1],roughli:27,runlevel:27,yet:[12,13],web:12,viru:[0,7],detach:[11,24],homedir:[],easi:14,hint:[26,15,3],point:[21,11,27,1,12,20],had:[5,17,25,7],except:1,theoret:14,add:[0,7],other:[17,0,22,27,10,21,12,16,26,6,20,7],nor:[0,7],versa:[17,7],els:15,logger:27,subsequ:[5,25,12],match:12,futur:[17,0,10,13,26,6,7],earli:13,applic:[13,1],transpar:21,webpag:12,big:[14,13],ctime:13,fast:[9,21,27,7],traffic:12,know:[5,17,25,7,13],background:[11,24],amp:14,bit:21,password:[2,23,12,1],recurs:[5,9,10,7],you:[17,0,20,22,19,11,23,16,10,24,1,25,2,12,7,5,14,15,27,13],like:[17,0,27,21,12,13,4,20,7],loss:[12,1],daemon:[27,20],lost:[12,1],success:[],whitespac:[],should:[8,17,0,20,22,19,11,23,10,24,1,7,3,26,6,14,15,27,13],arbitrari:[14,12],manual:[11,22,24,16],resolv:[12,16],noth:[0,7],princip:13,necessari:15,either:[12,13,3,26,15,7],furthermor:[21,1],output:[8,17,0,20,11,23,10,24,19,25,2,3,4,26,6,15,27],"function":15,per:27,page:18,two:[17,21,15,22,7],yyyi:[5,25],imagin:[5,25,0,7],right:14,old:[8,0,20,22,27,19,25,12,3,5,15,7],often:[14,1],deal:[],interv:[5,25,14,20,27],compat:[9,12,13],some:[8,17,0,20,22,11,23,10,24,1,25,26,12,21,3,4,5,6,19,13],umount:[9,18,11,27,24,13],self:22,strongest:[],"export":[27,20,13],flush:[27,7],home:[5,14,12],server:[14,12,13],librari:[22,13],basic:[],rsync:[17,0,13,4,5,14,7],confirm:[10,7],stronger:12,freebsd:22,avoid:[5,25],though:[27,12,1],definit:[5,25],februari:[17,7],protocol:1,backward:[],usernam:1,equal:27,larg:[17,14,7,13],slash:12,backend:[8,9,17,11,23,24,1,12,7,3,26,14,20,27,13],blocksiz:[2,23,20,27],machin:[],core:[5,27],plu:1,previou:[5,15,12],run:[0,20,22,19,27,1,25,26,13,3,5,15,7],power:5,certif:[12,13],reach:[8,15,27,19,3,20],view:18,usag:[5,17,27,25,7],symlink:21,speak:27,step:5,unreason:13,although:[21,10,7,13],januari:[17,7],bi23ll:1,immut:[9,0,10,5,21,14,7],impos:[],stage:[],sshf:[14,12],src:[17,7],about:[9,21,27,13,6,14,7],rare:[],proce:22,memori:27,http:[8,17,0,22,11,23,10,25,12,3,4,26,6,20],storebackup:[17,7],unfortun:[14,12,13],east:[],messag:[8,15,23,19,2,3,20,27],fals:[27,20],commit:[24,13],backup:[17,9,0,27,21,1,25,12,3,5,14,15,7],disabl:[8,15,27,19,3,20],block:[21,11,23,24,1,2,13,26,27,7],ll23bi:1,client:13,real:12,encount:[16,13],xyz:[],within:[7,1],encod:27,terminolog:[9,1],three:[27,12,22],down:[5,11,24,13],ahv:14,authinfo2:[8,15,23,19,2,3,20,27],contrib:[5,14,27],chang:[17,9,0,27,21,12,7,3,26,15,13],insuffici:13,storag:[8,9,0,20,19,17,11,23,21,24,1,2,12,7,3,5,14,15,27,13],your:[8,17,0,18,22,11,23,10,25,26,12,3,5,6,14,20,27,7],durabl:1,manag:[9,12,15],mkf:[8,2,23,18,9],stricli:[8,19],fusermount:[11,24,13],prepar:26,suffici:1,transfer:[5,14,21],support:[17,21,27,12,13,20,7],question:16,s3_backup:[5,9],overwrit:[2,23],avail:[8,0,20,23,25,12,7,3,5,15,27,13],intellig:[5,25,21],reli:[13,1],trigger:[12,7],low:[21,12],lot:14,"var":12,succeed:[8,17,0,11,23,10,25,3,4,26,6,20],individu:[27,20,4],lowest:12,creation:[2,23,9],tracker:[21,22,16],form:[5,25,12,1],offer:[17,12,7],forc:[8,2,23,19],regard:[17,7],"24h":[27,20],sigstop:[27,20],satur:27,measur:5,newer:[12,22],don:[27,20,13],line:[26,21],bug:[21,22,16,13],longer:[21,0,24,25,13,5,15,7],info:[8,15,27,19,3,26,20],commun:1,made:[17,21,0,14,7],cif:27,consist:[12,1],possibl:[0,22,27,21,12,13,14,15,7],"default":[8,20,23,19,25,2,3,4,5,15,27],bucket:[9,23,1,2,12,3,5,15,27,13],maximum:[5,2,23,20,27],tell:[5,25,27],asynchron:21,independ:[21,20,27],below:[12,7],limit:[17,0,27,10,1,26,12,7,5,6,20,13],unnot:12,problem:[8,17,0,16,21,1,25,12,7,5,14,13],similar:27,reliabl:[9,12,1],connect:[14,12,27,21],featur:[17,9,0,21,1,12,7],creat:[17,0,20,23,10,25,2,12,7,5,21,15,27,13],classic:[],certain:[],dure:[15,20,12,27],day_hour:[5,25],stabl:21,s3qlctrl:[26,9,14,18,7],strongli:[5,25],workaround:14,decreas:4,file:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19,20,21,23,24,25,26,27],mtime:13,request:12,exist:[17,0,23,10,1,25,2,12,5,7],improv:[5,9,14,4],mybucket:14,check:[8,9,22,27,19,12,15,13],probabl:[21,25,5,14,15,7],otherwis:[27,20],again:[0,12,7,13,24],readi:12,rsync_arg:14,umask:27,googl:[8,9,0,22,17,11,23,10,25,12,21,3,4,26,6,20],sequenti:[8,19],tip:[9,14],exception:[],prepend:12,field:[],valid:[12,7],creep:21,rememb:[],test:[21,22],presum:1,thousand:[27,12,13],rid:[0,7],particular:1,variabl:22,intend:[],clean:[8,19],fulli:13,mountpoint:[27,24,12,26,6,14,20,7],"return":[8,17,0,11,23,10,24,25,3,4,26,6,20,13],fsck:[8,9,18,19,27,1,12,15],briefli:[],releas:21,track:[5,25],log:[8,20,19,27,1,12,3,26,15,7],consid:[12,16,1],sql:24,decrypt:1,log_fifo:27,dd_hh:[5,25],pool:[],stai:[27,20],reduc:[5,12],infrequ:1,back:[0,7],faster:[10,12,7],pycrypto:22,vice:[17,7],directori:[0,1,2,3,4,5,7,8,10,11,12,13,14,15,17,19,20,21,22,23,25,27],cycl:[5,25],descript:[8,17,0,11,23,10,25,3,4,26,6,14,20,27],save:[25,14,21,1],rule:14,sftp:[9,12],itself:[12,22,13,1],ignor:[],potenti:12,time:[8,0,20,19,23,21,1,25,2,12,7,3,5,14,15,27,13],profil:[27,20],s3qladm:[9,15,18,3],daili:[]},objtypes:{},titles:["The <strong class=\"program\">s3qllock</strong> command","General Information","File System Creation","The <strong class=\"program\">s3qladm</strong> command","The <strong class=\"program\">pcp</strong> command","Contributed Programs","The <strong class=\"program\">s3qlstat</strong> command","Advanced S3QL Features","The <strong class=\"program\">fsck.s3ql</strong> command","S3QL User’s Guide","The <strong class=\"program\">s3qlrm</strong> command","The <strong class=\"program\">umount.s3ql</strong> command","Storage Backends","Known Issues","Tips & Tricks","Managing Buckets","Further Resources / Getting Help","The <strong class=\"program\">s3qlcp</strong> command","Manpages","Checking for Errors","The <strong class=\"program\">mount.s3ql</strong> command","About S3QL","Installation","The <strong class=\"program\">mkfs.s3ql</strong> command","Unmounting","The <strong class=\"program\">expire_backups</strong> command","The <strong class=\"program\">s3qlctrl</strong> command","Mounting"],objnames:{},filenames:["man/lock","general","mkfs","man/adm","man/pcp","contrib","man/stat","special","man/fsck","index","man/rm","man/umount","backends","issues","tips","adm","resources","man/cp","man/index","fsck","man/mount","about","installation","man/mkfs","umount","man/expire_backups","man/ctrl","mount"]})
\ No newline at end of file diff --git a/doc/html/special.html b/doc/html/special.html index afa9da0..eece38d 100644 --- a/doc/html/special.html +++ b/doc/html/special.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Advanced S3QL Features — S3QL v1.4 documentation</title> + <title>Advanced S3QL Features — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Unmounting" href="umount.html" /> <link rel="prev" title="Mounting" href="mount.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="mount.html" title="Mounting" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -263,7 +263,7 @@ been flushed.</td> <li class="right" > <a href="mount.html" title="Mounting" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/tips.html b/doc/html/tips.html index dfaeca4..6294e33 100644 --- a/doc/html/tips.html +++ b/doc/html/tips.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Tips & Tricks — S3QL v1.4 documentation</title> + <title>Tips & Tricks — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Known Issues" href="issues.html" /> <link rel="prev" title="Contributed Programs" href="contrib.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="contrib.html" title="Contributed Programs" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -187,7 +187,7 @@ details.</p> <li class="right" > <a href="contrib.html" title="Contributed Programs" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/html/umount.html b/doc/html/umount.html index b863e42..3312a48 100644 --- a/doc/html/umount.html +++ b/doc/html/umount.html @@ -7,13 +7,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Unmounting — S3QL v1.4 documentation</title> + <title>Unmounting — S3QL v1.5 documentation</title> <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.4', + VERSION: '1.5', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <link rel="author" title="About these documents" href="about.html" /> - <link rel="top" title="S3QL v1.4 documentation" href="index.html" /> + <link rel="top" title="S3QL v1.5 documentation" href="index.html" /> <link rel="next" title="Checking for Errors" href="fsck.html" /> <link rel="prev" title="Advanced S3QL Features" href="special.html" /> </head> @@ -37,7 +37,7 @@ <li class="right" > <a href="special.html" title="Advanced S3QL Features" accesskey="P">previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="sphinxsidebar"> @@ -143,7 +143,7 @@ upload data in the background for a while longer.</p> <li class="right" > <a href="special.html" title="Advanced S3QL Features" >previous</a> |</li> - <li><a href="index.html">S3QL v1.4 documentation</a> »</li> + <li><a href="index.html">S3QL v1.5 documentation</a> »</li> </ul> </div> <div class="footer"> diff --git a/doc/latex/manual.log b/doc/latex/manual.log index bb49d8b..9a8d62f 100644 --- a/doc/latex/manual.log +++ b/doc/latex/manual.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.10.1) 6 OCT 2011 11:14 +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.10.1) 20 OCT 2011 11:32 entering extended mode %&-line parsing enabled. **manual.tex @@ -973,7 +973,7 @@ rw/helvetic/uhvb8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/helvetic/uhvbo 8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/times/utmb8a.pfb></usr/share/t exmf-texlive/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/fonts/t ype1/urw/times/utmri8a.pfb> -Output written on manual.pdf (55 pages, 286943 bytes). +Output written on manual.pdf (55 pages, 286997 bytes). PDF statistics: 805 PDF objects out of 1000 (max. 8388607) 214 named destinations out of 1000 (max. 500000) diff --git a/doc/latex/manual.tex b/doc/latex/manual.tex index b0569ae..854c582 100644 --- a/doc/latex/manual.tex +++ b/doc/latex/manual.tex @@ -12,8 +12,8 @@ \title{S3QL Documentation} -\date{October 06, 2011} -\release{1.4} +\date{October 20, 2011} +\release{1.5} \author{Nikolaus Rath} \newcommand{\sphinxlogo}{} \renewcommand{\releasename}{Release} diff --git a/doc/man/fsck.s3ql.1 b/doc/man/fsck.s3ql.1 index 062849c..524b88d 100644 --- a/doc/man/fsck.s3ql.1 +++ b/doc/man/fsck.s3ql.1 @@ -1,4 +1,4 @@ -.TH "FSCK.S3QL" "1" "October 06, 2011" "1.4" "S3QL" +.TH "FSCK.S3QL" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME fsck.s3ql \- Check an S3QL file system for errors . diff --git a/doc/man/mkfs.s3ql.1 b/doc/man/mkfs.s3ql.1 index 84c6d63..9bd5e40 100644 --- a/doc/man/mkfs.s3ql.1 +++ b/doc/man/mkfs.s3ql.1 @@ -1,4 +1,4 @@ -.TH "MKFS.S3QL" "1" "October 06, 2011" "1.4" "S3QL" +.TH "MKFS.S3QL" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME mkfs.s3ql \- Create an S3QL file system . diff --git a/doc/man/mount.s3ql.1 b/doc/man/mount.s3ql.1 index 46fa2a7..c252fc4 100644 --- a/doc/man/mount.s3ql.1 +++ b/doc/man/mount.s3ql.1 @@ -1,4 +1,4 @@ -.TH "MOUNT.S3QL" "1" "October 06, 2011" "1.4" "S3QL" +.TH "MOUNT.S3QL" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME mount.s3ql \- Mount an S3QL file system . diff --git a/doc/man/s3qladm.1 b/doc/man/s3qladm.1 index 4033d8f..eaed4fc 100644 --- a/doc/man/s3qladm.1 +++ b/doc/man/s3qladm.1 @@ -1,4 +1,4 @@ -.TH "S3QLADM" "1" "October 06, 2011" "1.4" "S3QL" +.TH "S3QLADM" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME s3qladm \- Manage S3QL buckets . diff --git a/doc/man/s3qlcp.1 b/doc/man/s3qlcp.1 index a500c69..cf2b679 100644 --- a/doc/man/s3qlcp.1 +++ b/doc/man/s3qlcp.1 @@ -1,4 +1,4 @@ -.TH "S3QLCP" "1" "October 06, 2011" "1.4" "S3QL" +.TH "S3QLCP" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME s3qlcp \- Copy-on-write replication on S3QL file systems . diff --git a/doc/man/s3qlctrl.1 b/doc/man/s3qlctrl.1 index 806ced3..419fe0b 100644 --- a/doc/man/s3qlctrl.1 +++ b/doc/man/s3qlctrl.1 @@ -1,4 +1,4 @@ -.TH "S3QLCTRL" "1" "October 06, 2011" "1.4" "S3QL" +.TH "S3QLCTRL" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME s3qlctrl \- Control a mounted S3QL file system . diff --git a/doc/man/s3qllock.1 b/doc/man/s3qllock.1 index f6bebb0..e76f440 100644 --- a/doc/man/s3qllock.1 +++ b/doc/man/s3qllock.1 @@ -1,4 +1,4 @@ -.TH "S3QLLOCK" "1" "October 06, 2011" "1.4" "S3QL" +.TH "S3QLLOCK" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME s3qllock \- Make trees on an S3QL file system immutable . diff --git a/doc/man/s3qlrm.1 b/doc/man/s3qlrm.1 index eb02558..d3ca18c 100644 --- a/doc/man/s3qlrm.1 +++ b/doc/man/s3qlrm.1 @@ -1,4 +1,4 @@ -.TH "S3QLRM" "1" "October 06, 2011" "1.4" "S3QL" +.TH "S3QLRM" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME s3qlrm \- Fast tree removal on S3QL file systems . diff --git a/doc/man/s3qlstat.1 b/doc/man/s3qlstat.1 index 5edaf69..ec73909 100644 --- a/doc/man/s3qlstat.1 +++ b/doc/man/s3qlstat.1 @@ -1,4 +1,4 @@ -.TH "S3QLSTAT" "1" "October 06, 2011" "1.4" "S3QL" +.TH "S3QLSTAT" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME s3qlstat \- Gather S3QL file system statistics . diff --git a/doc/man/umount.s3ql.1 b/doc/man/umount.s3ql.1 index 50fab12..555d25f 100644 --- a/doc/man/umount.s3ql.1 +++ b/doc/man/umount.s3ql.1 @@ -1,4 +1,4 @@ -.TH "UMOUNT.S3QL" "1" "October 06, 2011" "1.4" "S3QL" +.TH "UMOUNT.S3QL" "1" "October 20, 2011" "1.5" "S3QL" .SH NAME umount.s3ql \- Unmount an S3QL file system . diff --git a/doc/manual.pdf b/doc/manual.pdf Binary files differindex 38686aa..b2c9e1b 100644 --- a/doc/manual.pdf +++ b/doc/manual.pdf diff --git a/src/s3ql.egg-info/PKG-INFO b/src/s3ql.egg-info/PKG-INFO index 82ca15c..4344ad8 100644 --- a/src/s3ql.egg-info/PKG-INFO +++ b/src/s3ql.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: s3ql -Version: 1.4 +Version: 1.5 Summary: a full-featured file system for online data storage Home-page: http://code.google.com/p/s3ql/ Author: Nikolaus Rath diff --git a/src/s3ql/__init__.py b/src/s3ql/__init__.py index 98f3b9c..dc141cd 100644 --- a/src/s3ql/__init__.py +++ b/src/s3ql/__init__.py @@ -12,5 +12,5 @@ __all__ = [ 'backends', 'cli', 'parse_args', 'block_cache', "common", 'daemonize 'database', 'fs', 'fsck', 'ordered_dict', 'VERSION', 'CURRENT_FS_REV' ] -VERSION = '1.4' +VERSION = '1.5' CURRENT_FS_REV = 13 diff --git a/src/s3ql/backends/common.py b/src/s3ql/backends/common.py index 630f7f9..e7ed5fc 100644 --- a/src/s3ql/backends/common.py +++ b/src/s3ql/backends/common.py @@ -67,8 +67,8 @@ def retry(fn): self.__class__.__name__, fn.__name__, exc) raise - log.info('%s.%s(*): trying again after %r exception:', - self.__class__.__name__, fn.__name__, exc) + log.info('Encountered %r exception, retrying call to %s.%s...', + exc, self.__class__.__name__, fn.__name__) time.sleep(interval) waited += interval diff --git a/src/s3ql/backends/s3.py b/src/s3ql/backends/s3.py index 0d0d232..efa1803 100644 --- a/src/s3ql/backends/s3.py +++ b/src/s3ql/backends/s3.py @@ -100,7 +100,7 @@ class Bucket(AbstractBucket): return True elif (isinstance(exc, IOError) and - exc.errno in (errno.EPIPE, errno.ECONNRESET)): + exc.errno in (errno.EPIPE, errno.ECONNRESET, errno.ETIMEDOUT)): return True return False @@ -144,7 +144,7 @@ class Bucket(AbstractBucket): log.error('list(): Timeout exceeded, re-raising %r exception', exc) raise - log.debug('list(): trying again after %r exception:', exc) + log.info('Encountered %r exception, retrying call to s3.Bucket.list()', exc) time.sleep(interval) waited += interval if interval < 20*60: @@ -192,7 +192,7 @@ class Bucket(AbstractBucket): elif el.tag == '{%s}Contents' % self.namespace: marker = el.findtext('{%s}Key' % self.namespace) - yield marker + yield marker[len(self.prefix):] root.clear() except GeneratorExit: diff --git a/src/s3ql/block_cache.py b/src/s3ql/block_cache.py index 6673f96..86658f2 100644 --- a/src/s3ql/block_cache.py +++ b/src/s3ql/block_cache.py @@ -706,6 +706,8 @@ class BlockCache(object): log.debug('remove(inode=%d, blockno=%d): waiting for transfer of ' 'object %d to complete', inode, blockno, obj_id) self.wait() + log.debug('remove(inode=%d, blockno=%d): deleting object %d', + inode, blockno, obj_id) self.db.execute('DELETE FROM objects WHERE id=?', (obj_id,)) with lock_released: if not self.removal_threads: diff --git a/src/s3ql/cli/mount.py b/src/s3ql/cli/mount.py index a9085b5..fac18dc 100644 --- a/src/s3ql/cli/mount.py +++ b/src/s3ql/cli/mount.py @@ -131,24 +131,31 @@ def main(args=None): else: llfuse.main(options.single) + # Re-raise if main loop terminated due to exception in other thread + # or during cleanup, but make sure we still unmount file system + # (so that Operations' destroy handler gets called) + if exc_info: + (tmp0, tmp1, tmp2) = exc_info + exc_info[:] = [] + raise tmp0, tmp1, tmp2 + log.info("FUSE main loop terminated.") except: - log.info("Caught exception in main loop, unmounting file system...") - - # Tell finally handler that there already is an exception - if not exc_info: - exc_info = sys.exc_info() - - # We do *not* unmount on exception. Why? E.g. if someone is mirroring the - # mountpoint, and it suddenly becomes empty, all the mirrored data will be - # deleted. However, it's crucial to still call llfuse.close, so that - # Operations.destroy() can flush the inode cache. - with llfuse.lock: - llfuse.close(unmount=False) - + # Tell finally handle not to raise any exceptions + exc_info[:] = sys.exc_info() + + # We do *not* free the mountpoint on exception. Why? E.g. if someone is + # mirroring the mountpoint, and it suddenly becomes empty, all the + # mirrored data will be deleted. However, it's crucial to still call + # llfuse.close, so that Operations.destroy() can flush the inode cache. + try: + with llfuse.lock: + llfuse.close(unmount=False) + except: + log.exception("Exception during cleanup:") raise - + # Terminate threads finally: log.debug("Waiting for background threads...") @@ -174,15 +181,9 @@ def main(args=None): log.info("Unmounting file system.") - # Re-raise if main loop terminated due to exception in other thread - # or during cleanup. but make sure we still unmount file system - # (so that Operations' destroy handler gets called) + # Re-raise if there's been an exception during cleanup + # (either in main thread or other thread) if exc_info: - try: - with llfuse.lock: - llfuse.close() - except: - log.exception("Exception during cleanup:") raise exc_info[0], exc_info[1], exc_info[2] # At this point, there should be no other threads left diff --git a/src/s3ql/fs.py b/src/s3ql/fs.py index 8a7cbf0..9f9139e 100644 --- a/src/s3ql/fs.py +++ b/src/s3ql/fs.py @@ -443,6 +443,8 @@ class Operations(llfuse.Operations): This method releases the global lock. ''' + + log.debug('_remove(%d, %s): start', id_p, name) timestamp = time.time() @@ -468,12 +470,15 @@ class Operations(llfuse.Operations): inode_p.ctime = timestamp if inode.refcount == 0 and id_ not in self.open_inodes: + log.debug('_remove(%d, %s): removing from cache', id_p, name) self.cache.remove(id_, 0, int(math.ceil(inode.size / self.blocksize))) # Since the inode is not open, it's not possible that new blocks # get created at this point and we can safely delete the inode self.db.execute('DELETE FROM ext_attributes WHERE inode=?', (id_,)) self.db.execute('DELETE FROM symlink_targets WHERE inode=?', (id_,)) del self.inodes[id_] + + log.debug('_remove(%d, %s): start', id_p, name) def symlink(self, id_p, name, target, ctx): mode = (stat.S_IFLNK | stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | diff --git a/src/s3ql/parse_args.py b/src/s3ql/parse_args.py index bc18d44..21bdc7a 100644 --- a/src/s3ql/parse_args.py +++ b/src/s3ql/parse_args.py @@ -216,14 +216,11 @@ class ArgumentParser(argparse.ArgumentParser): def storage_url_type(s): '''Validate and canonicalize storage url''' - + if not re.match(r'^([a-zA-Z0-9]+)://(.+)$', s): + raise argparse.ArgumentTypeError('%s is not a valid storage url.' % s) + if s.startswith('local://'): return 'local://%s' % os.path.abspath(s[len('local://'):]) - elif s.startswith('s3://') or s.startswith('s3rr://'): - return s - elif re.match(r'^([a-z]+)://([a-zA-Z0-9.-]+)(?::([0-9]+))?(/[a-zA-Z0-9./_-]+)$', - s): - return s - else: - msg = '%s is not a valid storage url.' % s - raise argparse.ArgumentTypeError(msg) + + return s + |