maestral

Open-source Dropbox client for macOS and Linux

MIT License

Stars
3.1K
Committers
20
maestral - v1.9.4 Latest Release

Published by samschott 4 months ago

Changed:

  • Automatically exclude some macOS system folders and files that are created on external drives from syncing.
  • Bump to the latest version of the Dropbox SDK which no longer pins security certificates. This change is required for Maestral to continue syncing after January 1, 2026.
maestral - v1.9.3

Published by samschott 6 months ago

Changed:

  • Disable the Sync Issues menu item in the status bar menu if there are no sync issues.

Fixed:

  • Fixed maestral excluded add | remove commands failing with an incorrect argument name.
  • Fixed a segfault in the macOS GUI triggerd by various actions in the selective sync dialog.
maestral - v1.9.2

Published by samschott 7 months ago

Hopefully the last in a series of rapid bug fix releases for v1.9.

Changed:

  • Preserve extended attributes of local files when syncing remote changes.
  • The macOS app bundle is now built with Python 3.12. This supports detecting and using SOCKS proxies configured in macOS Settings.

Fixed:

  • Fixes a regression introduced in v1.9.0 with opening windows from the menu bar on macOS 13 and earlier.
maestral - v1.9.1

Published by samschott 7 months ago

Fixed:

  • Fixes a regression in v1.9.0 in the macOS GUI which prevented several buttons and menu items from reacting to clicks. This was a side effect from a new GUI framework API.
maestral - v1.9.0

Published by samschott 7 months ago

Changed:

  • Allow passing multiple paths to maestral excluded add | remove CLI commands.

Fixed:

  • Fixes an issue where syncing remote changes would lead to the modified time of a file being set to the download time instead of the time of original modification.
maestral - v1.8.0

Published by samschott about 1 year ago

Changed:

  • Dropped support for Python 3.7 which was reached end-of-life on 27 Jun 2023.

Fixed:

  • Fixes the default systemd service name when enabling autostart on Linux. This was a regression in v1.7.3. Autostart entries created with maestral autostart -Y prior to v1.7.3 will continue to work.
  • Fixes an issue where data transport errors that are retried could result in zero byte files being created in the cloud if the local file size is smaller than 4 MB.
  • Fixes an issue where renaming a local file by making unicode normalisation changes only could lead to a cycle of deletion and re-creation on Dropbox servers when syncing with Maestral from multiple machines.
maestral - v1.7.3

Published by samschott over 1 year ago

This is the last release that supports Python 3.7 which will reach end-of-life on 27 Jun 2023. The macOS app always ships with its own Python runtime, but custom installations will require at least Python 3.8 starting with the next release.

Changed:

  • Preparation for upcoming API changes in watchdog dependency.
  • No more automatic reindexing: Maestral would automatically rebuild its index every 14 days. This could occasionally lead to conflicting copies if a file was modified remotely during this process. This reindexing is not necessary, especially as syncing has become very reliable. Starting with this release, reindexing needs to be triggered manually through the GUI or CLI if required.

Fixed:

  • Fixes autostart entries for the GUI being malformed when Maestral is installed in a Python virtual environment.
  • Fixes autostart entries for the daemon being malformed for the macOS app bundle. This applies to autostart entries created with maestral autostart -Y and not using the "Start on login" checkbox in the GUI.
  • The filestatus command now is case-sensitive when checking on a case-sensitive file system.
  • Fixes an issue where renaming a file by changing the casing only would not be picked up if Maestral was not running during the rename.
maestral - v1.7.2

Published by samschott over 1 year ago

