stewartadam / fwbackups Goto Github PK
View Code? Open in Web Editor NEWA feature-rich, user-friendly backup program [bugfixes only]
Home Page: http://www.diffingo.com/oss/fwbackups/
License: GNU General Public License v2.0
A feature-rich, user-friendly backup program [bugfixes only]
Home Page: http://www.diffingo.com/oss/fwbackups/
License: GNU General Public License v2.0
Please add POT file in sources. It will help to sync with transifex.
If you will update POT file it will be uploaded at transifex automatically.
Backup sets currently automatically create a crontab entry unless they are disabled, at which point the GUI will refuse to backup the set (even if manually triggered).
This behavior can be overridden using fwbackups-run -f
on the CLI but there is no GUI equivalent functionality.
Adjusting GUI behavior to permit backups of disabled sets when clicking Backup Set Now would enable the scenario for users to configuring a backup that they wish to run repeatedly but trigger manually.
A progress indicator would really be a useful. Progress bar with speed and percentage is optimal, but even just bytes written would be helpful for large backups.
When setting the preference "Start fwbackups (minimized) when I login" to enabled and there is no folder named ~/.config/autostart, fwbackups creates a file names autostart with the fwbackups.desktop contents in it.
Steps to Reproduce:
Observed results:
~/.config/autostart is a file with the contents of the .desktop file (and Gnome-tweaks/gnome-tweak-tool crashes because of it. bugreport: https://gitlab.gnome.org/GNOME/gnome-tweaks/issues/186)
Expected results:
A folder named ~/.config/autostart with the fwbackups.desktop file in it.
Workaround:
create a folder named autostart in ~/.config/ if there is none
Hello, i get the following error code when trying to launch the application:
Traceback (most recent call last):
File "/usr/share/fwbackups/fwbackups-runapp.pyw", line 47, in <module>
from fwbackups import interface
File "/usr/lib/python2.7/dist-packages/fwbackups/interface.py", line 23, in <module>
import gtk.glade
ImportError: No module named glade
It would be nice to have the possibility to divide a backup archive into more archives which have a chosen size.
e.g. 512MB or so .... ;-) ... opening too big archives can be difficult depending on hardware.
I have many compilation errors while making source code.
First it was "./configure" - intltool version lower than 0.35.0, i upgraded it to 0.51.0, then everything ok.
But while it was making (make install), i observed compilation errors (listed below)
Steps to Reproduce:
Observed results: Errors while makeinstalling
Expected results: Installation
Making install in bin
make[1]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/bin'
make[2]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/bin'
make[2]: Nothing to be done for 'install-exec-am'.
/bin/bash /home/ooolledj/Downloads/fwbackups-1.43.7/install-sh -d /usr/local/bin
/usr/bin/install -c -m 755 fwbackups /usr/local/bin/fwbackups
/usr/bin/install -c -m 755 fwbackups-run.py /usr/local/bin/fwbackups-run
/usr/bin/install -c -m 755 fwbackups-runonce.py /usr/local/bin/fwbackups-runonce
make[2]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/bin'
make[1]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/bin'
Making install in po
make[1]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/po'
linguas="de es et fr gl hr id is lt ms nb_NO nl oc pt_BR pt_PT ru sq sv th tr uk "; \
for lang in $linguas; do \
dir=/usr/local/share/locale/$lang/LC_MESSAGES; \
/bin/bash /home/ooolledj/Downloads/fwbackups-1.43.7/install-sh -d $dir; \
if test -r $lang.gmo; then \
/usr/bin/install -c -m 644 $lang.gmo $dir/fwbackups.mo; \
echo "installing $lang.gmo as $dir/fwbackups.mo"; \
else \
/usr/bin/install -c -m 644 ./$lang.gmo $dir/fwbackups.mo; \
echo "installing ./$lang.gmo as" \
"$dir/fwbackups.mo"; \
fi; \
if test -r $lang.gmo.m; then \
/usr/bin/install -c -m 644 $lang.gmo.m $dir/fwbackups.mo.m; \
echo "installing $lang.gmo.m as $dir/fwbackups.mo.m"; \
else \
if test -r ./$lang.gmo.m ; then \
/usr/bin/install -c -m 644 ./$lang.gmo.m \
$dir/fwbackups.mo.m; \
echo "installing ./$lang.gmo.m as" \
"$dir/fwbackups.mo.m"; \
else \
true; \
fi; \
fi; \
done
installing de.gmo as /usr/local/share/locale/de/LC_MESSAGES/fwbackups.mo
installing es.gmo as /usr/local/share/locale/es/LC_MESSAGES/fwbackups.mo
installing et.gmo as /usr/local/share/locale/et/LC_MESSAGES/fwbackups.mo
installing fr.gmo as /usr/local/share/locale/fr/LC_MESSAGES/fwbackups.mo
installing gl.gmo as /usr/local/share/locale/gl/LC_MESSAGES/fwbackups.mo
installing hr.gmo as /usr/local/share/locale/hr/LC_MESSAGES/fwbackups.mo
installing id.gmo as /usr/local/share/locale/id/LC_MESSAGES/fwbackups.mo
installing is.gmo as /usr/local/share/locale/is/LC_MESSAGES/fwbackups.mo
installing lt.gmo as /usr/local/share/locale/lt/LC_MESSAGES/fwbackups.mo
installing ms.gmo as /usr/local/share/locale/ms/LC_MESSAGES/fwbackups.mo
installing nb_NO.gmo as /usr/local/share/locale/nb_NO/LC_MESSAGES/fwbackups.mo
installing nl.gmo as /usr/local/share/locale/nl/LC_MESSAGES/fwbackups.mo
installing oc.gmo as /usr/local/share/locale/oc/LC_MESSAGES/fwbackups.mo
installing pt_BR.gmo as /usr/local/share/locale/pt_BR/LC_MESSAGES/fwbackups.mo
installing pt_PT.gmo as /usr/local/share/locale/pt_PT/LC_MESSAGES/fwbackups.mo
installing ru.gmo as /usr/local/share/locale/ru/LC_MESSAGES/fwbackups.mo
installing sq.gmo as /usr/local/share/locale/sq/LC_MESSAGES/fwbackups.mo
installing sv.gmo as /usr/local/share/locale/sv/LC_MESSAGES/fwbackups.mo
installing th.gmo as /usr/local/share/locale/th/LC_MESSAGES/fwbackups.mo
installing tr.gmo as /usr/local/share/locale/tr/LC_MESSAGES/fwbackups.mo
installing uk.gmo as /usr/local/share/locale/uk/LC_MESSAGES/fwbackups.mo
make[1]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/po'
Making install in pixmaps
make[1]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/pixmaps'
make[2]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/pixmaps'
make[2]: Nothing to be done for 'install-exec-am'.
/bin/bash /home/ooolledj/Downloads/fwbackups-1.43.7/install-sh -d /usr/local/share/icons/hicolor/{scalable,128x128,64x64,48x48,32x32,16x16}/apps/
/bin/bash /home/ooolledj/Downloads/fwbackups-1.43.7/install-sh -d /usr/local/share/fwbackups/
/usr/bin/install -c -m 644 fwbackups.svg /usr/local/share/icons/hicolor/scalable/apps/fwbackups.svg
/usr/bin/install -c -m 644 fwbackups-128.png /usr/local/share/icons/hicolor/128x128/apps/fwbackups.png
/usr/bin/install -c -m 644 fwbackups-64.png /usr/local/share/icons/hicolor/64x64/apps/fwbackups.png
/usr/bin/install -c -m 644 fwbackups-48.png /usr/local/share/icons/hicolor/48x48/apps/fwbackups.png
/usr/bin/install -c -m 644 fwbackups-32.png /usr/local/share/icons/hicolor/32x32/apps/fwbackups.png
/usr/bin/install -c -m 644 fwbackups-16.png /usr/local/share/icons/hicolor/16x16/apps/fwbackups.png
/usr/bin/install -c -m 644 fwbackups-32.png /usr/local/share/fwbackups/fwbackups.png
make[2]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/pixmaps'
make[1]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/pixmaps'
Making install in src
make[1]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src'
make[2]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src'
make[2]: Nothing to be done for 'install-exec-am'.
/bin/bash /home/ooolledj/Downloads/fwbackups-1.43.7/install-sh -d /usr/local/share/applications
/usr/bin/install -c -m 644 fwbackups.desktop /usr/local/share/applications/fwbackups.desktop
/usr/bin/mkdir -p '/usr/local/share/fwbackups'
/usr/bin/install -c -m 644 BugReport.glade fwbackups.glade fwbackups-autostart.desktop fwbackups-runapp.pyw '/usr/local/share/fwbackups'
make[2]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src'
make[1]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src'
Making install in src/fwbackups/operations
make[1]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups/operations'
make[2]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups/operations'
make[2]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/usr/local/lib/python3.8/site-packages/fwbackups/operations'
/usr/bin/install -c -m 644 __init__.py backup.py restore.py '/usr/local/lib/python3.8/site-packages/fwbackups/operations'
<string>:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
Byte-compiling python modules...
__init__.py File "/usr/local/lib/python3.8/site-packages/fwbackups/operations/__init__.py", line 66
except Exception, error:
^
SyntaxError: invalid syntax
backup.py File "/usr/local/lib/python3.8/site-packages/fwbackups/operations/backup.py", line 262
except IOError, description:
^
SyntaxError: invalid syntax
restore.py File "/usr/local/lib/python3.8/site-packages/fwbackups/operations/restore.py", line 126
except Exception, error:
^
SyntaxError: invalid syntax
Byte-compiling python modules (optimized versions) ...
__init__.pybackup.pyrestore.py
make[2]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups/operations'
make[1]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups/operations'
Making install in src/fwbackups
make[1]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups'
make[2]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups'
make[2]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/usr/local/lib/python3.8/site-packages/fwbackups'
/usr/bin/install -c -m 644 config.py const.py cron.py fwlogger.py i18n.py __init__.py interface.py sftp.py shutil_modded.py widgets.py '/usr/local/lib/python3.8/site-packages/fwbackups'
<string>:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
Byte-compiling python modules...
config.py File "/usr/local/lib/python3.8/site-packages/fwbackups/config.py", line 48
os.mkdir(encode(directory), 0700)
^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
const.pycron.pyfwlogger.py File "/usr/local/lib/python3.8/site-packages/fwbackups/fwlogger.py", line 68
except Exception, error:
^
SyntaxError: invalid syntax
i18n.py__init__.py File "/usr/local/lib/python3.8/site-packages/fwbackups/__init__.py", line 165
print "You must install PyCron to run this program."
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("You must install PyCron to run this program.")?
interface.py File "/usr/local/lib/python3.8/site-packages/fwbackups/interface.py", line 51
(`name`, `self.filename`))
^
SyntaxError: invalid syntax
sftp.py File "/usr/local/lib/python3.8/site-packages/fwbackups/sftp.py", line 48
except IOError, errorDesc:
^
SyntaxError: invalid syntax
shutil_modded.py File "/usr/local/lib/python3.8/site-packages/fwbackups/shutil_modded.py", line 62
raise Error, "`%s` and `%s` are the same file" % (src, dst)
^
SyntaxError: invalid syntax
widgets.py File "/usr/local/lib/python3.8/site-packages/fwbackups/widgets.py", line 135
except UnicodeDecodeError, e:
^
SyntaxError: invalid syntax
Byte-compiling python modules (optimized versions) ...
config.pyconst.pycron.pyfwlogger.pyi18n.py__init__.pyinterface.pysftp.pyshutil_modded.pywidgets.py
make[2]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups'
make[1]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7/src/fwbackups'
make[1]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7'
make[2]: Entering directory '/home/ooolledj/Downloads/fwbackups-1.43.7'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7'
make[1]: Leaving directory '/home/ooolledj/Downloads/fwbackups-1.43.7'
Just wondering if anyone can help out installing fwbackups on recent Ubuntu (Ubuntu Budgie 20.04.1).
After installation, I get the error:
/usr/bin/fwbackups: line 30: python: command not found
In that file, I changed python > python2.7. Now I get this error when I run fwbackups
:
$ fwbackups
An error occurred while importing gtk/gobject.
Please make sure you have a valid GTK+ Runtime Environment.
I also tried:
sudo ln -s ../site-packages/fwbackups /usr/lib/python2.7/dist-packages/fwbackups
But that didn't help.
Your GUI is so straightforward and intuitive, plus as a backup tool for personal files it has all the features I want. I would love to use it as I haven't found a similar easy alternative (and I have been looking a lot).
when try to build and install I got this error:
The Meson build system
Version: 0.61.2
Source dir: /home/saibal/Scaricati/fwbackups-feature-gtk4
Build dir: /home/saibal/Scaricati/fwbackups-feature-gtk4/_build
Build type: native build
meson.build:1:0: ERROR: Meson version is 0.61.2 but project requires >= 0.62.0
I installed last version of meson in ubuntu 22.04 repository. I will try with flatpak
nothing to report. Just to say that it's my preferred program for backups. I have been using it since 4 years.
Originally posted by @MidnightJava in #17 (comment)
Thanks for maintaining this and esp for the rc2 fix. It was working for me, and then today for reasons I don't understand it was unable to launch the GUI. No UI would appear, and I found these entries in syslog:
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: Traceback (most recent call last):
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: File "/app/lib/python3.10/site-packages/fwbackups/ui/init.py", line 368, in runSetup
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: self._checkLogSize()
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: File "/app/lib/python3.10/site-packages/fwbackups/ui/init.py", line 430, in _checkLogSize
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: response = self.displayConfirm(self.ui.splash, _("Would you like to clean up the log file?"), _("The log file is becoming large (%s). Would you like to clear it? This will permanently remove all entries from the log.") % size)
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: AttributeError: 'UILoader' object has no attribute 'splash'
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: During handling of the above exception, another exception occurred:
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: Traceback (most recent call last):
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: File "/app/lib/python3.10/site-packages/fwbackups/ui/init.py", line 144, in do_command_line
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: self.do_activate()
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: File "/app/lib/python3.10/site-packages/fwbackups/ui/init.py", line 209, in do_activate
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: self.runSetup()
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: File "/app/lib/python3.10/site-packages/fwbackups/ui/init.py", line 371, in runSetup
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: self.displayInfo(self.ui.splash,
Jul 1 21:25:04 darp com.diffingo.fwbackups.desktop[7614]: AttributeError: 'UILoader' object has no attribute 'splash'
The links from the application to the online 'help' are broken. They point to the following address : http://downloads.diffingo.com/fwbackups/docs/1.43.8-rc2-html/
Message: '404 Not Found'.
Hi Stewart. I'm still enjoying fwbackup! I would like to know if you have any plan to implement it with 'differential' mode, in addition to 'incremental' ??
Expected results:
I personally like this method as it require only the full backup and the last differential to secure the set of files.
Best regards,
Didier
Adding more information to the log output when starting a backup would help diagnose issues like #22 more easily.
Ideas:
fwback installed using the flatpack regular installed of Mint.
I did successfully a 'One-Time Backup'. Then I configured a backup set for my usual every day backup.
Steps to Reproduce:
Observed results:
No backup recorded.
If the fwbackups log has any relevant information, include a snippet below:
"ERROR : Process exited with status 1. Errors: Can't find bus: Impossible de lancer automatiquement D-Bus sans $DISPLAY X11"
I case it can help, here is the result of $DISPLAY in the terminal:
:0 : commande introuvable
Flatpak uses the host executables and many Linux distros don't include a cron daemon by default. fwbackups should warn users when cron is not unavailable on startup (it already produces an error on set save when it can't update cron).
fwbackups version:
flatpak info com.diffingo.fwbackups
fwbackups - A feature-rich, user-friendly backup program
ID: com.diffingo.fwbackups
Ref: app/com.diffingo.fwbackups/x86_64/stable
Arch: x86_64
Branch: stable
Version: 1.43.8-rc2
License: GPL-2.0-or-later
Origin: flathub
Collection: org.flathub.Stable
Installation: system
Installed: 16.5 MB
Runtime: org.gnome.Platform/x86_64/45
Sdk: org.gnome.Sdk/x86_64/45
Commit: 5c10049bcb8b426f85e8e8c51a943018ff7b000e2b0e6bc015c76696a8e27fb0
Parent: 8635b1d823392deec1c0dc4f5a7d8f31cd03120813a70a580e26eb037316d595
Subject: Update dependencies to fix CVEs in cryptography, pyinstaller, and paramiko (39ccf573)
Date: 2023-12-30 06:02:45 +0000
OS name and version:
Fedora Linux 39 (Workstation Edition) x86_64 Kernel: 6.6.8-200.fc39.x86_64
backup is incomplete, fwbackup doesn't report an error.
Backup files are cut at ~1.6GB.
Steps to Reproduce:
Observed results: Unexpected EOF in archive
Expected results:
If the fwbackups log has any relevant information, include a snippet below:
unfortunately IMPORTANT information about an error during backup process is MISSING from logs.
When cron fails to save a crontab, the failed crontab should be displayed in an expander to let users diagnose the issue .
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.