Duply 2.4.x is not compatible with duplicity 2.x
Brought to you by:
edso
Duply 2.4.x is not compatible with duplicity 2.x - Arch just upgraded their duplicity package to 2.0.2 which results in invalid usage (commandline options) between the two tools. Ignoring all the extraneous output, the "backup" error presents as:
duplicity: error: argument {cleanup,cl,collection-status,st,full,fb,incremental,inc,ib,list-current-files,ls,remove-all-but-n-full,ra,remove-all-inc-of-but-n-full,ri,remove-older-than,ro,restore,rb,verify,vb}: invalid choice: '/home/tengel' (choose from 'cleanup', 'cl', 'collection-status', 'st', 'full', 'fb', 'incremental', 'inc', 'ib', 'list-current-files', 'ls', 'remove-all-but-n-full', 'ra', 'remove-all-inc-of-but-n-full', 'ri', 'remove-older-than', 'ro', 'restore', 'rb', 'verify', 'vb')
...and the "status" error presents as:
ComCommandLineError: Source should be url, not directory. Got '.duplicity-ignore' instead.
Duplicity 2.x changelog about the params: https://gitlab.com/duplicity/duplicity/-/issues/152
There are apparently (I've downgraded duplicity so cannot confirm) other issues in the autodetection of full or incrementals with 2.x, a few links:
yeah duplicity 2.x had a ruff start. this duplicity issue is planned to be fixed with next duplicity v2.1 release. please check then and report back!
Thanks!.. ede
duplicity v2.1 is released. would you mind to doublecheck? ..ede
Will do once Arch team generates (testing) packages for it, they're not available just yet (I just submitted an out-of-date report to the packagers to notify),
the status error looks fishy. can you please provide your profile config file? obfuscate sensitive strings in it before uploading it! ..ede
Sure thing, this is a well-tenured profile (running for years?) so no recent changes on my side, it's not very complex as I hand it off to rclone instead of using one of the duplicity internal backends: (where "okin" is the name of the laptop/configs)
The corresponding exclude file is just a generic set of patterns which look like:
...and the script that runs it is very basic outside the bashisms:
(duplicity 2.1.0)
While it now works, there's an error in the output for "backup" which indicates to me duplicity is not receiving the expected input now;
duply okin backuphas this embedded (new output not there before with duplicity 1.2.3):When I run
bash -x duply okin backupI do see that the commandline is simply missing any action, such as the word "backup" as expected by the new duplicity. If I take the commandline and simply changeduplicity --name duply_okin ...toduplicity backup --name duply_okin ...then it's happy.The status call is still broken; it appears that the option --exclude-if-present is no longer available or possible when used with the "duplicity collection-status" command based on some quick debugging. Running
bash -x duply oking statuswe tease out:Running
duplicity collection-status --helpdoes not show "exclude-if-present" a valid option; taking the above command and removing it works as expected to give me the status of the duply profile backups.Fixing the "backup" command looks easy I think, as all it took was this:
Fixing the "status" problem though is harder as those are all shared DUPL_PARAMS from the config applied to all operations. It's possible this manifests in other subcommands (purge, etc.) which I haven't tried yet as I don't want to risk my backup data until we sort things out.
If we're to believe the help output as a source of truth, this option is now invalid for a number of duplicity subcommands so cannot be passed in generically...
thanks for the detailed checkup :)
quick side notes:
- to check generated command lines use the duply parameter
--preview-
--pinentry-mode loopback --no-ttyare added by duplicity already since quite a while and can be ommittedwrt. command
backupwe will need to stay back compatible for some while still. so just adding it w/o checking which duplicity we are on is no option. fortunately version parsing code is already in duplicity so it'll be a quick fix. until then the notice is not blocking anything.
btw. running duplicity w/o command is still valid, it just prints that log notice now.
wrt.
--exclude-if-presentyou are totally right. the command line parser was reimplemented in duplicity 2.x because python retired the
optparsemodule used originally. the newargparsemodule does create the help as well, so it's output can be taken as "source of truth".i will have to filter the option accordingly which is already done for other exclusion options.
thanks for reporting/checking. i will have a look next week. please be patient. Thanks!
Thanks, no problem for me right away - this specific exclude feature was/is a part of the defaults, I searched my source data and don't actually use
.duplicity-ignoreanywhere so it was simple enough for me to comment out those config lines and be working OK along with understanding the other items above. My personal usage is very straightforward and simple (not using any other commandline options, e.g.) so no stress from me. :)good to hear. quick suggestion though. if you feel backups are crucial you should do a restore or verify now to make sure these still work as expected too ;)
ouhh big problems in 2.x duplicity
--file-to-restore is deprecated in 2.1.0 and 'action' is mandatory (restore)
this duplicity command works:
hey lds,
i am aware and working on it. actually the action command is not really mandatory but '--file-to-restore' is no valid option anymore. changed to
--path-to-restorehence it is mistaken as the command as the error states.anyway, please stick to duplicity 1.2.3 for now until i fixed up all the new inconsistencies.
Thanks! ..ede
hello tengel, lds,
there is a new devel version https://duply.net/tmp/duply.sh . please try that one and come back with results. please test against duplicity 2.1 or later.
a list with changes can be found in the top of the file or in the online source code https://duply.net/Code#Latest_Development_Snapshot .
Thanks!.. ede
Last edit: ede 2023-09-20
Hello ede
It seems correct to me despite cosmetic errors on fetch
backup verify purge purgeFull purge-full work very well
great job :)
it seems that the fulls are no longer triggered
I had to force the full backup with duply local full
my conf
Last edit: lds 2023-09-21
it may be because the rotation was not done correctly due to problems linked to the duplicity version
by forcing two fulls I was able to return to a normal state
triggered how? if you run backup on an empty target it creates a full.
wrt.
please try this snapshot https://duply.net/tmp/duply.sh
ok cosmetic errors have disappeared :)
thanks
With the above snapshot,
backupworks without the "no valid command" warning.statusthrows an error, though:The culprit seems to be that I set
VOLSIZE=100in duply's config:And indeed, removing
--volsize 100from the command shown by--previewis enough to make it work.hey Rhomeo,
can you please recheck with the new snapshot https://duply.net/tmp/duply.sh ?
Thanks! ..ede
statusworks fine for me with the new snapshot.Thanks for the quick fix!
@ede, testing the latest dev snapshot (Sat Sep 23 02:09:07 PM UTC 2023) looks great except one thing - I've tested: verify, list, full, purgeIncr, purgeFull, backup, status, restore, fetch, cleanup. (verify found a corrupt incremental the day before this bug report, like @lds had).
The
verifyPathseems to not be happy with including the exclude file. Using something likeResults in the below (where
/home/*/Downloadsis a literal line item in the exclude file):The
--previewoutput shows--exclude-filelist /home/tengel/.duply/okin/excludebeing passed to duplicity verify, so if I just edit the commandline to remove that option then the verify works as expected. Redacted for GPG info:@tengel, looks like a duplicity issue. verify as such accepts in/excludes. would you mind creating an issue on https://gitlab.com/duplicity/duplicity/-/issues so we might dig in and find out what the problem is.
stabbing i the dark i'd guess the combination of relative source path and absolute exclusion confuses duplicity somehow.
@ede understood thank you - I personally do not use this feature so it may have always been a problem, my intent is/was to help test the new duply dev work for regressions which looks great. I don't think this duplicity verify problem should stop us from releasing a new duply version for packagers to distribute etc. thanks! :)
agreed. will do so when time permits. thanks All of you!