Changed:

  • Improved support for systems where some file system calls don't accept a follow_symlinks = False option, notably chmod and utime.
  • Abort uploads if the file is modified between the upload of individual chunks. This saves some bandwidth and prevents us from ever committing an inconsistent file to Dropbox's version history.
  • Show desktop notifications when a conflicting copy is created both during upload and download sync. Unlike regular notifications, those notifications are shown for each conflicting copy instead of giving a summary count.
  • Append the username and date to the file name of a conflicting copy, for example myfile (Sam's conflicting copy 2022-08-30).pdf.

Fixed:

  • Fixes an issue for systems that do not provide /sys/class/power_supply such as Synology devices. Power supply state is periodically queried to prevent automatic reindexing when on battery power.
  • Fixes potentially inconsistent error messages if Maestral does not have permissions to perform file moves within the local Dropbox folder.
  • Fixes a regression with some icon buttons in the macOS GUI not being displayed.
maestral - v1.7.1

Published by samschott over 1 year ago

Fixed:

  • Fixes running the app bundle version on Intel Macs.
maestral - v1.7.0

Published by samschott over 1 year ago

Changed:

  • Allow limiting the upload and download bandwidth used for syncing, either by setting the config file values, by using the CLI maestral bandwidth-limit up|down, or through the Settings pane in the GUI.
  • Add config file items for the maximum number of parallel file transfers.
  • Speed up querying the sync status of folders.
  • Added support for Python 3.12.

Fixed:

  • Fixes the download sync of remote symlinks. The local item now is an actual symlink instead of a 0 KB file.
  • Fixes an issue where the Login Items entry for Maestral would incorrectly be listed with the developer name instead of the app name in macOS Ventura's System Settings.
  • Fixes an issue which would prevent periodic reindexing.
  • Fixes an issue with interrupted downloads of folders which are newly included by selective sync not automatically resuming when Maestral restarts.
  • Fixes an issue with detect the init system on some Linux distributions, a prerequisite for the autostart functionality.

Removed:

  • Removed support for access token authentication. Users who linked Maestral to their Dropbox account before September 2020 will be asked to reauthenticate so that Maestral can retrieve a refresh token instead.
maestral - v1.6.4

Published by samschott almost 2 years ago

Changed:

  • Drops support for macOS 10.13 and 10.14. macOS 10.15 or later is now required, reflecting the support status from Apple. In the future, we will drop support for macOS versions once they no longer receive security updates.
  • Improved status messages: the sync count is now updated as items are uploaded or downloaded instead of with a delay.
  • maestral activity now shows animating progress bars to view upload and download progress.
  • maestral sharelink list now outputs plain urls, separated by new lines. Use the --long | -l option if you would like a pretty-printed table with additional information about each link.
  • maestral history now shows where the listed changes occurred (local vs remote).
  • When multiple GUIs are installed (for example Qt and Cocoa), ask the user to choose when running maestral gui instead of selecting a default.

Fixed:

  • Fixes an error which would prevent running Maestral on Python 3.7.
  • Fixes a regression where the CLI command maestral activity would fail when run from a macOS app bundle.
  • Fixes an issue where reauthorizing Maestral's Dropbox access could hang indefinitely.
  • Fixes an issue on macOS where changing the casing of two local file names in the same folder in quick succession could result in the second file being deleted during sync.

Dependencies:

  • Introduced rich dependency.
  • Removed sdnotify dependency.
maestral - v1.6.3

Published by samschott over 2 years ago

Changed:

  • The macOS app bundle now uses Python 3.10 instead of 3.9. This comes with some performance improvements.

Fixed:

  • Work around transitory server-side errors when refreshing access tokens by retrying the refresh up to five times.
  • Fixed a segfault on startup for a small number of macOS users.
  • Fixed an issue where files which contain decomposed unicode characters could be deleted after renaming them locally on some versions of macOS.
  • Fixes an issue where the maestral gui command would fail for macOS app bundles.
maestral - v1.6.2

Published by samschott over 2 years ago

Changed:

  • Improved error message for file names with incompatible characters that are rejected by Dropbox servers, e.g., emoji or slashes at the end of a file name.
  • Capture Dropbox SDK logs in Maestral's log output. This will log which API endpoints are called and any retries on errors or rate limiting.

Fixed:

  • Fixes intermittent failures to show a file associated with a sync issue in the Linux GUI.
  • Fixes an issue where the macOS app bundle would use a system-wide installation of the Sparkle framework if available instead of the one bundled with Maestral. This could lead to unexpected issues if the system-wide installation would have an incompatible version.
  • Fixes an issue where the access level of shared links may be incorrectly reported.
  • Resume interrupted downloads after a shutdown when including new items with selective sync.
  • Fixes occasional conflicting copies of folders during initial sync due to a race condition when a child item is synced before its parent folder.
  • Fixes the display of timestamps in the CLI from maestral ls and maestral history commands. The former would show times in UTC instead of the device's timezone and the latter would show Unix timestamps instead of formatted output.
maestral - v1.6.1

Published by samschott over 2 years ago

Fixed:

  • Fixes an error when querying space usage infos from Dropbox servers for team accounts.
  • Fixes reading from the database for SQLite versions pre 3.23.0 (2018-04-02), for example on macOS High Sierra.
maestral - v1.6.0

Published by samschott over 2 years ago

This release fixes several crashes of the GUI when running on Apple Silicon. It also refactors the handling of sync errors, resulting in more reliable clearing of sync errors after a file was successfully synced, features some performance improvements when indexing local changes and further decouples the sync logic from specifics of the Dropbox API.

Changed:

  • Sync errors are now stored in a SQlite database table instead of a config file.
  • The CLI command maestral filestatus will now return error if there is a sync error for any child of the given path.
  • Re-enabled updating from versions older than 1.5.0.
  • Improved file integrity checks after upload or download.
  • Better parallelize CPU intensive work when indexing local changes. This improves performance on multicore CPUs.
  • Migrate the Linux GUI from PyQt5 to PyQt6.

Fixed:

  • Fixes an issue where upload sync errors could continue to be reported after the local file was deleted if the deletion occurred while sync was not running.
  • Fixes an issue with the Linux Qt GUI where aborting the setup dialog after linking but before choosing a local Dropbox folder would result in an inconsistent state.
  • Fixes an issue when storing 64-bit inode numbers in our database.
  • Fixes occasional crashes of the macOS GUI when running on Apple Silicon.
maestral - v1.5.3

Published by samschott over 2 years ago

This release changes how symlinks are handled when syncing: when a symlink is created in the local Dropbox, it will no longer be followed but will trigger a sync issue instead. This is because the public Dropbox API does not currently support creating symlinks on the server. Symlinks which are already present on the server will however now be correctly recreated locally instead of being synced as an empty file. Other changes focus mainly on bog fixes with some bugs specific to the macOS app bundle.

Changed:

  • The Dock icon no longer appears while the app is launching in macOS.
  • The Dock icon no longer appears when clicking on a desktop notification on macOS.
  • Clicking on a desktop notification will now show the file or folder which triggered the notification. Previously, only clicking on the "Show" button of the notification would open the file browser.
  • Removed update notifications by the CLI.
  • Proper symlink handling: Remote items which are symlinks will now be synced as symlinks instead of empty files. Local symlinks will no longer be followed during indexing or silently ignored when syncing. Instead, attempting to upload a symlink will raise an error because uploading symlinks is not currently supported by the public Dropbox API.

Fixed:

  • Fixes a crash of the maestral activity CLI command when run from the macOS App Bundle due to a missing packaged library.
  • Fixes an issue which prevented the maestral gui command from working with the macOS app bundle.
  • Fixes an issue where moving a local file to overwrite another file, for example with mv in the terminal, could generate an incorrect conflicting copy during upload sync.
  • Properly handle when the local Dropbox directory is renamed by changing the casing only on case-insensitive file systems such as APFS on macOS.
  • Fixes an issue which could result in sync errors not being cleared after the successful sync of an item under some circumstances.
  • Relative paths passed to maestral move-dir are now interpreted relative to the working directory where the command is run instead of the working directory of the sync daemon.
maestral - v1.5.2

Published by samschott almost 3 years ago

Changed:

  • Improved dialog flow on Linux when the local Dropbox folder is missing.
  • Improved error handling when determining the change time (ctime) of a local file fails.

Fixed:

  • Fixes an issue where the output of CLI commands would get truncated to 80 characters when piped to another command and not attached to an interactive stream such as a terminal.
  • Fixes Python 3.10 compatibility of Linux (Qt) GUI, thanks to @raffaem.
  • Fixes an issue where the CLI fails to install on Apple Silicon Macs.
  • Fixes a startup loop of the Linux GUI when the local Dropbox folder is missing.
maestral - v1.5.1

Published by samschott about 3 years ago

This release focuses on bug fixes.

Changed:

  • Handle Dropbox server errors in the same way as connection errors by retrying the sync job.

Fixed:

  • Fixes an issue when trying to abort the CLI setup dialog with ctrl+C.
  • Fixes an issue which could under some circumstances result in deleted folder content after performing the initial indexing and download. This would mostly occur for shared folders.
  • Fixes an issue where launchd or systemd might start the sync daemon with a non-UTF-8 encoding set in the environment, leading to an error message on startup.
  • Fixes an issue where deleting the local Dropbox folder during startup indexing may result in some files being deleted from the remote Dropbox.
maestral - v1.5.0

Published by samschott about 3 years ago

Added:

  • Added support for Dropbox Business accounts with a Team Space. Shared folders in a Team Space will now be synced at the top level, next to the user's personal folder.

Changed:

  • Reorganised config file sections.
  • Brought back support for macOS High Sierra in the macOS app bundle.

Fixed:

  • Fixed a crash when running the CLI command maestral config-file --clean.
maestral - v1.4.8

Published by samschott about 3 years ago

This update provides some performance improvements to syncing, several bug fixes, and improved error handling. From this release onward, the macOS app bundle can update itself using Sparkle.

Added:

  • Added automatic updates with Sparkle for the macOS app bundle.

Changed:

  • Improved performance when processing local file events.
  • Improved error messages when the system keyring cannot be accessed despite being unlocked, for example because the executable (app bundle or Python) has an invalid signature.
  • Improved error messages on startup for the macOS app bundle.
  • Improved error message in the CLI when setting a config value fails because the new value has the wrong type.
  • Improved handling of more exotic file system or device related errors when opening local files.

Fixed:

  • Fixed a crash on startup of the daemon when the log level is set to WARNING.
  • Fixed an issue which could result in an unresponsive daemon during startup on macOS.
  • Fixed an issue which could result in the CLI or GUI to stall indefinitely if the daemon process is unresponsive.
  • Fixed an issue in the macOS GUI where passing the "missing Dropbox folder" flow by selecting a new location would lead to duplicate menu entries in the status bar menu.
  • Fixed an issue where the Linux / Qt GUI would hang indefinitely after unlinking.
  • Fixed an issue where moving / removing the local Dropbox folder during a download could lead to unhandled exceptions instead of useful error messages.
  • Fixed handling of 503 and other raw HTTP errors from the Dropbox SDK, for instance when Dropbox servers have temporary outages or are undergoing planned maintenance.
  • Fixed periodic connection checking for connections over proxy using http_proxy environment variable.
  • Fixed an issue where some uploaded items would not register as synced after aborting or pausing during an upload sync.
  • Fixed a compatibility issue with watchdog v2.1.4 and higher.

Removed:

  • Removed an unneeded prompt when revoking a shared link.