** See history_archived.txt for older version history. 4.0.0 - 2013-06-10 - Dustin Bolton ENHANCEMENT: Various user interface and layout improvements for usability and simplification. ENHANCEMENT: Re-organized Settings page. FEATURE: Backup profiles. ENHANCEMENT: Streamlined & simplified Restore / Migrate page. FEATURE: View text-based files within backup archives. Hover over backups on the Backups or Restore / Migrate page for additional options. FEATURE: Restore files from backup archives. Easily "roll back" files. FEATURE: ImportBuddy: Backup meta information now viewable from Step 1 by clicking the 'View Meta' button next to each backup listed. FEATURE: New setting to be notified if no new backups have occured in X number of days. FEATURE: Error Notification email "Test" link added for verifying email-sending functionality properly works on your server. FEATURE: Ability to delete local backup after manually sending to a remote destination. FEATURE: Ability to customize the "from" email address for any email notifications sent by BackupBuddy. ENHANCEMENT: ImportBuddy: Improved readability & look of database test results. Improved testing to help catch database permissions problems. ENHANCEMENT: View database exclusions based on profile on Server Information page. ENHANCEMENT: View file exclusions based on profile on Server Information page. FEATURE: Built-in tutorial/tour added to many pages for additional help in BOTH BackupBuddy AND ImportBuddy. Integrity check details now lists tables broken out in step details. Cleaned up integrity check data structure to be more extendable in future. Fixed framework not handling custom savepoint in item-specific names. Now tracking last backup finish time in data structure in addition to existing start time. Fixed housekeeping cron job not being runnable. ABSPATH now listed on Server Information page URLs and Paths section. Fixed Windows paths causing "Download" link not to show on backups page. Replacing colons in remote path when storing to Stash. (users with custom ports in URLs encountered error) Re-organized Settings page. Backup Statistics moved from backup listing to the Details section available by hovering a backup and selecting "View Details" under the "Status" column. Recent backups Status Details now shows common window shared with backups list. fileoptions no longer deleted due to merely old age. Only removed when corresponding backup is removed. Fixed database mass replace changing tabs whenever beginning. ImportBuddy: Added additional checking on Step 3 controller to verify DAT contents still exist in data structure. This detects an interupted restore process (ie restarting importbuddy in a new tab wiping out DAT array). ImportBuddy: Database test now verifies table creation ability to insure permissions are valid. Also deletes temporarily created table. ImportBuddy: Database test now verified prefix is in proper format. Format: XXXXX_ where X's are alphanumeric and prefix ends in an underscore. ImportBuddy: Database test interface results improved & UI cleaned up. Replaced jQuery live() calls with on() due to deprecation. Fixed scheduled send notification email erroring if fileoptions locked. Now ignores lock and uses read-only mode. New data structure version: 6. Fixed zip system hanging on symbolic links in some cases / configurations. Settings page prompts to save if user navigates away from page or tab after making an unsaved change. Additional information now stored in backup meta data such as profile details. Backup buttons on "Backups" page now list all profiles available for starting a manual backup. Cleaned up & made permissions errors consistent when unable to create any directories. Activation error messages no longer display unexpected error output. Fatal directory error messages no longer show on non-BackupBuddy pages. Fatal directory errors now block the ability for a backup to begin. Anti directory browsing verification now only runs on BackupBuddy pages on frontend and only on scheduled cron runs on backend for better performance. ENHANCEMENT: Loopback connection error now provides server response in textarea within error box to indicate server response and details. ENHANCEMENT: BackupBuddy temp / storage directories now added to Paths & Permissions section of Server Information page for troubleshooting permissions issues. ENHANCEMENT: Added user and group IDs to Permissions section of Server Information page. ENHANCEMENT: Added PHP process username, UID, and GUID to Server Information page. Server Information page file count updating fixed. Removed all embedded videos from Remote Destination pages to avoid JS conflicts / issues. Misc bug fixes. Misc UI cleanup. Misc wording updates. 4.0.0.1 - 2013-06-10 - Dustin Bolton Fixed error downloading backup ZIP file on Windows servers. Fixed javascript error on File Restore page on Windows servers. 4.0.0.2 - 2013-06-11 - Dustin Bolton Fixed directory exclusions not being migrated to v4.0. 4.0.0.3 - 2013-06-12 - Dustin Bolton verify_directories() error in some cases during backup. PHP SSH2, SFTP Support indicatation added to Server Info page for informational purposes on its availability across hosts. 4.0.1 - 2013-06-14 - Dustin Bolton Updated German translations. Fixed a PHP 5.4 strict warning in _pluginbuddy.php Full release of 4.0.0.1-4.0.0.3. Recommended update if running 4.0.0 through 4.0.0.3. 4.0.1.1 - 2013-06-17 - Dustin Bolton Fixed undefined index on profiles editing page under some circumstances. 4.0.1.2 - 2013-06-18 - Dustin Bolton Fixed error when attempting to display/log Stash response error to user. 4.0.1.3 - 2013-06-19 - Dustin Bolton Added warning if user attempts to exclude a WordPress core table on Settings page or in a profile. ImportBuddy: Database test no longer blocks proceeding if database values are invalid when both skipping import AND skipping migration are enabled (Warning only). ImportBuddy: Database test no longer blocks proceeding if WordPress already exists AND set to skip import (Warning only). 4.0.1.4 - 2013-06-21 - Dustin Bolton Active WordPress plugins now logged in status log by pre_backup function for better troubleshooting conflicts. Settings page no longer displays database table size next to tables on table exclusion to improve Settings page performance. 4.0.1.5 - 2013-06-25 - Dustin Bolton Fixed zbzipcore typo to delete_directory__recursive() to delete_directory_recursive(). Fixed two undefined index notices when entering a license key while not logged in. Fixed possible display of buffer-related notice when upgrading WordPress due to reminder problem. Added new warning if BackupBuddy received a negative number response to the max command line length check for database dump. This can be caused if get_conf ARG_MAX failed. Automatically falls back to compatibility database dump mode. Added new advanced settings option to allow bypassing the command line length check to prevent it from falling into compatibility mode. Unsetting reference &$file to prevent PHP oddity from causing issue extracting a list of files when restoring manually within BackupBuddy. Added new error on Scheduling page when calculating the "Next run" time if the scheduled cron event was not found registered with WordPress. Error #874784. WordPress scheduled cron event not found. See "Next Run" time in the schedules list below for problem schedule. This may be caused by a conflicting plugin deleting the schedule or manual deletion. Try editing or deleting and re-creating the schedule. 4.0.1.6 - 2013-06-26 - Dustin Bolton Fixed Error #874784 always displaying. 4.0.1.7 - 2013-06-26 - Dustin Bolton Now outputting DAT file contents prior to writing for troubleshooting. (Sans database user/pass for security). Fixed Windows UNC paths dropping leading backslash when attempting to load activation PHP file. Used copious quantities of escaping via regex. Editing a Dropbox destination could result in credentials being lost and having to delete & recreate destination to fix. 4.0.1.8 - 2013-07-01 - Dustin Bolton Added Server Load Average to Server Information page. Added Http Server Software to Server Information page. Slightly increased maximum amount of retries and time between retries for cron steps pre-maturely running / running out of order. Added Dropbox transfer limitation hypothesis to status log just prior to file transfer. Added size of file to be transferred to status log just prior to Dropbox transfer. ImportBuddy now only strongly warns if prefix includes an embedded underscore rather than completely blocking. Skipped database dump no longer results in backup errors or backups marked as bad. Database skipping is noted as warnings only now. Fixed missing download link on Downloads page when hovering individual backups.s Dropbox issue fixed where editing a Dropbox destination would result in loss of authentication to Dropbox. Fixed activation error on Windows servers when on a network drive. Performance improvements on backup file listing. ImportBuddy now sets timezone earlier to avoid timezone warnings on scarcely configurd servers. dir_size_map() warnings suppressed and checked to be array to insure symlinks breaking it will not be fatal. Automatic updates to the latest minor version are now available by clicking "Update" on the Server Information page BackupBuddy version section next to the latest minor version (if available). You must already have licensing set up properly to use this. Once it is clicked you may update normally to the latest minor version. 4.0.1.11 - 2013-07-02 - Dustin Bolton Fixed Quick Start form directing to wrong URL after completion in Multisite. Fixed javascript error that could cause backup status to stop updating despite backup potentially continuing behind the scenes. 4.0.2 - 2013-07-02 - Dustin Bolton Automatic updates release of minor versions 4.0.1 through 4.0.1.11. 4.0.2.1 - 2013-07-02 - Dustin Bolton Minor changes. 4.0.2.2 - 2013-08-15 - Dustin Bolton See v4.1 release notes ABOVE. 4.0.2.4 - 2013-08-16 - Dustin Bolton ImportBuddy: Fixed problem where a renamed ZIP file could not determine location of database SQL file to restore (even though DAT file location was determined). ImportBuddy unpacking no longer trimming base64 decoded unpack data to avoid risk of altering binary data packed into ImportBuddy such as test files, images, etc. 4.1.0.1 - 2013-08-19 - Dustin Bolton OVERVIEW (since 4.0.2.1-4.1): This update focuses primarily on the Remote Destinations system with major feature additions, enhancements, and bug fixes to it. Remote Destination performance across all destinations has improved, as well as robustness and adding various features such as transfer speed tracking for most destinations. Dropbox destination added for users of PHP v5.3 or newer with _significant_ improvements including but not limited to: No more 150mb API limit, significant memory usage reduction, and multipart chunked sends for breaking up large files. sFTP (beta) destination added. Provide feedback of success or any problems encountered during beta stage. New S3 library in uses to support multipart chunked transfers. Menu icon now has retina support for high resolution version. File restoration temp directory cleanup is now part of periodic cleanup function. ImportBuddy: cpanel database creation verifies valid characters are used. New remote destination additions are now confirmed on next page as inline alert rather than popup javascript alert box. Fixed update link showing minor version available on Server Info page even if on latest minor version. Fixed "Recent Backups" page listing backups out of proper chronological order for some. periodic_cleanup() now has a minimum age limit before orphaned fileoptions files will be purged. This helps keep Recent Backups page properly populated. Deleting a backup via backups_list()'s form no longer immediately deletes its fileoptions file. The cleanup function is now handling all purging of this. Removed call to undefined function on Error #4455484589. Updated zipbuddy library regarding file_exists() issue. Fixed issue where Recent Backups page may not always show all backups. FEATURE: New Dropbox destination available for users of PHP 5.3 or newer with much improved performance. Only displayed to users with PHP 5.3 or newer. Improved performance and large file support. Supports multipart chunking to increase file sizes able to be transferred to Dropbox. ENHANCEMENT: Added new "View Log" link on Remote Destinations "Recent Transfer Status" tab. Ability to view log details specific to a certain send. Useful for troubleshooting. ENHANCEMENT: Write speed information now available under "Transfer Information" column in Recent Remote Destinations send list for most destinations. Remote destination sends now stored within individual fileoptions files prefixed with "send-" to prevent race conditions when multiple destination sends active simultaneously (ie due to chunking). Misc minor destination bug fixes. Misc improvement to logging for troubleshooting remote sends. Updated Malware scan plan URL. Many misc destination improvements behind the scenes. ImportBuddy option to ignore existing WordPress tables now only warns rather than blocking proceeding. S3 instantiation now casting SSL parameter to bool to insure proper passing. FEATURE: Amazon S3 destination updated to new version with support for chunked multipart file transfers for handling larger files. All files transferred to S3 are now automatically encrypted with AES256 encryption on destination server. Rackspace destination now masks API key in edit mode. Fixed file viewer temporary files not being cleaned up after viewing. Fixed "Extract File with Extraction Failure Does Not Clean Up the Backup Specific Temporary Directory". Loopback error notification on Backups page now lists error details for troubleshooting in box. Email destination test button on Settings page allows testing email sending capabilities. When full error logging is enabled, backup error notification emails will include the log file for the backup as an attachment. ImportBuddy: Fixed tooltip being hidden in popup windows due to z-index issue. UI lib call for alert function now pre-initialized pb_backupbuddy::$ui in case it is not yet initialized. Reversed order of history.txt so that newest updates are now at the top. ENHANCEMENT: Updated ZipBuddy library to now support extracting individual files via ZipArchive and Pclzip as fallbacks (in that order). - Jeremy Fixed issue where Stash chunking could prevent backup limiting from ocurring. Added additional check prior to sending to Stash to verify authentication credentials are valid to avoid error cascade. Updated ZipBuddy library files to use pre-built test ZIP file. Amazon S3: Prior to each chunked send any existing multipart transfers stalled will be aborted with S3 if they exceed cerain age to free up resources in S3 account. Amazon S3: Periodic BackupBuddy housekeeping function will look for and cleanup and multipart chunk transfers (for destinations having chunking enabled). This will cleanup backups that stalled by checking they exceed a certain age (72hrs currently). PHP database dump now logs which table it is about to dump. PHP database dump now logs last query attempted on fatal failure (eg. on error mysql server went away). Added additional check for existance of profile index when setting up profile for manually triggered backup. Disabled spawn_cron() call for manual backups. Prevents very odd race condition where an additional spawned process could run concurrently -- but ONLY immediately after the database dump. This may have been the cause of some servers' cron failing to schedule immediately after the Database dump step. Updated Windows ZIP executable ZIP file to include newer zip versions at a new URL: http://ithemes.com/backupbuddy_files/backupbuddy_windows_unzip.zip Updated file_tree() function to handle missing wp-content and other edge cases. Sorts directories first. - Jeremy ImportBuddy: Server Information Server Load no longer displayed in ImpotBuddy information for compatibility. ImportBuddy: "Tour this page" link no longer displayed in Server Information section. FEATURE (beta): New BETA Remote Destination: sFTP (Secure FTP over SSH). Please provide feedback for this new beta feature. Added sFTP icon for Remote Destination. 4.1.0.3 - 2013-08-21 - Dustin Bolton Remote Destination: Amazon S3 re-added support for existing buckets with disallowed characters such as underscores or dashes IF the bucket already exists. New buckets should match s3 naming conventions. Create buckets via the Amazon Console if non-standard naming is required. Remote Destination: Amazon S3 clarified logging of determination whether to chunk or not. Added new constant for mimimum allowed chunk size. Remote Destination: Stash clarified logging of determination whether to chunk or not. Added new constant for mimimum allowed chunk size. 4.1.0.4 - 2013-08-28 - Dustin Bolton New Automatic Upgrades & Licensing System - Complete overhaul Removed old automatic upgrade & licensing system. Fixed Multisite menu icon not displaying since last release due to retina update. Remote destination test details on Recent Transfers section now denotes this as a test and uses the filename 'remote-send-test.php' for test transfers. 4.1.1.0 - 2013-09-04 - Dustin Bolton Improved error reporting on manual file send to Stash if unable to connect to account (ie bad password). Reversed history.txt ordering to display latest updates at the bottom for compatibility with updater repository updating. Fixed S3 file browser being unable to detect backup type since v4.1. S3 file browser no longer displays files within subdirectories deeper than the destination directory/root. S3 file browser no longer displays files that do not match the BackupBuddy filename format. Bug since v4.1: S3 file limit fixed to not delete any files within a deeper subdirectory. Bug since v4.1: S3 file limit fixed to not delete any files for a different site that are both in the same bucket / directory location for safety. Critical S3 fix for bug since vBackupBuddy v4.1 under a SPECIFIC scenario which could result in inadvertant deletion of files within S3 bucket subdirectories deeper than the remote destinations'. Requirements for this to occur: 1) Must be running BackupBuddy v4.1.0.0 - v4.1.0.4. 1) Limits must be enabled for an S3 destination containing subdirectories within said destination's bucket & directory. 2) Subdirectories within this destination's bucket/directory must contain content that pushes the backup limit over the threshold. Fixed undefined index in Dropbox PHPv5.3+ when no backups are available in location yet. Added additional check to Dropbox destinations to not list directories. Also omitted from file limits even if the directory name matches a BackupBuddy filename format for an additional layer of security. 4.1.1.1 - 2013-09-09 - Dustin Bolton Database queries and error retrievals update to reference identifier $wpdb->dbh. ImportBuddy now stores mysql connection in global $wpdb->dbh for compatibility with libraries using $wpdb->dbh for identifier in BackupBuddy. Fixed remote destination send log being prematurely deleted after short period of time. FTP upload no longer uses full path for send as the path is already in place via chdir(). Editing Remote Destination no longer resets destination name back to default. mysqlbuddy PHP-based import now logs table creation to better indicate SQL import status. mysqlbuddy PHP-based database dump now selects database rows limited to X number of rows at a time to help mitigate memory usage. X currently = 3000 rows. Misc minor changes. 4.1.1.2 - 2013-09-11 - Dustin Bolton Zip file contents viewer now supports viewing .ini file contents as text. Fixed trim_remote_send_stats() warning on remote destinations page due to missing. Default age-limit now set. S3 bucket creation failure now logs server response for troubleshooting. 4.1.1.3 - 2013-09-13 - Dustin Bolton ImportBuddy: Now stores a unique hash cookie for one hour to aid in usage without needing to login as often if re-starting the process or using additional tool pages. Slight redesign adding new toolbar to top for additional pages. Updated Amazon SDK to version 1.6.2. Updated plugin meta information to be consistent across iThemes plugins, including new meta row information for Support & Documentation. 4.1.1.5 - 2013-09-14 - Dustin Bolton S3 SDK rolled back to v1.5.14 due to issues introduced by Amazon's newer version. Fixed ImportBuddy error on Step 3. 4.1.1.6 - 2013-10-02 - Packaging Bot (lib/updater) Big rewrite to the updater in order to make the code more flexible. This improves compatibility with plugins that allow for remote updating of plugins and themes. The updater now supports providing changelog details for plugins and themes that have updates available. These details can be viewed by clicking the "View version **** details" link for the appropriate plugin or theme. 4.1.1.7 - 2013-10-02 - Dustin Bolton ENHANCEMENT: ImportBuddy: Now scans for php.ini file and warns of its existance and potential issues if found, particularly if importing to a new server. FEATURE: ImportBuddy: Ability to view MD5 file hash for backup files added. ImportBuddy: Database test AJAX no longer passes success via HTML comment to prevent problems with comments being stripped server-side. eg by Cloudflare. ImportBuddy: Mass database text replacement tool now available in ImportBuddy via the top menu bar to making replacements on existing WordPress installations. Missing Backup page backup listing "View Hash" option re-added. ENHANCEMENT: Simplified backup listing using backup date & time as primary listing criteria. Recent Backups page added Backup Type. S3 SDK 1.6.2 re-deployed. Updated S3 init and manage files to use modified method of getting bucket region to fix compatibility with some PHP 5.4 versions.s - Jeremy Trask ENHANCEMENT: Backup details now displays start and finish times of the overall backup process. ENHANCEMENT: Added File Size to Recent Backups listing. Updated zbzipexec to use zip -h rather than zip -v for determining version for wider server support. - Jeremy Trask No longer displaying S3 multipart upload cleanup filename & details by default. - Jeremy Trask Fixed issue where file/directory excluder list did not show files for directories containing less than 3 files/directories within. FEATURE: New database table backup option "None" to not backup any database tables by default. A warning will be displayed in all logs to use with caution. Fixed array to string conversion error on FTP management page. Fixed invalid argument for foreach during integrity check when tests array is missing/invalid. FEATURE: Amazon S3 destination now supports setting the region for any new buckets that are created by BackupBuddy. Malware scan affiliate links removed. 4.1.1.12 - 2013-10-03 - Dustin Bolton Fix for `Undefined index: ithemes_updater_path & associated error under some circumstances.`. Server Information page link to force update to latest minor version removed until feature available in updater. Addendum: Re-added Server Information page link to force update to latest minor version. 4.1.1.13 - 2013-10-04 - Dustin Bolton for Updater Enhancement: When releases with four version digits are released (such as 2.1.0.3), by default, the updater will not offer to update if just this last digit is updated. For instance, it will not automatically offer to update 2.1.0.1 to 2.1.0.3; rather, an automatic upgrade will become available when version 2.1.1 or greater is released. If you wish to force an update to these versions, you can add ithemes-updater-force-minor-update=1 to an admin page request (such as http://domain.com/wp-admin/index.php?ithemes-updater-force-minor-update=1) in order to force the updater make these releases available for an hour. If the update is not performed within the hour, the updater reverts back to default behavior. Bug Fix: Corrected source of the following error when updating: Download failed. SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Bug Fix: Corrected source of the following warning: Warning: require_once(/api.php) [function.require-once]: failed to open stream: No such file or directory 4.1.1.14 - 2013-10-07 - Packaging Bot (lib/updater) Bug Fix: Corrected another source of the following warning which occur immediate after updating the plugin or theme: Warning: require_once(/api.php) [function.require-once]: failed to open stream: No such file or directory 4.1.2.0 - 2013-10-07 - Dustin Bolton S3 Remote Destination: Ability to copy remote S3 file back to server via management page. S3 Remote Destination: Ability to get a download link to download remotely stored S3 file to your computer. Links valid for 1 hour. Major version release of updates from 4.1.1.0 through 4.1.1.14. 4.1.2.1 - 2013-10-08 - Dustin Bolton Fixed multiple S3 copy to local issues. Moved bucket region checking/setting to separate function to unify this code into one area so it may be used across multiple functions. Fixed undefined index warning on Backup Details view when fileoptions unavailable. Fixed Javascript warning in Chrome on Remote Destinations page. BETA FEATURE: FTP Destination path browser added. Browse your FTP server directories to help in picking FTP remote path. 4.1.2.2 - 2013-10-14 - Dustin Bolton Fixed cron hook filter not properly accepting existing incoming cron periods for plugins that run before BackupBuddy. S3 destination: Translate returned bucket region of 'EU' to 'eu-west-1'.