diff --git a/.travis.yml b/.travis.yml index 2e82b64b5..dd82b844d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,9 +31,9 @@ before_install: jobs: exclude: - - python: "3.9" - - python: "3.10" - - python: "3.11" + #release prep# - python: "3.9" + #release prep# - python: "3.10" + #release prep# - python: "3.11" # Excluding this temporarily because of an Issue on Travis. Support contact established. - arch: ppc64le python: "3.12" diff --git a/CHANGES b/CHANGES index abf8769a2..bd8a6f4c1 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,6 @@ Back In Time -Version 1.4.2-dev (development of upcoming release) +Version 1.4.3 (2024-01-30) * Feature: Exclude 'SingletonLock' and 'SingletonCookie' (Discord) and 'lock' (Mozilla Firefox) files by default (part of #1555) * Work around: Relax `rsync` exit code 23: Ignore instead of error now (part of #1587) * Feature (experimental): Add new snapshot log filter `rsync transfer failures (experimental)` to find them easier (they are normally not shown as "error"). diff --git a/README.md b/README.md index dbaeb1611..c3710db5a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Translation status](https://translate.codeberg.org/widget/backintime/common/svg-badge.svg)](https://translate.codeberg.org/engage/backintime) # Back In Time -Copyright (C) 2008-2023 Oprea Dan, Bart de Koning, Richard Bailey, +Copyright (C) 2008-2024 Oprea Dan, Bart de Koning, Richard Bailey, Germar Reitze, Taylor Raack, Christian Buhtz, Michael Büker, Jürgen Altfeld It is an easy-to-use backup tool for files and folders. @@ -79,6 +79,7 @@ In the latest stable release: - [File permissions handling and therefore possible non-differential backups](#file-permissions-handling-and-therefore-possible-non-differential-backups) - RTE "module 'qttools' has no attribute 'initate_translator'" with encFS when prompting the user for a password (#1553) - [Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).](#warning-apt-key-is-deprecated-manage-keyring-files-in-trustedgpgd-instead-see-apt-key8) +- [`qt5_probing.py` may hang with high CPU usage when running BiT as `root` via `cron`](#qt5_probingpy-may-hang-with-high-cpu-usage-when-running-bit-as-root-via-cron) In older releases: - [Tray icon or other icons not shown correctly](#tray-icon-or-other-icons-not-shown-correctly) @@ -117,6 +118,17 @@ to support all Ubuntu distros (older and newer ones). This issue is tracked in [#1338](https://github.com/bit-team/backintime/issues/1338). +#### `qt5_probing.py` may hang with high CPU usage when running BiT as `root` via `cron` + +See the related issue #1592 + +The only reliable work-around is to delete (or move into another folder) +the file `/usr/share/backintime/common/qt5_probing.py`: + +`mv /usr/share/backintime/common/qt5_probing.py /usr/share/backintime/` + +Renaming does *not* work! + ### Problems in versions older than the latest stable release #### Tray icon or other icons not shown correctly @@ -183,4 +195,4 @@ Ubuntu 22.04 LTS ships with Python 3.10 and backintime 1.2.1, but has applied [a patch](https://bugs.launchpad.net/ubuntu/+source/backintime/+bug/1976164/+attachment/5593556/+files/backintime_1.2.1-3_1.2.1-3ubuntu0.1.diff) to make it work. If you want to update to backintime 1.3.2 in Ubuntu, you may use the PPA: see under [`INSTALL/Ubuntu PPA`](#Ubuntu-PPA). -November 2023 +Jan 2024 diff --git a/TRANSLATIONS b/TRANSLATIONS index 5feb588f3..c58bcc771 100644 --- a/TRANSLATIONS +++ b/TRANSLATIONS @@ -1,7 +1,12 @@ +Bokmål (Norwegian): Hans Fredrik Nordhaug Catalan: Josep Sanchez German: Michael Wiedmann French: Michel Corps , jej@github +Indonesian: Andika Triwidada Japanese: Ayako Buhtz +Nynorsk (Norwegian) + - Hans Fredrik Nordhaug + - VL Polish: Paweł Hołuj Portuguese (Brazilian): - Scythemare diff --git a/VERSION b/VERSION index f9f73cc57..428b770e3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.4.2-dev +1.4.3 diff --git a/common/config.py b/common/config.py index df9f56837..82d95a0b1 100644 --- a/common/config.py +++ b/common/config.py @@ -66,8 +66,8 @@ class Config(configfile.ConfigFileWithProfiles): APP_NAME = 'Back In Time' - VERSION = '1.4.2-dev' - COPYRIGHT = 'Copyright (C) 2008-2023 Oprea Dan, Bart de Koning, ' \ + VERSION = '1.4.3' + COPYRIGHT = 'Copyright (C) 2008-2024 Oprea Dan, Bart de Koning, ' \ 'Richard Bailey, Germar Reitze, Christian Buhtz, Michael Büker, Jürgen Altfeld et al.' CONFIG_VERSION = 6 diff --git a/common/doc-dev/BiT_release_process.md b/common/doc-dev/BiT_release_process.md index d7f266628..7aaacdf80 100644 --- a/common/doc-dev/BiT_release_process.md +++ b/common/doc-dev/BiT_release_process.md @@ -14,7 +14,7 @@ using a "feature" branch and sending a pull request asking for a review. ## Preconditions for a new release - Developers agreed on the new version number. -- Most-recent translations were merged into `dev` branch. See the [localization docu](2_localization.md). +- Most-recent translations were merged into `dev` branch. See the [localization documentation](2_localization.md). - Full CI build pipeline matrix is activate (see [#1529](https://github.com/bit-team/backintime/issues/1529)). - `dev` version was tested (CLI in `common` and GUI in `qt`) and testers/developers agreed on "readiness to be released". @@ -49,7 +49,7 @@ When the PR is merged: - Pull latest `dev` branch changes into your BiT repo clone's `dev` branch: ``` git switch dev - git pull upstream + git pull upstream dev ``` - Create a release candidate branch in your clone using the new version number: @@ -79,8 +79,11 @@ When the PR is merged: make ``` -- Use a linter like [`pylint`](https://pypi.org/project/pylint/) to identify code errors that are not obvious but +- **Recommended:** Use a linter like [`pylint`](https://pypi.org/project/pylint/) to identify code errors that are not obvious but may be found only (too late) at run-time, eg. object name typos (see e.g. [#1553](https://github.com/bit-team/backintime/issues/1553)). + + *Note:* Since v1.4.x there is a unit test `test_lint.py` which performs + a minimal check for severe problems via `make test`. - Update the `CHANGES` text file in the project's root folder: @@ -123,7 +126,10 @@ When the PR is merged: .TH backintime-config 1 "Aug 2023" "version 1.4.0" "USER COMMANDS" ``` -- Optional: Search for all "copyright" strings an add missing major contributors +- Optional: Search for all "copyright" strings in the code to update the year and add missing major contributors + + Eg.: + - common/config.py There is also script `updatecopyright.sh` in the project's root folder which updates the copyright dates in all files but this script @@ -146,6 +152,9 @@ When the PR is merged: to stay visible for users of older versions. - Remove old known problems if you are sure old BiT versions with this issue are unlikely to be used "in the wild" anymore. + - Update table of contents (TOC) for the changed parts. + You can eg. use https://github.com/derlin/bitdowntoc to generate a TOC and + copy the changed parts into the `README.md`. - Build the prepared release candidate and execute the unit tests: diff --git a/common/doc-dev/conf.py b/common/doc-dev/conf.py index cc030ae1d..090b27bed 100644 --- a/common/doc-dev/conf.py +++ b/common/doc-dev/conf.py @@ -61,7 +61,7 @@ author = 'Germar Reitze' # Don't edit this variable. It is updated automatically by "updateversion.sh". -version = '1.4.2-dev' +version = '1.4.3' # The full version, including alpha/beta/rc tags. release = version # '1.3.3-dev' diff --git a/common/man/C/backintime-askpass.1 b/common/man/C/backintime-askpass.1 index ce83f5b57..75acb7594 100644 --- a/common/man/C/backintime-askpass.1 +++ b/common/man/C/backintime-askpass.1 @@ -1,4 +1,4 @@ -.TH backintime-askpass 1 "Oct 2023" "version 1.4.2-dev" "USER COMMANDS" +.TH backintime-askpass 1 "Jan 2024" "version 1.4.3" "USER COMMANDS" .SH NAME backintime-askpass \- a simple backup tool for Linux. .PP diff --git a/common/man/C/backintime-config.1 b/common/man/C/backintime-config.1 index cf00d1e45..f11b6e7a5 100644 --- a/common/man/C/backintime-config.1 +++ b/common/man/C/backintime-config.1 @@ -1,4 +1,4 @@ -.TH backintime-config 1 "Nov 2023" "version 1.4.2-dev" "USER COMMANDS" +.TH backintime-config 1 "Jan 2024" "version 1.4.3" "USER COMMANDS" .SH NAME config \- BackInTime configuration files. .SH SYNOPSIS diff --git a/common/man/C/backintime.1 b/common/man/C/backintime.1 index dc0fa4393..efd11f10d 100644 --- a/common/man/C/backintime.1 +++ b/common/man/C/backintime.1 @@ -1,4 +1,4 @@ -.TH backintime 1 "Oct 2023" "version 1.4.2-dev" "USER COMMANDS" +.TH backintime 1 "Jan 2024" "version 1.4.3" "USER COMMANDS" .SH NAME backintime \- a simple backup tool for Linux. .PP diff --git a/debian/changelog b/debian/changelog index 5966889fc..1c26dde39 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,28 @@ -backintime (1.4.2-dev) unstable; urgency=low - * TODO +backintime (1.4.3) unstable; urgency=low + * Feature: Exclude 'SingletonLock' and 'SingletonCookie' (Discord) and 'lock' (Mozilla Firefox) files by default (part of #1555) + * Work around: Relax `rsync` exit code 23: Ignore instead of error now (part of #1587) + * Feature (experimental): Add new snapshot log filter `rsync transfer failures (experimental)` to find them easier (they are normally not shown as "error"). + This feature is experimental because it is based on hard-coded error message strings in the rsync source code + and may possibly not find all rsync messages or show false positives. + * Fix bug: 'qt5_probing.py' hangs when BiT is run as root and no user is logged into a desktop environment (#1592 and #1580) + * Fix bug: Launching BiT GUI (root) hangs on Wayland without showing the GUI (#836) + * Improve: Launcher for BiT GUI (root) does not enforce Wayland anymore but uses same settings as for BiT GUI (userland) (#1350) + * Fix bug: Disabling suspend during taking a backup ("inhibit suspend") hangs when BiT is run as root and no user is logged into a desktop environment (#1592) + * Change of semantics: BiT running as root never disables suspend during taking a backup ("inhibit suspend") even though this may have worked before in BiT <= v1.4.1 sometimes (required to fix #1592) + * Fix bug: RTE: module 'qttools' has no attribute 'initate_translator' with encFS when prompting the user for a password (#1553). + * Fix bug: Schedule dropdown menu used "minutes" instead of "hours". + * Fix bug: Unhandled exception "TypeError: 'NoneType' object is not callable" in tools.py function __log_keyring_warning (#820). + Logging thread removed and logger module correctly initialized as fix. Is "Heisenbug" so 100 % retesting was not possible. + * Build: Use PyLint in unit testing to catch E1101 (no-member) errors. + * Build: Activate PyLint warning W1401 (anomalous-backslash-in-string). + * Build: Add codespell config. + * Build: Allow manual specification of python executable (--python=PYTHON_PATH) in common/configure and qt/configure + * Build: All starter scripts do use an absolute path to the python executable by default now via common/configure and qt/configure (#1574) + * Build: Install dbus configuration file to /usr/share not /etc (#1596) + * Build: `configure` does delete old installed files (`qt4plugin.py` and `net.launchpad.backintime.serviceHelper.conf`) that were renamed or moved in a previous release (#1596) + * Translation: Minor modifications in source strings and updating language files. + * Refactor: Solved circular dependency between tools.py and logger.py to fix #820 + * Improved: qtsystrayicon.py, qt5_probing.py, usercallbackplugin.py and all parts of app.py + do now also use "backintime" as logging namespace in the syslog to ensure complete log output with `journalctl | grep -i backintime` - -- Germar Reitze Sun, 01 Oct 2023 18:27:42 +0200 + -- Germar Reitze Tue, 30 Jan 2024 22:11:16 +0100 diff --git a/qt/app.py b/qt/app.py index 6b7c4ad3f..0adc9f59b 100644 --- a/qt/app.py +++ b/qt/app.py @@ -88,7 +88,8 @@ QSortFilterProxyModel, QDir, QSize, - QUrl + QUrl, + pyqtRemoveInputHook, ) import settingsdialog import snapshotsdialog @@ -443,6 +444,9 @@ def _create_actions(self): """ action_dict = { + # because of "icon" + # pylint: disable=undefined-variable + # 'Name of action attribute in "self"': ( # ICON, Label text, # trigger_handler_function, diff --git a/qt/man/C/backintime-qt.1 b/qt/man/C/backintime-qt.1 index c79d8773a..05e65a3f2 100644 --- a/qt/man/C/backintime-qt.1 +++ b/qt/man/C/backintime-qt.1 @@ -1,4 +1,4 @@ -.TH backintime-qt 1 "Oct 2023" "version 1.4.2-dev" "USER COMMANDS" +.TH backintime-qt 1 "Oct 2023" "version 1.4.3" "USER COMMANDS" .SH NAME backintime-qt \- a simple backup tool. .SH SYNOPSIS