summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis Martinez2022-03-20 22:01:24 -0500
committerLuis Martinez2022-03-20 22:01:24 -0500
commit0e6434b89aafbcdeb2db30822b2939303ca91d0d (patch)
tree5077f424660efead467edb66e00d37985d4e882c
parentc927d59745be4e26e6eec5c02aced1f7bf0b9a2d (diff)
downloadaur-0e6434b89aafbcdeb2db30822b2939303ca91d0d.tar.gz
update to 1.6.0
-rw-r--r--.SRCINFO13
-rw-r--r--CHANGELOG.md1712
-rw-r--r--PKGBUILD17
3 files changed, 19 insertions, 1723 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f1815f7af89a..303e33e99ec4 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,21 +1,22 @@
pkgbase = maestral-qt
pkgdesc = Qt interface for Maestral
- pkgver = 1.5.3
- pkgrel = 2
+ pkgver = 1.6.0
+ pkgrel = 1
url = https://github.com/SamSchott/maestral-qt
changelog = CHANGELOG.md
arch = any
license = MIT
+ makedepends = python-setuptools
makedepends = python-build
makedepends = python-installer
makedepends = python-wheel
- depends = maestral>=1.5.3
+ depends = maestral>=1.6.0
depends = python-click
depends = python-markdown2
depends = python-packaging
- depends = python-pyqt5
+ depends = python-pyqt6
optdepends = gnome-shell-extension-appindicator: Gnome integration
- source = maestral-qt-1.5.3.tar.gz::https://github.com/SamSchott/maestral-qt/archive/v1.5.3.tar.gz
- sha256sums = d8f85c1cc3e5449f494c81f490997d6b4c300c3829b7a4ee5c1841cdc718a3f5
+ source = maestral-qt-1.6.0.tar.gz::https://github.com/SamSchott/maestral-qt/archive/v1.6.0.tar.gz
+ sha256sums = 3814d0d8d9c16a9b584f6a26ac4c12f1a7332e85732b320ed2f14bd4702b7641
pkgname = maestral-qt
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ab051844803e..208c35312892 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,1711 +1 @@
-## v1.5.3.dev
-
-#### 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 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.
-
-## v1.5.2
-
-#### 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.
-
-## v1.5.1
-
-#### Changed:
-
-* Handle Dropbox server errors in the same way as connection errors by retrying the sync
- job.
-
-#### Fixed:
-
-* Fixed issues 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.
-* Fixes an issue where deleting the local Dropbox folder during startup indexing may
- result in some files being deleted from the remote Dropbox.
-
-## v1.5.0
-
-#### 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`.
-
-## v1.4.8
-
-#### 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.
-
-## v1.4.6
-
-#### Changed:
-
-* Performance improvements to selective sync dialog in GUI.
-
-#### Fixed:
-
-* Fixed an `IndexError` during conflict resolution when the local item is a non-empty
- folder.
-
-## v1.4.5
-
-#### Added:
-
-* Support CMD+Q keyboard shortcut to quit app on macOS.
-
-#### Changed:
-
-* Clarified the "merge local folder" option in the GUI's setup dialog.
-
-#### Fixed:
-
-* Fixed an issue where erroneous file conflicts could occur when a file name contains
- decomposed unicode characters such as "é" represented by "e" + "́" instead of a single
- character.
-* Fixed an issue where center-aligned text would appear right-aligned on Apple Silicon
- computers.
-
-#### Dependencies:
-
-* Bumped desktop-notifier to v3.3.0. This fixes a segfault for non-framework
- distributions of Python such as Anaconda Python.
-
-## v1.4.4
-
-This release introduces support for tab-completion in the shell, allows you to choose
-the actual Dropbox folder instead of its parent folder / location from the GUI, and
-further reduces memory usage during startup indexing. As usual, several bugs have
-been squashed.
-
-The website has also moved to its own domain at [maestral.app](https://maestral.app).
-The source still lives in the `website` branch of the GitHub repo and contributions are
-welcome.
-
-#### Added:
-
-* Added support for shell completion. Completion is available for the commands
- themselves and for several arguments, notably paths relative to the Dropbox folder and
- choices from a set of fixed options. Use the command `maestral completion` to generate
- shell completion scripts for bash, zsh or fish. For bash or zsh, save the returned
- script in a location of you choice and source it in '\~/.bashrc' or '\~/.zshrc',
- respectively. For fish, save the returned script at
- '\~/.config/fish/completions/maestral.fish'. Completion is available for the base
- commands themselves and several arguments, notably paths relative to the Dropbox
- folder and choices from a set of fixed options.
-
-#### Changed:
-
-* Improved error messages when inotify limits are reached on Linux.
-* GUI dialogs to select a local Dropbox folder now ask for the actual folder name
- instead of the location only.
-* Local indexing on startup is now carried out without loading the entire folder tree
- into memory. This further reduces peak memory usage and fragmentation.
-* Permission errors when scanning the contents of a local folder during startup indexing
- are now treated as fatal errors instead of skipping its content. This prevents items
- from being deleted on the server when they are still present locally but inaccessible.
-* Improved logging during daemon startup: Logging is now initialised immediately after
- the main imports and therefore captures potential errors early during the startup
- process.
-* Loggers are scoped per configuration instead of globally. This enables separating logs
- for Maestral instances for different configs which are running in the same process.
-* Improved performance and appearance of the selective sync dialog. Folder content is
- no longer pre-fetched but will be loaded on-demand when expanding a folder.
-
-#### Fixed:
-
-* Fixes a rare issue where throttling of sync threads would be disabled if the
- "max_cpu_percent" config value would be set to 100% divided by the number of CPU cores
- (e.g, 25% on a 4-core CPU).
-* Fixes an issue where a local permission error would be treated as a fatal error
- instead of as a sync issue.
-* Moving the Dropbox folder between partitions no longer triggers a full resync.
-* Fixes an error when running the `diff` CLI command and selecting the local file as the
- base version.
-* Fixes download links in the update dialog.
-* Fixes an unexpected error which may occur when creating a conflicting copy.
-
-#### Dependencies:
-
-* Bumped click to >= v8.0.0 to support shell completion.
-* Bumped survey to >= v3.4.3 for Python 3.6 support.
-
-## v1.4.3
-
-This release improves performance and memory usage by switching from sqlalchamey to our
-own database interaction layer.
-
-Maestral now also has a website with a detailed documentation of the command line
-interface, released with github pages at
-[https://samschott.github.io/maestral](https://samschott.github.io/maestral).
-
-#### Changed:
-
-* We now use our own ORM layer instead of sqlalchemy. This improves both baseline memory
- usage and peak memory usage during startup and indexing.
-* Use a new network session for each thread and clean up network resources before the
- thread stops.
-* The macOS GUI will now show a dock icon if there is an open window.
-* The CLI will print full tracebacks to the console in case of unexpected errors.
-
-#### Fixed:
-
-* Fixed detecting local changes when saving an MS Office on macOS with recent versions
- of the Office suite.
-
-#### Dependencies:
-
-* Bumped desktop-notifier to >=3.2.2
-* Bumped watchdog to >=2.0.1
-* Removed sqlalchemy
-* Removed alembic
-
-## v1.4.2
-
-Fixes an issue where the daemon might restart syncing even though it should be paused
-when an internet connection is reestablished.
-
-## v1.4.1
-
-Fixes an issue where the daemon status may incorrectly report "Connecting..." even
-though the daemon is connected.
-
-## v1.4.0
-
-This release brings significant extensions to the command line interface: It introduces
-commands to create and manage shared links, to compare older version of a file and print
-the diff output to the terminal, and commands for direct access to config values (note
-the warning below). It also adds optional one-way syncing, for instance to keep a mirror
-of a remote Dropbox folder while ignoring local changes.
-
-Several bugs have been fixed which could occur when resuming the sync activity after the
-connection had been lost while indexing a remote folder.
-
-Finally, this release removes automatic error reporting via Bugsnag. Please file any bug
-reports as issues on GitHub where it is possible to follow up.
-
-#### Added:
-
-* Added a command `maestral diff` to compare different versions of a text file. The
- resulting diff is printed to the console. Credit goes to @OrangeFran.
-* Resurrected the command `maestral revs` to list previous versions (revisions) of a
- file.
-* Added a command group `maestral sharelink` to create and manage shared links.
- Subcommands are:
-
- * `create`: Create a shared link for a file or folder, optionally with password
- protection and an expiry date on supported accounts (business and professional).
- * `list`: List shared links, either for a specific file or folder or for all items
- in your Dropbox.
- * `revoke`: Revoke a shared link.
-
-* Added a command group `maestral config` to provide direct access to config values.
- Subcommands are:
-
- * `get`: Gets the config value for a key.
- * `set`: Sets the config value for a key.
-
- This provides access to previously inaccessible config values such as
- `reindex_interval` or `max_cpu_percent`. Please refer to a Wiki for an overview of all
- config values. Use the `set` command with caution: setting some config values may
- leave the daemon in an inconsistent state (e.g., changing the location of the Dropbox
- folder). Always use the equivalent command from the Settings group (e.g., `maestral
- move-dir`).
-* Added the ability to disable a single sync direction, for instance to enable download
- syncs only. This can be useful when you want to mirror a remote folder while ignoring
- local changes or when syncing to a file system which does not support inotify. To use
- this, set the respective config values for `upload` or `download` to False. Note that
- conflict resolution remains unaffected. For instance, when an unsynced local change
- would be overwritten by a remote change, the local file will be moved to a
- "conflicting copy" first. However, the conflicting copy will not be uploaded.
-
-#### Changed:
-
-* Changes to indexing:
-
- * Avoid scanning of objects matching an `.mignore` pattern (file watches will still
- be added however). This results in performance improvements during startup and
- resume. A resulting behavioral change is that **maestral will remove files matching
- an ignore pattern from Dropbox**. After this change it will be immaterial if an
- `.mignore` pattern is added before or after having matching files in Dropbox. Credit
- goes to @andrewsali.
- * If Maestral is quit or interrupted during indexing, for instance due to connection
- problems, it will later resume from the same position instead of restarting from the
- beginning.
- * Indexing will no longer skip excluded folders. This is necessary for the above
- change.
- * Defer periodic reindexing, typically carried out weekly, if the device is not
- connected to an AC power supply. This prevents draining the battery when hashing
- file contents.
-
-* Changes to CLI:
-
- * Moved linking and unlinking to a new command group `maestral auth` with subcommands
- `link`, `unlink` and `status`.
- * Renamed the command `file-status` to `filestatus`.
- * Added a `--yes, -Y` flag to the `unlink` to command to skip the confirmation prompt.
- * Renamed the `configs` command to list config files to `config-files`.
- * Added an option `--clean` to `config-files` to remove all stale config files (those
- without a linked Dropbox account).
-
-* Improved the error message when the user is running out of inotify watches: Recommend
- default values of `max_user_watches = 524288` and `max_user_instances = 1024` or
- double the current values, whichever is higher. Advise to apply the changes with
- `sysctl -p`.
-
-#### Fixed:
-
-* Fixes an issue with the CLI on Python 3.6 where commands that print dates to the
- console would raise an exception.
-* Properly handle a rare OSError "[Errno 41] Protocol wrong type for socket" on macOS,
- see https://bugs.python.org/issue33450.
-* Allow creating local files even if we cannot set their permissions, for instances on
- some mounted NTFS drives.
-* Fixes an issue with the selective sync dialog in the Qt / Linux GUI where the "Update"
- button could be incorrectly enabled or disabled.
-* Fixes an issue where a lost internet connection while starting the sync could lead to
- a stuck sync thread or an endless indexing cycle.
-* Fixes an issue where a lost internet connection during the download of a folder newly
- included in selective sync could result in the download never being completed.
-* Fixes an issue where pausing the sync during the download of a folder newly included
- in selective sync could result in the download never being completed.
-
-#### Removed:
-
-* Removed automatic error reporting via bugsnag.
-* Removed from CLI:
-
- * The `maestral restart` command. Use `stop` and `start` instead.
- * The `maestral account-info` command. Use `maestral auth status` instead.
-
-* Removed the public API methods `Maestral.resume_sync` and `Maestral.pause_sync`. Use
- `Maestral.start_sync` and `Maestral.stop_sync` instead.
-
-#### Dependencies:
-
-* Bumped survey to version >=3.2.2,<4.0.
-* Bumped keyring to version >=22.
-* Bumped watchdog to version >= 2.0.
-* Added `desktop-notifier` dependency. This is spin-off project from Maestral, built on
- the code previously in the `notify` module.
-* Removed the bugsnag dependency.
-
-## v1.3.1
-
-#### Fixed:
-
-* Fixes an incorrect entry point for the Qt GUI.
-
-## v1.3.0
-
-This release features an overhaul of the command line interface: commands are grouped by
-sections in the help output, dialogs and output formatting have been improved and many
-commands have become significantly faster.
-
-This release also significantly reduces the CPU usage when idle and provides a whole
-series of bug fixes for GUI and daemon.
-
-#### Added:
-
-* Desktop notifications for sync errors are now clickable and will show the related file
- or folder either on Dropbox or locally.
-* Desktop notifications now have a "Show" button to show a recently changed file.
-* Added a public API `Maetral.status_change_longpoll` for frontends to wait for status
- changes without frequent polling. `status_change_longpoll` blocks until there is a
- change in status and then returns `True`. The default timeout is 60 sec.
-
-#### Changed:
-
-* Significant improvements to the command line interface:
- * Overhauled all CLI dialogs with nicer formatting and more interactive prompts
- using the `survey` package.
- * Improved output of many CLI commands, including `ls`, `activity`, and `restore`.
- * Increased speed of many CLI commands by importing only necessary modules.
- * Shortened help texts for CLI commands.
- * Group help output by function.
-* Reduced the CPU usage of daemon and GUIs in the idle state:
- * Increased timeouts for all event queues.
- * Decreased the frequency of daemon housekeeping tasks.
- * GUIs now use longpoll APIs to wait for state changes instead of frequent polling.
-* Improved performance when syncing a large number of remote deletions.
-* The `Maestral.include_item()` API now accepts paths which lie inside an excluded
- folder. When called with such a path, all immediate parents will be included as well.
- This change also applies to the `maestral excluded remove`.
-* The `Maestral.excluded_items` property is no longer read-only.
-* Some refactoring of the `cli` module to prepare for shell completion support.
-
-#### Fixed:
-
-* Fixes an issue where all newly downloaded files would be created with 755 permissions.
- They are now created with the user's default permissions for new files instead.
-* Fixes an unexpected crash when the list of `pending_downloads` or `download_errors`
- would contain an invalid path, i.e., a Dropbox path for which we cannot get any
- current or deleted metadata.
-* Fixes an error when a local file name contains bytes which cannot be decoded by
- reported file system encoding. This now raises a sync error instead of crashing and
- all log handlers have been updated to deal with the resulting surrogate escapes.
-* Fixes possible loss of data when excluding an item from syncing while it is
- downloaded. This is no longer possible and will raise a `BusyError` instead.
-* Fixes an issue where `maestral ls` would fail when run with the `-l, --long` flag.
-* Fixes an occasional `IndexError` during a download sync when trying to query past
- versions of a deleted item.
-* Fixes an issue which could cause a segfault of the selective sync dialog on macOS.
-* Fixes an issue where the selective sync dialog on Linux would not load the contents of
- more than 10 folders.
-* Fixes a regression with the autostart functionality of the Linux GUI. Autostart
- entries created with v1.2.2 will need be reset by toggling the checkbox "start on
- login" off and on.
-* Fixes an issue where two configs linked to the same Dropbox account would both be
- unlinked when trying to unlink only one of them.
-* Fixes an import error with v11.0 of the Dropbox SDK.
-
-#### Removed:
-
-* Removed the `maestral rev` command to list old file revisions. Instead
- `maestral restore` will list possible revisions to restore.
-
-#### Deprecated:
-
-* Deprecated the `Maestral.set_excluded_items` API. Use the setter for
- `Maestral.excluded_items` instead.
-
-#### Development:
-
-* Updated tests and migrated fully to pytest.
-* Improved API documentation, including sections on the sync logic and on logging.
-* Added contributing guidelines.
-
-#### Dependencies:
-
-* Require `watchdog<=10.3` because of an unresolved issue in watchdog 0.10.4 on macOS.
-* Pin `dropbox<12.0` to avoid bad surprises in case of breaking changes.
-* Add `survey>=2.1.0` for an interactive CLI.
-
-## v1.2.2
-
-This release focuses on bug fixes and performance improvements. In particular, memory
-usage has been improved when syncing a Dropbox folder with a large number of items.
-
-#### Changed:
-
-- `maestral file-status` now accepts relative paths.
-- Runs the daemon in a Python interpreter with -OO flags. This strips docstrings and
- saves a few MB of memory.
-- Moves from `pkg_resources` to locate entry points and other metadata to the faster and
- more light-weight `importlib.metadata`.
-- Update scripts are no longer run after a fresh install or for a new config.
-- Significantly reduces memory usage during the initial sync of a Dropbox folder with
- many (> 10,000) items and when downloading a large set of changes. To achieve this,
- new APIs have been added to `SyncEngine` and `DropboxClient` that return iterators
- over remote changes. Dropbox servers are queried on every iteration.
-- `Maestral.get_history` now returns only the last 100 sync events by default. This can
- be increased by setting the `limit` argument manually.
-- The total sync history kept in out database is limited to the last 1,000 events.
-- Switch from PyInstaller to [briefcase](https://github.com/beeware/briefcase) for
- packaging on macOS.
-
-#### Fixed:
-
-- Fixes an issue which would prevent the daemon from starting on macOS when running with
- Python 3.6.
-- Fixes a segfault of the macOS GUI on macOS High Sierra.
-- Fixes an issue with the macOS GUI becoming unresponsive when opening the selective
- sync dialog if one of the displayed folders contains a large number (> 2k) of
- immediate children.
-- Fixes an issue with the Qt GUI crashing when opening the selective sync dialog if one
- of the folders contains a large number (> 2k) of immediate children.
-- Fixes an issue where `Mastral.excluded_status` would return "included" for items
- inside an excluded folder.
-
-## v1.2.1
-
-This update provides bug fixes and some improvements to error handling. Major changes
-don't regard Maestral itself but its distribution: a Docker image is now available,
-thanks to @aries1980, and the macOS app bundle has been rebuilt with the macOS 11 SDK,
-providing full compatibility from macOS 10.13 High Sierra to macOS 11.0 Big Sur.
-
-#### Added:
-
-- Added a Docker image, thanks to @aries1980. The docker image is based on Linux and
- does not currently include a GUI.
-- Added `-V, --version` option to the command line interface to show the version and
- exit.
-
-#### Changed:
-
-- Improves handling of database related errors such as database integrity, missing read
- / write permissions for the database file, etc.
-- Improves handling of errors when the keyring cannot be unlocked to delete credentials
- during an unlink.
-- Improves handling of errors when the keyring where Dropbox credentials are stored
- becomes unavailable, e.g., has been uninstalled.
-- Never start a subprocess when maestral is run with the `-f, --foreground` option.
- Previously, any required setup such as linking, etc, would still be performed in a
- subprocess.
-- Minor tweaks and improvements to the macOS GUI.
-- Allow sending desktop notifications in Linux before the daemon's event loop has
- started. This is useful for error messages which occur early during the
- initialization.
-- Improves log messages when the connection to Dropbox is lost.
-- Performance improvements to `maestral activity` in case of very large sync queues.
-
-#### Fixed:
-
-- Fixes a database integrity error due to an unfulfilled unique constraint.
-- Fixes an issue when the daemon is launched with systemd where systemd would
- unexpectedly receive notifications from a subprocess instead of the main process.
-- Fixes an issue which would prevent syncing from automatically resuming after moving the
- local Dropbox directory with `maestral move-dir` or through the GUI.
-- Fixed a green background for sync issue views in the macOS GUI.
-- Fixes an issue where the system tray icon in KDE Plasma could fall back to the regular
- app icon or not show up at all,
-- Fixes an issue where the user may be asked to unlock or grant access to the system
- keyring twice on startup if access denied the first time.
-
-#### Dependencies:
-
-- Adds `alembic` dependency for database migrations.
-
-## v1.2.0
-
-The local file index and sync history are now stored in a SQLite database. After the
-update, Maestral will first reindex your Dropbox to populate the new index.
-
-This change enables several improvements to the command line interface and GUI: The
-command `maestral activity` now shows the progress of individual uploads or downloads.
-`maestral history` has been added to list recent sync events. In the GUI, the recent
-changes menu now has been replaced by a "Activity" window which shows all sync events of
-the past week.
-
-This release also introduces clickable desktop notifications, performance improvements
-to indexing of local file changes, and bug fixes and smaller changes listed below.
-
-Finally, this release introduces support for macOS 11 (Big Sur).
-
-#### Added:
-
-- Added an option `-e, --external` to `maestral log show` to open the log in the
- platform's default program instead of showing it in the console.
-- Added a CLI command `history` to show all sync events of the past week.
-- Added a "Activity" window to show all sync events of the past week.
-- Desktop notifications are now clickable: for a single file change, clicking the
- notification will show the file in the platform's file manager. For a deletion, the
- Dropbox website is opened to provide options for restoring the file or folder.
-- Use entry points to discover GUI frontends. 3rd party GUIs can register a
- `maestral_gui` entry point to be launched with the `maestral gui` CLI command. If
- installed, `maestral gui` will default to the 1st party `maestral-cocoa` or `maestral-
- qt` GUIs on macOS and Linux, respectively.
-
-#### Changed:
-
-- Transition to short-lived auth tokens for newly linked accounts.
-- Transition to OAuth scopes for app permissions.
-- Save all sync history and local index in SQLite database.
-- Reduce unnecessary path conversions during indexing of local changes.
-- Improved performance on case-sensitive file systems.
-- Sync remote changes in filename even if they are only a change in casing. Those
- changes where previously ignored.
-- Attempt to preserve local file permissions when syncing unless the file id has
- changed. Dropbox servers do store file permissions but don't make them available
- through the public API. We therefore cannot sync file permissions and instead choose
- not to overwrite locally set permissions on every download.
-- Changed return type of `Maestral.get_activity` from namedtuple to dict for better
- consistency throughout the API. Every uploading or downloading item will have 'size'
- and 'completed' entries to monitor the progress of syncing individual items.
-- The CLI command `maestral activity` now shows the progress of uploads and downloads
- for individual files.
-- Introduced type annotations throughout and fixed a few type-related bugs.
-- Added a field "Sync threads" to the output of the CLI command `maestral status`.
-- The output of `maestral ls` is now printed in a grid, similar to the `ls` command
- included with most platforms.
-- The macOS app bundle now uses Python 3.8, leading to some performance improvements
- when moving or copying file system trees.
-- Prepared the GUI for changes in macOS Big Sur: use native alerts and dialogs wherever
- possible and refactor loading of libraries.
-- Use an asyncio event loop instead of Pyro's event loop to run the daemon. This enables
- integration with the Cocoa run loop and callbacks when clicking notifications.
-
-#### Fixed:
-
-- Fixes a bug where throttling of sync threads would raise an error when we cannot
- determine the CPU count.
-- Fixes a bug where sending SIGTERM to the daemon process would raise an error when we
- cannot determine its PID. Now, `Stop.Failed` is returned instead.
-- Fixes a bug which would result in incorrect systemd unit files for non-default config
- file names. Please disable and re-enable autostart with `maestral autostart -Y|-N` to
- replace old unit files.
-- Fixes a possible race condition when creating the cache directory.
-- Fixes error handling when a file is changed while uploading.
-
-#### Removed:
-
-- Support for config names with spaces. Spaces could cause issues with autostart entries
- on some platforms.
-- The ability to run the daemon in a separate thread. The daemon must now always be run
- in its own process.
-
-#### Dependencies:
-
-- Replaced `jeepney` dependency on Linux with `dbus-next`.
-
-## v1.1.0
-
-This release expands the CLI functionality and improves the handling of file
-modification times during upload and download (used for display purposes only). It also
-fixes bugs with the "start on login" functionality of the macOS app bundle. After
-updating, please toggle "start on login" in the GUI or `maestral autostart` in the CLI
-to replace any old login items.
-
-#### Added:
-
-- Added `--include-deleted` option to `maestral ls`.
-- Added `-l, --long` option to `maestral ls` to include metadata in listing.
-- Added `maestral revs` command to list revisions of a file.
-- Added `maestral restore` command to restore an old revision of a file.
-
-#### Changed:
-
-- Always create config directory if it does not exist.
-- Improved performance of converting Dropbox paths to correctly cased local paths.
-- Renamed macOS executable inside app bundle from "main" to "Maestral". This results in
- more informative process names.
-- Local files are now created with the "last modified" time provided by Dropbox servers.
- This only applies to new downloads. To update existing modified times, you will need
- to delete and redownload your Dropbox folder.
-
-#### Fixed:
-
-- Fixes a thread-safety issue with desktop notifications.
-- Fixes a thread-safety issue when two frontends try to start or stop syncing at the
- same time.
-- Fixes an issue where Maestral could incorrectly identify a file system as case
- sensitive if the Dropbox folder and temporary directory are on partitions with
- different file systems.
-- Fixes incorrect file modification times uploaded to Dropbox for timezones outside of
- UTC. Those times are used for display purposes only.
-- Fixes an issue where the `maestral autostart -Y` CLI command would start the GUI on
- on login in case of the macOS app bundle.
-
-## v1.0.3
-
-#### Changed:
-
-- Both "-h" and "--help" can now be used to print help output for a command.
-- Show both the daemon and GUI version in the settings window.
-- The command line tool bundled with the macOS app now provides proper help output.
-- Significantly reduced CPU usage of the GUI on macOS.
-- The macOS app now uses a hardened runtime and is properly signed and notarized.
-
-#### Fixed:
-
-- Fixes an issue which could lead to the local Dropbox folder being moved before syncing
- has been paused.
-- Fixes an issue where download errors would show a rev number instead of the Dropbox
- path.
-- Fixes a race condition when two processes try to start a sync daemon at the same time.
-- Fixes an issue in the macOS GUI where updating the displayed sync issues could fail.
-- Fixes truncated text in the macOS setup dialog.
-- Fixes an issue on fresh macOS installs where creating autostart entries could fail if
- /Library/LaunchAgents does not yet exist.
-- Fixes an issue in the macOS app bundle where installing the command line could tool
- would fail if /usr/local/bin is owned by root (as is default on a fresh install). Now,
- the user is asked for permission instead.
-
-#### Dependencies:
-
-- Removed `lockfile` dependency.
-- Added `fasteners` dependency.
-
-## v1.0.2
-
-This release fixes bugs in the command line interface.
-
-#### Fixed:
-
-- Fixes a crash of the CLI when an update is available due to incorrect formatting of
- the update message.
-- Fixes an error when listing the contents of an empty directory with `maestral ls`.
-
-## v1.0.0
-
-This is the first stable release of Maestral. There have been numerous bug fixes to
-error handling and platform integration as well as a few bug fixes to syncing itself.
-There are also a few outward facing changes: Pausing Maestral now cancels any pending
-sync jobs instead of waiting for them to be completed. The macOS GUI switches from Qt to
-using a native Cocoa interface and the macOS app bundle finally includes a full command
-line interface.
-
-#### Added:
-
-- Command line tools are now bundled with the macOS app bundle and can be installed from
- the settings window.
-- Added support for config names with spaces.
-- Switch from Qt to native Cocoa GUI on macOS.
-- Expanded test suite to include sync tests.
-
-#### Changed:
-
-- Added '.dropbox' and '.dropbox.cache' to always excluded paths.
-- Pausing sync now cancels all pending uploads and downloads.
-- Quicker detection of connection problems.
-- Faster sync of local deletions.
-- The GUI now always launches a separate daemon process instead of an in-process daemon.
-- Temporary files during a download are now stored inside the Dropbox directory at
- '.maestral.cache'. This guarantees that temporary files always reside on the same
- partition as the Dropbox folder itself.
-- System tray icons are no longer installed in the platform theme in Linux. This is part
- of a workaround for a Qt issue on Linux desktops which causes unnecessarily large
- pixmap transfers over dBus when HiDPI support is enabled. Manually installed icons
- will still be respected.
-- Switch from implicit grant to PKCE OAuth2 flow.
-- Added public API to link a Dropbox account: `Maestral.get_auth_url` and
- `Maestral.link`. Frontends no longer need to import `maestral.oauth`.
-- Moved all command line dialogs from the main API to the CLI module.
-- Bumped watchdog requirement to >= 10.0.0 for more consistent error handling.
-- Added explicit jeepny dependency for Linux. This is a dependency of keyring but we use
- it by itself as well.
-- Improved the reliability of ignoring file system events caused by Maestral itself.
-
-#### Fixed:
-
-- Fixes an issue where a dropped internet connection during startup could result in
- continuous retries until the connection is finally established.
-- Fixes an issue where downloads of newly included folders would not resume after being
- interrupted.
-- Fixes an issue which could lead to false conflicting copies of folders in some cases.
-- Fixes the handling of inofify limit and permission errors when starting a file system
- watch.
-- Fixes handling of errors from too long file names.
-- Handle errors due to file names which are not allowed on the local file system.
-- Fixes handling of some uncaught insufficient disk space errors.
-- Fixes incorrect autostart entries on macOS.
-- Fixes a crash when running Maestral as a systemd service without python-systemd
- installed.
-- Fixes an issue when checking for updates if the list of releases from Github includes
- dev releases.
-- Fixes an issue where only remote changes would be listed in 'Recent changes' in the
- GUI.
-- Fixes the alignment of comboboxes in the Qt GUI on macOS.
-- Fixes a crash on macOS when no notification center is available, for instance in a
- headless session or on Github test runners.
-- Fixes a crash on Linux when the command line tool `notify-send` is not available.
-- Fixes an issue where sync errors would have incomplete path information.
-- Resolves an issue where indexing a large Dropbox folder with > 100,000 items would
- continuously timeout and restart in some cases.
-
-#### Removed:
-
-- Removed migration code for versions < 0.6.3. If you want to update to v1.0.0, please
- make sure to upgrade to at least version 0.6.3 first or unlink your Dropbox before
- updating to v1.0.0.
-- Removed u-msgpack dependency.
-
-## v0.6.4
-
-The release provides bug fixes and minor improvements to the command line and graphical
-user interfaces. Importantly, it fixes an issue where some files could accidentally
-ubecome n-indexed, resulting in incorrect conflict resolution.
-
-#### Added:
-
-- Config option to set the keyring backend. This defaults to 'automatic' but can be used
- to specify a preferred backend such as `keyrings.backends.kwallet.DBusKeyring`. You
- will need to migrate your credentials manually to the new keyring if you change this
- setting.
-- Added a `-v, --verbose` flag to `maestral start` and `maestral restart` commands to
- print log output to stdout.
-- Added an API documentation for developers, available on
- [Read the Docs](https://maestral-dropbox.readthedocs.io).
-
-#### Changed:
-
-- During initial CLI setup, give the option to sync the entire Dropbox without
- paginating through individual folders to exclude.
-- Limit the number of notifications to keep in the notification center. This will only
- work for some desktop environments.
-- Fall back to plain text credential storage if neither Gnome Keyring, KWallet or any
- other storage implementing the Secret Service API can be found. A warning is shown
- when plain text storage is used.
-- Settings and setup windows are no longer always kept on top in Linux.
-- `maestral start --foreground` no longer prints log messages to stdout by default.
-
-#### Fixed:
-
-- Properly handle errors when moving files, for instance for sync conflicts.
-- Fixes an issue where some files could accidentally become un-indexed, resulting in
- incorrect conflict resolution.
-- Fixes an issue with macOS app bundles where the migration of configuration files was
- omitted after an update. This would result in a failure to start the daemon.
-- Correctly specify the required version of `six` to work around an upstream issue in
- Dropbox.
-- Fixes an issue where stdout would end up in the systemd journal in addition to the
- structured log messages.
-- Fixed a bug where XDG_DATA_HOME was ignored.
-
-## v0.6.3
-
-This release fixes a critical error introduced when updating to v9.5 of the Dropbox
-Python SDK which prevented any remote changes from being downloaded.
-
-#### Changed:
-
-- Show release notes from all releases since last update in update dialog.
-- Use our own method instead of the `psuitl` package to determine the CPU usage. This
- eliminates the `psuitl` dependency which can be difficult to install on some systems.
-
-#### Fixed:
-
-- Fixes an issue with downloads failing because Dropbox Metadata is longer hashable from
- v9.5 of the Dropbox Python SDK.
-- Fixed a StopIteration exception on startup when the location of the maestral CLI
- script cannot be found in the package metadata.
-- Fixes an error when restarting the daemon with the "foreground" option.
-- Fixed incorrect button labels in the setup dialog when choosing whether to replace or
- keep an old Dropbox folder. The labels "Replace" and "Cancel" where switched.
-- Fixes a bug where the option "Unlink & Quit" in the "Revoked Access" error dialog
- would unlink but not quit Maestral.
-
-## v0.6.2
-
-This release enables excluding individual files from syncing and fixes an issue which
-led to continuously retrying failed downloads. It also contains significant performance
-improvements to indexing, reduces the CPU usage when syncing a large number of files and
-introduces weekly re-indexing.
-
-This release also introduces support for an ".mignore" file with the same syntax as
-[gitignore](https://git-scm.com/docs/gitignore). This feature is considered 'alpha' and
-may change in the future. Feedback is welcome.
-
-#### Added:
-
-- Support excluding files from sync. This uses the same 'selective sync' interface as
- excluding folders. Excluded files will be removed from the local Dropbox folder.
-- Introduces an ".mignore" file to specify files that Maestral should ignore. The
- ".mignore" file must be saved in the local Dropbox folder. When excluding files or
- folders with selective sync (`maestral exclude`), they will be removed from the local
- folder and kept in the cloud only. The ".mignore" file enables the reverse: files or
- folders which exist locally will not be uploaded to Dropbox. It uses the same syntax
- as [gitignore files](https://git-scm.com/docs/gitignore) and, similar to gitignore,
- files which are already tracked by Maestral will not be affected. More details are
- given in the [Wiki](https://github.com/SamSchott/maestral-dropbox/wiki/mignore).
-- Added a config option "max_cpu_percent" to adjust the target maximum CPU usage per CPU
- core. This defaults to 20%, i.e., 80% total for a quad core CPU. Maestral will aim to
- remain below that percentage but this is not guaranteed.
-
-#### Changed:
-
-- Replaced the `excluded_files` and `excluded_folders` settings from the config file
- with a unified `excluded_items` setting. Entries from `excluded_folders` will be
- migrated to the `excluded_items` setting.
-- Renamed methods which exclude / include folders to `exclude_item` etc.
-- Speed up creation of local folders.
-- When trying to create a file or folder with the same path as an item excluded by
- selective sync, the new item is now renamed by appending "selective sync conflict"
- instead of raising a sync issue. This is closer the behaviour of the official client.
-- Significant performance improvements to indexing and file event processing. Indexing a
- remote Dropbox with 20,000 to 30,000 files and comparing it a local folder now takes
- ~ 5 min, depending on on the average file size.
-- Introduced periodic reindexing every week. This has been made possible by the above
- performance improvements.
-
-#### Fixed:
-
-- Don't immediately retry when a download fails. Instead, save failed downloads and
- retry only on pause / resume or restart.
-- Fixes missing cursor and resulting unexpected `ValidationError` during sync startup.
-- Wait until all sync activity has stopped before moving the Dropbox folder. This avoids
- errors when trying to convert local to dropbox paths and vice versa during the move.
-- Fixes an issue which would prevent some conflicting copies created by Dropbox from
- being downloaded.
-- Correctly handle when a local item is renamed to an always excluded file name such as
- ".DS_STORE": the item is now deleted from Dropbox.
-- Fixes an issue where sharing an existing folder from the Dropbox website would result
- in the folder being deleted locally. This is because Dropbox actually removes the
- shared folder from the user's Dropbox and then re-mounts it as a shared drive / file
- system. We handle this correctly now by leaving the local folder alone or deleting and
- re-downloading it, depending on the time elapsed between removal and re-mounting.
-- Improves conflict resolution when a folder has been been replaced with a file or vice
- versa and both the local and remote item have un-synced changes.
-- Fixes an issue where `maestral stop` would block until all pending syncs have
- completed. This could potentially take a *very* long time for large downloads.
- Instead, any interrupted downloads will be restarted on next launch.
-
-#### Removed:
-
-- Removed the `excluded_files` and `excluded_folders` settings from the config file.
-
-## v0.6.1
-
-This release improves desktop notifications: Notifications will now only appear for
-remote file changes and you can chose between different notification levels (CLI only)
-and snooze notifications temporarily. It also reintroduces the `maestral autostart`
-command to start the sync daemon on login (requires systemd on Linux). This works
-independently of the GUI option "Start on login".
-
-There have also been significant changes in package structure: the GUI has been split
-off into a separate package `maestral-qt` which will be installed with the gui extra
-`pip3 install -U maestral[gui]` or directly with `pip3 install -U maestral-qt`. A native
-Cocoa GUI (`maestral-cocoa`) for macOS is currently in testing and will likely be
-released with the next update.
-
-Other changes include improved error handling, cleaned up config files and some tweaks
-to CLI commands. As always, there are several bug fixes. Thank you for all your
-feedback!
-
-#### Added:
-
-- New CLI command `maestral autostart` to start the daemon on login. This requires
- systemd on Linux. The "Start on login" option of the GUI remains independent and the
- GUI will attach to an existing daemon if it finds one.
-- Added desktop notifications for errors: Serious errors such as revoked Dropbox access,
- deleted Dropbox folder, etc, were previously only shown in the GUI as an alert window
- or printed as warnings when invoking a CLI command.
-- Support for different levels of desktop notifications (CLI only). You can now select
- between FILECHANGE, SYNCISSUE, ERROR and NONE with `maestral notify LEVEL`.
-- Added an option to snooze notifications. In the CLI, use `maestral notify snooze N` to
- snooze notifications for N minutes. In the GUI, use the "Snooze Notifications" menu.
-- Support using an existing directory when setting up Maestral through the CLI. This was
- previously only supported in the GUI. Files and folders in the existing directory will
- be merged with your Dropbox.
-- The CLI command `maestral restart` now supports restarting Maestral into the current
- process instead of spawning a new process. This is enabled by passing the
- `-f, --foreground` option.
-- Added a native Cocoa GUI for macOS. This removes the PyQt5 dependency for macOS and
- reduces the size of the bundled app from 50 MB to 15 MB. It also eliminates a few
- inconsistencies in GUI appearance. Especially the sync issues window looks a lot
- better (hopefully you won't see it too often).
-
-#### Changed:
-
-- Split off GUI into separate python packages (`maestral-qt`, `maestral-cocoa`).
-- Notify only for remote changes and not for those which originated locally. This
- should significantly reduce the number of unwanted notifications.
-- Renamed `maestral notifications` to `maestral notify` for brevity.
-- Renamed the `set-dir` command to `move-dir` to emphesize that it moves the local
- Dropbox folder to a new location.
-- Configurations are now tied to a Dropbox account:
- - New configurations are now created on-demand when calling `maestral gui` or
- `maestral start` with a new configuration name.
- - A configuration is automatically removed when unlinking a Dropbox account.
- - All configurations can be listed together with the account emails with
- `maestral configs`. This replaces `maestral config list`.
-- For app bundles on macOS, you can now pass a config option `-c, --config-name` to the
- bundle's executable ("Maestral.app/Contents/MacOS/main"). It will then use the
- specified configuration if it already exists or to create a new one.
-- The GUI no longer restarts after completing the setup dialog.
-- Removed sync and application state info from the config file. Sync and application
- states are now saved separately in '~/.local/share/maestral/CONFIG_NAME.state' on
- Linux and '~/Library/Application Support/maestral/CONFIG_NAME.state' on macOS.
-- Use atomic save to prevent corruption of the sync index if Maestral crashes or is
- killed during a save.
-- Moved the sync index to the same folder as the application state.
-- Improved conflict detection and resolution when changing files which are currently
- being uploaded or downloaded.
-
-#### Fixed:
-
-- Fixes an issue where local changes while maestral was not running could be overwritten
- by remote changes instead of resulting in a conflicting copy.
-- Fixes an issue where local file events could be ignored while a download is in
- progress.
-- Fixes an issue where a new local file could be incorrectly deleted if it was created
- just after a remote item at the same path was deleted.
-- Fixes an issue where `maestral stop` and `maestral restart` would not interrupt
- running sync jobs but instead wait for them to be completed. Now, aborted jobs will be
- resumed when starting Maestral again.
-- Correctly handle when a folder is replaced by a file and vice versa.
-- Correctly handle additional error types: internal Dropbox server error, insufficient
- space on local drive, file name too long for local file system and out-of-memory
- error.
-- Automatically resume upload in case of dropped packages instead of raising a sync
- issue.
-- Set the log level for the systemd journal according to user settings instead of always
- using logging.DEBUG.
-- Run checks for Dropbox folder location and link status when invoking `maestral
- restart`.
-- Notify the user through the GUI when moving the Dropbox directory fails instead of
- silently keeping the old directory.
-- Fixes an issue where the environment variable XDG_DATA_DIR would not be respected in
- Linux.
-
-#### Removed:
-
-- Removed "-a" option from `maestral ls`. List all entries by default, even if they
- start with a period.
-- Removed the `maestral config` command group. Configurations are now created and
- deleted on-demand and can be listed with `maestral configs`.
-
-## v0.5.2
-
-#### Added:
-
-- Added automatic crash and error reporting with [bugsnag](https://www.bugsnag.com).
- This is *disabled* by default and can be enabled in the Settings pane or with the
- command `maestral analytics -Y`. The information sent with the bug report contains a
- traceback, the Python version, basic platform information (e.g,
- 'Darwin-19.2.0-x86_64-i386-64bit') and potentially the version of PyQt5 and the user's
- desktop environment. No personal information will be shared.
-
-#### Changed:
-
-- Improved the code which handles multiple configurations: Explicitly pass the config
- name to classes instead of keeping it as a global variable.
-- Improved starting of the daemon: ensure that the right python executable is used.
-- Order of commands returned by `maestral --help` by importance instead of
- alphabetically.
-- Sync errors will now be listed by `maestral status` if present.
-- Live updates to the Settings window when settings are changed from the command line.
-
-#### Fixed:
-
-- Fixed an issue on macOS where some directory deletions could be ignored in case of
- rapid successive deletions.
-- Fixed an unexpected exception when attempting to create a directory that already
- exists. Do not rely on the `exists_ok` parameter in `os.makedirs` but catch
- `FileExistsError` explicitly (see https://bugs.python.org/issue13498).
-- Fixed an `AttributeError` when a local folder is replaced by file: the Dropbox
- metadata of the folder will not have a content hash. This mostly occurs when modifying
- a folder structure programmatically, for instance with git.
-- Fixed an `AttributeError` when a remote file has been replaced by a folder before its
- changes could be downloaded: the Dropbox metadata of the folder will not have a
- content hash.
-- Fixed an bug introduced in v0.5.0 which would cause rebuilding the index to block
- indefinitely.
-- Fixed a crash of the GUI when closing the settings window shortly after closing the
- "Chose folders to sync..." dialog. This was caused by QThreads being destroyed while
- the threads were still running.
-- Fixed an issue where the local revision number of a file could be set to 'folder',
- resulting in an exception from the Dropbox API.
-- Fixed a bug when the "relink dialog" (shown when Maestral's Dropbox access has
- expired) might use the wrong Dropbox account when syncing multiple accounts.
-- Fixed an issue with imports in Pyro5 5.7 which prevented the daemon from starting.
-
-#### Removed:
-
-- Removed the command `maestral errors` from the CLI.
-
-## v0.5.0
-
-This release improves the sync reliability in case of rapid successive changes to the
-local Dropbox folder. It also improves error handling and includes other bug fixes. This
-may be considered the first release candidate for a stable v1.0.0.
-
-#### Added:
-
-- Show a small bell on top of system tray icon in case of sync issues.
-- Notify the user when the local Dropbox folder contains too many items to watch and
- recommend increasing the maximum number of inotify watches (Linux only).
-- Notify the user when an upload fails because a file exceeds the size limit of 350 GB.
-- Notify the user when an upload fails due to dropped network packages.
-- Adds a command line option `maestral link -r` to relink to an existing account without
- resetting the sync state. This is the equivalent of the GUI 'relink dialog'.
-
-#### Changed:
-
-- Refines some error messages.
-- Improves error handling in CLI: avoid printing full Python tracebacks to the console.
- Print concise and actionable error messages instead if possible.
-- Improves formatting of `maestral ls` output.
-- Improves status notifications for large uploads: dynamically adapt the unit to show up
- to four significant digits (e.g., "16MB/1.6GB" instead of "0/1.6GB").
-- Reduces memory footprint of macOS app by stripping doc strings (at least 5MB in
- dropbox package only).
-
-#### Fixed:
-
-- Fixes multiple sync issues and corner cases due to rapid and successive file changes:
- The algorithm which combines successive changes of a local file to a single file event
- (created / deleted / modified / moved) has been simplified and improved.
-- Fixes an issue which could cause the watchdog thread to crash silently on case-
- sensitive file systems when saving changes to a file.
-- Removes sip import because it may fail depending on how PyQt was installed.
-- Fixed an issue where user notifications would not appear for certain implementations
- of 'notify-send'.
-- Fixes an error when setting the log level from the CLI.
-- Fixes an error when relinking Maestral through the GUI after its Dropbox access has
- been revoked.
-
-## v0.4.4
-
-This updates focuses on bug fixes and performance improvements. Notably, it reduces the
-memory usage of the GUI by ~ 30MB. If you are upgrading from v0.2.4 or earlier, please
-perform an incremental update to v0.4.3 first (see Removed section).
-
-#### Changed:
-
-- Show a progress dialog while checking for updates when requested by the user.
-- Show an error message when the GUI cannot connect to or start a sync daemon.
-- Reduces the memory footprint of the GUI by ~ 30 MB by avoiding Dropbox API imports and
- deleting QtWidgets when they are not visible.
-- Changing the log level (e.g., `maestral log level DEBUG`) no longer requires a restart
- of the maestral daemon to become effective.
-- `maestral set-dir` now takes the new path as an argument: `maestral set-dir PATH`. If
- not given, the user will be prompted to input a path or use the default.
-- Migrated from Pyro4 to Pyro5 for communication with sync daemon.
-
-#### Fixed:
-
-- Fixes an unhandled error when trying to upload changes to a file which is not currently
- indexed by Maestral.
-- Fixes an unhandled error when attempting to calculate the content hash of a file which
- has been deleted locally. This can occur after Maestral has been notified of remote
- changes to a file which is deleted locally before comparing file contents.
-- Fixes a bug which could result in multiple false "conflicting copies" of a file when
- the user modifies the file while it is being uploaded.
-- Fixes a regression bug which would prevent the creation and selection of new configs
- for different Dropbox accounts.
-- Fixes a bug that would prevent Maestral from properly shutting down a sync daemon
- which was started from the GUI. This was a result of the daemon's sync threads not
- exiting as long as a parent process from the same process group is still alive (the
- GUI in our case). We prevent this by using "double-fork" magic to properly orphan the
- daemon process so that init will perform its cleanup. See Stevens' "Advanced
- Programming in the UNIX Environment" for details (ISBN 0201563177).
-- Fixes an issue where the application launcher which is used to start Maestral on login
- in Linux may be untrusted.
-- Fixes an issue where `maestral set-dir` would fail if the new directory is the same as
- the old directory.
-
-#### Removed:
-
-- Removed code to migrate config files and sync indices from Maestral versions prior to
- v0.2.5.
-- Removed code to migrate authentication keys to the system keyring when upgrading from
- v0.1.2 or earlier.
-
-## v0.4.3
-
-#### Fixed:
-
-- Fixes a bug which would prevent periodic update checks from running.
-- Fixes an issue where the system tray icon would not be displayed on Qt 5.13.1 with
- enabled HighDpi support.
-- Fixes an issue which would prevent system tray icons from loading on Gnome 3.
-- Fixes and issue which would prevent macOS binaries from running due to the team ID
- missing in the a code-signing certificate. Note that, even though the macOS binary is
- code-signed, the certificate is not from Apple's Developer Program. Therefore, to run
- the app, you will have to "right-lick -> Open".
-
-#### Changed:
-
-- Tweaked system tray icon design.
-- Use NSUserNotificationCenter when running from Python outside of an app bundle.
-
-#### Removed:
-
-- Removed automatic detection of Gnome screen scaling factors because it caused problems
- on a few desktop environments. Set the environment variable `QT_SCREEN_SCALE_FACTORS`
- instead to enable it manually if required.
-
-## v0.4.2
-
-#### Added:
-
-- Added a command `maestral activity` which gives a live view of all items queued for
- syncing or currently being synced.
-
-#### Fixed:
-
-- Fixes crash of the sync thread when attempting to download a file from Dropbox which
- has been deleted after it has been queued for download but before the actual download
- attempt.
-- Fixes crash of the sync thread when attempting to upload a file to Dropbox which has
- been deleted after it has been queued for upload but before the actual upload attempt.
-- Fixes a bug where the revision number of a file could be incorrectly set to "folder".
-- Fixes a crash of the sync thread while indexing local changes (after a restart) if an
- indexed item has been deleted before we could check if it is a file or a folder.
-- Fixes a bug where newly downloaded files could be immediately re-uploaded in some
- cases.
-- Fixes a crash on startup when started as systemd service with watchdog.
-
-## v0.4.1
-
-This release focuses on bug fixes and performance improvements. Notable changes are:
-
-- You can now rebuild Maestral's index from the command line with `maestral rebuild-
- index`.
-- Communication between the sync daemon and frontend (GUI or CLI) is faster and more
- secure.
-- Improved system tray notifications.
-
-Here is the list of all changes:
-
-#### Added:
-
-- Added `maestral rebuild-index` command to CLI.
-- Added support for systemd software watchdog (see #55).
-
-#### Changed:
-
-- Renamed command `maestral config new` to `maestral config add`.
-- Renamed command `maestral config delete` to `maestral config remove`.
-- Improved system tray notifications:
- - Display the name of the user who changed a file
- - Added app-icon and and -name to Linux notifications.
- - Migrated macOS notifications from `NSUserNotificationCenter` (deprecated) to
- `UNUserNotificatioCenter` for macOS Mojave and higher.
-- Improved appearance of unlink dialog: show spinning progress indicator and perform
- unlink in the background.
-- Show menu entry "No recent files" when there are no recently changed files to display.
-- Use Unix domain sockets instead of TCP/IP sockets for communication with daemon. This
- means that communication is lighter, faster and more secure (other users on the same
- PC can no longer connect to your sync daemon).
-- Use NSTemporaryDirectory on macOS as runtime dir.
-- Simplified code for the initial sync.
-
-#### Fixed:
-
-- Fixes a bug where the CLI setup dialog could fail when choosing to replace an existing
- Dropbox folder.
-- Fixes a bug which would cause `maestral start` to hang indefinitely if the daemon is
- not created successfully (see #57).
-- Fixes a bug which would cause `maestral unlink` to fail when the Maestral daemon is
- still running.
-- Fixes a bug where the Maestral GUI would show a paused icon during the initial sync
- after setup.
-- Fixes a bug where the menu bar item "Pause Syncing" would not change to "Resume
- Syncing" when pausing sync through the CLI via `maestral pause` (and vice versa).
-- Catch unexpected exceptions in sync threads and display to user instead of crashing.
-- Do not upload changes to an excluded folder but raise a sync issue instead.
-- Fixes wrong color of system tray / menu bar icon on macOS when clicked in light-mode.
-- Fixes a regression bug from v0.4.0 which caused the creation of new configs for
- separate Dropbox accounts to fail silently.
-- Fixes a bug which could result in a missing sync cursor when running the Maestral
- thafter e initial setup. This would come from parallel access to the config files from
- tha read spawned by the setup dialog and the Maestral daemon itself. We now make sure
- ththat e setup dialog leaves no threads behind after exiting.
-- Fixes a bug which could cause false sync errors when adding a nested folder structure
- to the local Dropbox folder.
-- Fixes bug in converting Dropbox `DeleteError`s due to an invalid path to
- `MaestralApiError`s.
-- Fixes a bug which would prevent Maestral from detecting local changes to files that are
- part of a batch which is currently being downloaded.
-- Fixes a bug where the user may be asked to create a new keyring in a non-default
- wallet if multiple wallets are available on first start (see #56).
- See https://github.com/jaraco/keyring/issues/391 for the current behaviour of Python
- keyring.
-- Fixes a bug which could cause the Maestral daemon to be started with a different PATH
- than the invoking command (see #57).
-- Fixes a bug where changes to a file which is not synced locally would trigger "file
- added" instead of "file modified" notifications.
-
-## v0.4.0
-
-Main changes are:
-
-- Support the exclusion of subfolders.
-- Check and notify if updates are available.
-- Decoupled GUI and sync daemon.
-- Cleaned up the command line interface. Use `maestral start` instead of
- `maestral daemon start` and `maestral start --foreground` instead of `maestral sync`.
-- Bug fixes and performance improvements.
-
-Details are given below.
-
-#### Added:
-
-- Method to get the sync status of individual files or folders. This is also accessible
- through the CLI via `maestral file-status LOCAL_PATH`. In the future, this could be
- used by file manager plugins to overlay the sync status of files.
-- Support to exclude subfolders in the main API, CLI and GUI.
-- Added a command group `maestral excluded` to view and manage excluded folders.
- Available commands are `add`, `remove` and `show`.
-- For case-sensitive file systems: Automatically rename created items which have the
- same name as an existing item, but with a different case. This avoids possible issues
- on case-sensitive file systems since Dropbox itself is not case-sensitive.
-- GUI notifications when a new version of Maestral is available, configurable to daily,
- weekly, monthly or never.
-- A new "Check for updates..." menu entry.
-- Better integration with systemd: When the daemon is started from systemd, status
- updates and ready / stopping signals are sent to systemd and the log is sent to the
- journal instead of stdout. This requires the installation of the systemd extra as
- `pip3 install -U maestral[systemd]`, which will install `sdnotify` and `systemd-
- python`. The latter may require you install additional packages through your system's
- package manager first. See [here](https://github.com/systemd/python-systemd) for
- installation instructions.
-
-#### Changed:
-
-- Separated daemon and CLI code into different modules.
-- Simplified CLI:
- - Moved commands from `maestral daemon` to main command group, i.e.,
- `maestral daemon start` is now `maestral start`.
- - Removed `maestral sync`. Use `maestral start --foreground` instead.
-- GUI now uses only the main Maestral API which is exposed over sockets.
-- Changed returned values of the Maestral API to Python types only for better
- serialisation.
-- GUI now starts its own daemon on demand or attaches to an existing one. This daemon
- will run in a separate process, unless started from a macOS App bundle.
-- Improved startup time for large folders: Moved indexing of local files after a restart
- to the `upload_thread`.
-- Sync engine moved to a submodule.
-- Setup dialog no longer returns a Maestral instance on success but just ``True``. It
- is up to the GUI to create or attach to a Maestral daemon.
-
-#### Fixed:
-
-- Fixed an incorrect error being raised for a corrupted rev file, which could lead to a
- crash or misleading error message.
-- Fixed a bug which would cause a renamed file with a previously invalid name not to
- sync to Dropbox.
-- Fixed a bug in the GUI which would cause clicking on a recently changed file to reveal
- the wrong item in the file manager.
-- Fixed a bug which would cause the sync thread to crash when attempting to follow a
- broken symlink (#50). Now, the error will be reported to the user as a sync issue.
- Thanks to @michaelbjames for the fix.
-- Fixes a bug where the Dropbox path is not reset when aborting the setup dialog.
-
-#### Removed:
-
-- Removed the CLI command `maestral sync`. Use `maestral start --foreground` instead.
-
-
-## v0.3.2
-
-This release fixes a bug that could result in only changes of top-level items being
-synced. This affects users who carried out the initial linking with Maestral v0.2.5 or
-later and selected to exclude folders before the first download. Users affected by this
-should rebuild Maestral's index by selecting "Rebuild index..." in the main menu.
-
-Other improvements include expanded command line scripts with more useful output, minor
-bug fixes and small tweaks to the UI.
-
-#### Added:
-
-- Added a "status" property to `maestral.main` which shows the last log message.
-- Added a command group `maestral log` to view and clear the log as well set the logging
- level. Commands are:
- - `maestral log show`: Shows the logs in terminal.
- - `maestral log clear`: Clears the logs.
- - `maestral log level`: Returns the current log level.
- - `maestral log level [DEBUG|INFO|WARNING|ERROR]`: Sets the log level to the given
- value. Affects both stdout and file logs.
-- Added an option "-a" to `maestral ls` to include hidden files.
-- Added tooltips for system tray icon when not on macOS.
-
-#### Changed:
-
-- Made log levels persistent between sessions.
-- Changed the name of `maestral list` to `maestral ls` and, by default, do not list
- "hidden" items that start with a dot. Added an option "-a" to explicitly list all
- files in a directory.
-- Improved output from command line scripts:
- - Wrap all long outputs in empty lines.
- - Show more informative status.
- - Show Dropbox folder location in account-info.
- - Add colours to outputs like "[OK]" and "[FAILED]".
-- Set minimum version requirement for click package.
-- Reduced the startup time by downloading profile picture in a thread. Periodically
- update in the background (every 20 min).
-- Check hashes before uploading modified files. This speeds up re-linking an old folder
- by orders of magnitude.
-- Enable the creation of multiple autostart entries for different configurations.
-- Fall back to PNG tray icons if the platform may not support our svg format.
-
-#### Fixed:
-
-- Fixed a bug which would not allow running maestral for the first time before
- explicitly adding a configuration with `maestral config new`. Now, a default
- configuration is created automatically on first run.
-- Prevent the GUI and a daemon from syncing the same folder at the same time.
-- Fixed the creation of multiple daemons. A new daemon will no longer overwrite an old
- one and `maestral daemon start` will do nothing if a daemon for the given
- configuration is already running.
-- Automatic allocation of ports for the communication between daemon and client.
-- Show the (Dropbox) file path in the string representation of `MaestralApiError`.
- Previously, one could not see from the traceback which file caused the error.
-- Fixed a bug that would result in only changes of top-level items being synced. This
- affects users who carrier out the initial linking with Maestral v0.2.5 or later
- (commit 40be316b49f2198a01cc9ce9b804f8e6336e36f8) and selected to exclude folders
- before the initial sync. Users affected by this bug should rebuild Maestral's index by
- selecting "Rebuild index..." in the main menu.
-
-#### Removed:
-
-- No longer install a script "maestral-gui". Use "maestral gui" instead.
-
-## v0.3.1
-
-#### Fixed:
-
-- Fixes a bug when calling the command line script `maestral daemon errors`. This bug
- was the result of an error in pickling our MaestralApiExceptions (see
- [https://bugs.python.org/issue1692335#msg310951](https://bugs.python.org/issue1692335#msg310951)
- for a discussion).
-
-## v0.3.0
-
-This release includes several significant changes. The largest are:
-
-1) Support for multiple Dropbox accounts (via the command line)
-2) A Maestral daemon for the command line
-3) A redesigned settings window with more prominent account information
-
-The detailed list of changes is:
-
-#### Added:
-
-- Maestral can now be started as a daemon from the command line. A new command group
- `maestral daemon` has been introduced to manage this.
-- Added support for custom Dropbox folder names. The folder name must be set with the
- command line scripts.
-- Added a new command group `maestral config` to manage multiple Maestral configurations
- for different Dropbox accounts.
-- Added a new command line option `--config-name` or `-c` to select the configuration
- file to use.
-- Improved grouping and naming of command line scripts.
-- Added a "relink" dialog which is shown when Maestral's Dropbox access has expired or
- has been revoked by the user.
-- Improved logic to detect system tray color and set icons accordingly. This is mostly
- for KDE which, unlike Gnome, does not handle automatically adapting its tray icon
- colours.
-
-#### Changed:
-
-- Animated setup dialog.
-- Redesigned the settings window to show more prominent account information.
-- Improved command line and GUI flows for setting or moving the Dropbox folder location.
-- Moved to an Implicit Grant OAuth2 flow. This does not require an app secret to be
- stored in the client source code. Maestral will therefore no longer require the user
- to get their own API keys or to use the precompiled oauth binaries hosted on PyPI.
-- Improved the user massages given by command line scripts.
-- Improved status messages given in RebuildIndexDialog.
-- Unified and improved the creation of QThreads by the GUI to perform background tasks.
- This fixes an issue with occasional segfaults RebuildIndexDialog and improves the
- reliability of the UI.
-- Started to work on providing a top-level API in `Maestral` for all functionality that
- is required by the UI. There should be no need to interact with `Monitor` or
- `UpDownSync` directly for high-level functionality.
-
-#### Fixed:
-
-- Fixed a crash on startup if the Meastral's Dropbox access has expired or has been
- revoked.
-- Fixed handling of `ListFolder` errors. Those will only occur when the user gives an
- incorrect folder name to list and will (hopefully) never be caused my Maestral itself.
-
-## v0.2.6
-
-This release fixes a critical bug which would cause Maestral to get stuck after the
-initial sync. This does not affect users who have already performed the initial sync
-with a previous version of Maestral.
-
-#### Added:
-
-- Added a context menu entry to the "Sync issues" window to show a file on dropbox.com.
-
-#### Changed:
-
-- Move logs to '$XDG_CACHE_HOME/maestral' on Linux and '~/Library/Logs/maestral' on
- macOS.
-- Reduce the number of Dropbox API calls during initial sync.
-
-#### Fixed:
-
-- Fixed a bug which would cause Maestral to get stuck after the initial download.
-- Fixes an issue in macOS where modal dialogs in the settings window would sometimes
- appear behind the window instead of in front of it.
-
-## v0.2.5
-
-This release fixes several sync issues which could occur when the internet connection is
-lost during a sync. It also notifies the user if Maestral's access to their Dropbox has
-been revoked.
-
-#### Added:
-
-- Handle expired or invalidated Dropbox access.
-- Ask the user before overriding an existing folder in the setup dialog.
-- Added status updates for large file uploads (e.g., "Uploading 10/545MB...").
-
-#### Changed:
-
-- Significant speedup of initial indexing. Excluded folders or subfolders will no
- longer be indexed.
-- Save config files in the systems default location: '$XDG_CONFIG_HOME/maestral' or
- '.config/maestral' in Linux and '~/Library/Application Support/maestral' on macOS.
-
-#### Fixed:
-
-- Fixed a false "Dropbox folder cannot be found" message which would appear when
- quitting and restarting Maestral during the first sync. Now, the initial download is
- quietly resumed when relaunching Maestral.
-- Fixed an issue where an interrupted upload would not resume without restarting
- Maestral.
-- Fixed an issue where file changes while "offline" would sometimes not be synced to
- Dropbox when a connection is reestablished.
-- Fixed an issue where errors from `requests` would inadvertently get caught instead of
- being raised.
-
-## v0.2.4
-
-This version mainly improves the appearance and responsiveness of the GUI specifically
-on Linux platforms with a Gnome desktop. It also introduces a dialog to handle a deleted
-or moved Dropbox folder.
-
-#### Added:
-
-- Added a "Select all" option when choosing which folders to sync.
-- Handle deleted or moved Dropbox folder in setup dialog.
-- Handle deleted or moved Dropbox folder while Maestral is running.
-
-#### Changed:
-
-- Improved performance of the GUI on some Gnome systems in case of many rapid status
- changes.
-- Show system tray icon already during the setup dialog.
-
-#### Fixed:
-
-- Fixed size of the system tray icon in Gnome desktops with high-DPI scaling.
-- Fixed a bug which would result in an error dialog being shown for "normal" sync errors
- such as an invalid file name.
-- Fixed missing line-breaks in the traceback shown by the error dialog.
-- Updated console scripts to reflect changes in MaestralMonitor and MaestralApiClient.
-
-## v0.2.3
-
-This release mainly fixes crashes of the setup dialog and contains tweaks to the UI.
-
-#### Changed:
-
-- Launch into setup dialog if no Dropbox authentication token can be found in keychain.
-- Only log messages of level ERROR or higher to file.
-- Show account email in the system tray menu above space usage.
-- Unified the code for error dialogs and added an app icon to all dialogs.
-
-#### Fixed:
-
-- Fixed a bug which could could result in the user being asked to re-authenticate when
- no Dropbox folder is detected on startup.
-- Fixed a bug which could cause Maestral to crash during the setup dialog, immediately
- after user authentication.
-
-## v0.2.2
-
-#### Added:
-
-- Added support for file and folder names with two or more periods.
-- Temporary autosave files that are created by macOS are now detected by their extension
- and excluded from syncing.
-- More fine-grained errors, subclassed from `MaestralApiError`.
-- Log all events of level INFO and higher to a rotating file in '~/.maestral/logs'. The
- log folder size will never exceed 6 MB.
-
-#### Changed:
-
-- Better handling when Dropbox resets a cursor: retry any `files_list_folder` calls and
- prompt the user to rebuild the index on `files_list_folder_longpoll` calls.
-- Prepare for G-suite Dropbox integration: G-suite files such as Google docs and sheets
- will not be downloadable but can only be exported. Maestral will ignore such files.
-- Moved deprecated API calls to v2.
-- Better handling of `OSErrors` on download.
-- Tweaks to logo.
-
-#### Fixed:
-
-- Fixed a bug which would prevent some error dialogs from being shown to the user.
-- Fixed a bug which would cause the setup dialog to crash after linking to Dropbox.
-
-## v0.2.1
-
-#### Changed:
-
-- Reload all file and folder icons when the system appearance changes: the system may
- provide different icons (e.g., darker folder icons in "dark mode" on macOS Mojave).
-- Improved notification centre alerts in macOS: when installed as a bundled app,
- notifications are now properly sent from the Maestral itself, showing the Maestral
- icon, instead of through apple script.
-- Improved layout of the "Rebuild index" dialog.
-
-#### Fixed:
-
-- Fixes a bug which would prevent Meastral from starting on login: the correct startup
- script is now called.
-
-## v0.2.0
-
-#### Major changes
-
-#### Added:
-
-- Proper handling of sync errors. Dropbox API errors are converted to a more informative
- `MaestralApiError` and a log of sync errors is kept. This log is cleared as sync
- errors are resolved. Errors are now handled as follows:
- - Individual file sync errors are indicated by the system tray icon changing. The
- can listed by the user through the GUI.
- - Unexpected errors or major errors which prevent Maestral from functioning (e.g.,
- a corrupted index) trigger an error dialog.
-
-- Introduced a new panel "View Sync Issues..." to show an overview of sync issues and
- their cause (invalid file name, insufficient space on Dropbox, etc...)
-- Added a new function to rebuild Maestral's file index which is accessible through the
- GUI.
-- Added "Recently Changed Files" submenu to the system tray menu. "Recently Changed
- Files" shows entries for the 30 last-changed files (synced folders only) and navigates
- to the respective file in the default file manager when an entry is clicked.
-
-#### Changed:
-
-- Refactored sync code: Collected all sync functionality in a the new class
- `monitor.UpDownSync`. `MaestralClient` now only handles access to the Dropbox API
- itself but is no longer concerned with version tracking, etc. `MaestralClient` no
- longer catches Dropbox API errors but raises them, augmented with useful information,
- as `MaestralApiError`.
-- Moved storage of user authentication tokens from a text file to the system keyring. As a
- result, authentication tokens will be encrypted on the hard drive and only decrypted
- when the user logs in. On some systems, this may cause problems in headless mode, when
- the Gnome keyring is not loaded. The
- [keyring documentation](https://keyring.readthedocs.io/en/latest/#using-keyring-on-headless-linux-systems)
- provides help for such cases.
-
-#### Minor changes
-
-#### Added:
-
-- Added progress messages for uploads and downloads, e.g., "Downloading 3/98...". These
- are output as info messages and shown in the status field of the system tray menu.
-- When unlinking your Dropbox account through the GUI, Maestral is restarted to enter the
- setup dialog.
-- Refinements for dark interface themes such as Dark Mode in macOS Mojave
-
-#### Changed:
-
-- Use native system icons instead of macOS icons to represent files and folders.
-- Some programs save file changes by deleting the old file and creating a new file. This
- is now correctly combined to a single `FileModified` event.
-- Some programs create temporary files when saving changes. Those temporary files are
- deleted again after the save is completed. Those `FileCreated` and `FileDeleted`
- events, which occur in quick succession, are now ignored by Maestral.
-- The following file names have been added to the exclusion list:
- - Files that start with "\~$" or ".~"
- - Files that start with "~" and end with ".tmp"
-- Cleaned up some of the config module code: removed Spyder specific functions and
- obsolete Python 2 compatibility.
-- Adapted code to correctly load resources in case Maestral is packaged as a macOS app
- bundle.
-
-#### Fixed:
-
-- Fixed a bug which may result in a removed folder not being deleted locally if it
- contains subfolders.
-- Fixed a bug which may result in file modifications not being uploaded, depending on
- how the changes were saved by the program which was used to edit the file.
-- Fixed a bug which would incorrectly list top level files as folders in the "Exclude
- folders" dialog.
-- Truncate entries in the "Recently Changed Files" menu if their width exceeds 200
- pixels.
-- Fixed a bug which would cause Maestral to crash when clicking "Choose folders to
- sync..." while Maestral cannot connect to Dropbox servers.
-
-## v0.1.2
-
-#### Added:
-
-- Added new command line option 'autostart' to automatically start Maestral on login.
-
-#### Changed:
-
-- Limit notifications to remote changes only and only notify for changes in folders that
- currently being synced, unless more than 100 files have changed.
-- Detect colour of system tray and invert icon colour automatically if not on macOS.
-- Shut down immediately and kill threads instead of waiting for timeout.
-- Improve appearance of Settings window in GTK 3 style.
-
-#### Fixed:
-
-- Fixed a bug which would cause uploads to fail if they are split into multiple chunks.
-- Fixed a bug that would prevent Maestral from quitting if the setup dialog is aborted.
-- Fixed a bug that would cause Maestral to crash during the setup dialog when switching
- multiple times between the "Select Folders to Sync" and "Select Dropbox location"
- panels.
-- Do not upload files that have identical content on Dropbox. Previously: files were
- always uploaded and conflict checking was left to do by the Dropbox server.
-
-## v0.1.1
-
-#### Fixed:
-
-- Fixes an issue which would prevent newly created empty folders from being synced.
-- Remove references to conda in startup script.
+See `maestral` changelog for release notes.
diff --git a/PKGBUILD b/PKGBUILD
index 5e07909eff1c..6602565cbea8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,8 +2,8 @@
# Contributor: Batuhan Baserdem <lastname dot firstname at gmail>
pkgname=maestral-qt
-pkgver=1.5.3
-pkgrel=2
+pkgver=1.6.0
+pkgrel=1
pkgdesc='Qt interface for Maestral'
arch=('any')
url="https://github.com/SamSchott/maestral-qt"
@@ -13,12 +13,12 @@ depends=(
'python-click'
'python-markdown2'
'python-packaging'
- 'python-pyqt5')
+ 'python-pyqt6')
optdepends=('gnome-shell-extension-appindicator: Gnome integration')
-makedepends=('python-build' 'python-installer' 'python-wheel')
+makedepends=('python-setuptools' 'python-build' 'python-installer' 'python-wheel')
changelog=CHANGELOG.md
source=("$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz")
-sha256sums=('d8f85c1cc3e5449f494c81f490997d6b4c300c3829b7a4ee5c1841cdc718a3f5')
+sha256sums=('3814d0d8d9c16a9b584f6a26ac4c12f1a7332e85732b320ed2f14bd4702b7641')
build() {
cd "$pkgname-$pkgver"
@@ -29,5 +29,10 @@ package() {
export PYTHONHASHSEED=0
cd "$pkgname-$pkgver"
python -m installer --destdir="$pkgdir/" dist/*.whl
- install -Dm644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ local _site="$(python -c 'import site; print(site.getsitepackages()[0])')"
+ install -d "$pkgdir/usr/share/licenses/$pkgname/"
+ ln -s \
+ "$_site/maestral_qt-$pkgver.dist-info/LICENSE.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}