Re: Duplicity 3.0.7 Released

Scott Hannahs via Duplicity-talk <[email protected]> Wed, 31 Dec 2025 14:44:57 -0500
Newsgroups gmane.comp.sysutils.backup.duplicity.general
Message-ID <[email protected]>
--===============4673776041232592861==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_E2D47EAF-78F8-4B55-A359-964D73B8CB77"


--Apple-Mail=_E2D47EAF-78F8-4B55-A359-964D73B8CB77
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Ken,

Thanks!   I just figured it out and had specified the path in the past =
for my scripts.  What bit me was the testing failure during the build =
process.   I wanted to run all the tests but I don=E2=80=99t see how to =
pass the option to duplicity for all the tests.  I would like it to =
default to the latest gpg2 that I have on the system so that if there =
are any issues there they come up.

Is there an environment variable that can be passed to the testing =
phase?  Here is my test script that should be fairly vanilla.  But I =
don=E2=80=99t see an option to pass to duplicity during the testing =
phase.  I can make a temporary link from gpg2 to gpg and since it is in =
my path that will work, but making sure that the link is removed to =
prevent a conflict with the gpgtools suite is just another step and =
possible failure mode.  It would be nice to make it a site specific =
default somehow?

    TestScript: <<
        #!/bin/sh -ev
        ulimit -n 8192
        %p/bin/pytest-3.10 -p no:xdist -p no:hypothesis -p no:randomly
    <<


-Scott


> On Dec 31, 2025, at 14:12, Kenneth Loafman <[email protected]> =
wrote:
>=20
> Scott,
>=20
> Duplicity has the option --gpg-binary file_path which allows the user =
to specify which gpg to use.  We don't require gpg1 or gpg2, we support =
both.
>=20
> ...Thanks,
> ...Ken
>=20
>=20
> On Wed, Dec 31, 2025 at 12:09=E2=80=AFPM Scott Hannahs <[email protected] =
<mailto:[email protected]>> wrote:
>>  Ken,
>>=20
>> I seem to have run into an issue here in my Fink install package.  =
When I install the newest gpg version, I install it with the =E2=80=9Cvers=
ion 2=E2=80=9D option so that all the executables and libraries end with =
=E2=80=9C2=E2=80=9D such as  gpg2 etc.   This is to avoid issues with =
those programs that still need gpg version 1 compatibility (hopefully =
this is going away).  I think this causes duplicity to fail.
>>=20
>> I don=E2=80=99t see a build option to tell duplicity to look for the =
gpg2 files.  The Fink structure is based on a philosophy to keep files =
created and maintained by fink in a separate hierarchy,
>>=20
>> So binary files are /opt/sw/bin/gpg* (such as gpg2, gpg-agent2, etc.)
>> Helper files are in /opt/sw/lib/lib/gnupg/ (such as gpg-pair-tool2 =
and scdaemon2)
>>=20
>> Is there an easy way to redirect duplicity other than editing the =
setup.py to manually change the lines:
>>     incdir_list.append("/usr/local/include")
>>     libdir_list.append("/usr/local/lib")
>>     incdir_list.append("/usr/include")
>>     libdir_list.append("/usr/lib")
>> And even this list doesn=E2=80=99t look like it tries to find the =
binaries it needs.
>>=20
>> I am running the setup with the command
>> 	/opt/sw/bin/python3.10 setup.py build  --librsync-dir=3D/opt/sw
>> Which seems to find that library but not all the gpg utilities.
>>=20
>> -Scott
>>=20
>>=20
>>> On Dec 31, 2025, at 07:43, Kenneth Loafman via Duplicity-talk =
<[email protected] <mailto:[email protected]>> wrote:
>>>=20
>>> Hi,
>>>=20
>>> A new Release, 3.0.7, for duplicity was published.
>>>=20
>>> It fixes some major regressions in password handling, among other =
things.
>>>=20
>>>=20
>>> See CHANGELOG =
<https://gitlab.com/duplicity/duplicity/-/blob/main/CHANGELOG.md> for =
details.
>>>=20
>>> ...Thanks,
>>> ...Ken
>>>=20
>>> rel.3.0.7 / 2025-12-31
>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>=20
>>>  * ad175c22:fix: replace custom deltree with built-in shutil.rmtree.
>>>  * 101be7fd:fix: delete duplicate code in DirDelta.
>>>  * c0d3e72d:fix: webdavs with "--concurrency 1" failed because of =
missing auth header
>>>  * a08f8bef:fix: disable s3 checksum workaround, warn only...
>>>  * f7055a7a:fix: --log-timestamp no longer working.
>>>  * ac163d5e:fix: Combined fix to related issues 912 and 914
>>> _______________________________________________
>>> Duplicity-talk mailing list
>>> [email protected] <mailto:[email protected]>
>>> https://lists.nongnu.org/mailman/listinfo/duplicity-talk
>>=20


--Apple-Mail=_E2D47EAF-78F8-4B55-A359-964D73B8CB77
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: =
after-white-space;">Ken,<div><br></div><div>Thanks! &nbsp; I just =
figured it out and had specified the path in the past for my scripts. =
&nbsp;What bit me was the testing failure during the build process. =
&nbsp; I wanted to run all the tests but I don=E2=80=99t see how to pass =
the option to duplicity for all the tests. &nbsp;I would like it to =
default to the latest gpg2 that I have on the system so that if there =
are any issues there they come up.</div><div><br></div><div>Is there an =
environment variable that can be passed to the testing phase? &nbsp;Here =
is my test script that should be fairly vanilla. &nbsp;But I don=E2=80=99t=
 see an option to pass to duplicity during the testing phase. &nbsp;I =
can make a temporary link from gpg2 to gpg and since it is in my path =
that will work, but making sure that the link is removed to prevent a =
conflict with the gpgtools suite is just another step and possible =
failure mode. &nbsp;It would be nice to make it a site specific default =
somehow?</div><div><br></div><div><p style=3D"margin: 0px; font-style: =
normal; font-variant-caps: normal; font-width: normal; font-size: 12px; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp; &nbsp; =
TestScript: &lt;&lt;</span></p><p style=3D"margin: 0px; font-style: =
normal; font-variant-caps: normal; font-width: normal; font-size: 12px; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp; &nbsp; =
&nbsp; &nbsp; #!/bin/sh -ev</span></p><p style=3D"margin: 0px; =
font-style: normal; font-variant-caps: normal; font-width: normal; =
font-size: 12px; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp; &nbsp; =
&nbsp; &nbsp; ulimit -n 8192</span></p><p style=3D"margin: 0px; =
font-style: normal; font-variant-caps: normal; font-width: normal; =
font-size: 12px; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp; &nbsp; =
&nbsp; &nbsp; %p/bin/pytest-3.10 -p no:xdist -p no:hypothesis -p =
no:randomly</span></p><p style=3D"margin: 0px; font-style: normal; =
font-variant-caps: normal; font-width: normal; font-size: 12px; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-variant-emoji: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal;"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp; &nbsp; =
&lt;&lt;</span></p></div><div><span style=3D"font-variant-ligatures: =
no-common-ligatures"><br></span></div><div><br></div><div>-Scott</div><div=
><br id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
type=3D"cite"><div>On Dec 31, 2025, at 14:12, Kenneth Loafman =
&lt;[email protected]&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><div =
dir=3D"ltr">Scott,<div><br></div><div>Duplicity has the option <i =
style=3D"font-weight:bold">--gpg-binary =
file_path</i>&nbsp;which&nbsp;allows the user to specify which gpg to =
use.&nbsp; We don't require gpg1 or gpg2, we support =
both.</div><div><br></div><div>...Thanks,</div><div>...Ken</div><div><br><=
/div></div><br><div class=3D"gmail_quote gmail_quote_container"><div =
dir=3D"ltr" class=3D"gmail_attr">On Wed, Dec 31, 2025 at 12:09=E2=80=AFPM =
Scott Hannahs &lt;<a href=3D"mailto:[email protected]">[email protected]</a>&gt;=
 wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex"><div>&nbsp;Ken,<div><br></div><div>I =
seem to have run into an issue here in my Fink install package.&nbsp; =
When I install the newest gpg version, I install it with the =E2=80=9Cvers=
ion 2=E2=80=9D option so that all the executables and libraries end with =
=E2=80=9C2=E2=80=9D such as &nbsp;gpg2 etc. &nbsp; This is to avoid =
issues with those programs that still need gpg version 1 compatibility =
(hopefully this is going away).&nbsp; I think this causes duplicity to =
fail.</div><div><br></div><div>I don=E2=80=99t see a build option to =
tell duplicity to look for the gpg2 files.&nbsp; The Fink structure is =
based on a philosophy to keep files created and maintained by fink in a =
separate hierarchy,</div><div><br></div><div>So binary files are =
/opt/sw/bin/gpg* (such as gpg2, gpg-agent2, etc.)</div><div>Helper files =
are in /opt/sw/lib/lib/gnupg/ (such as gpg-pair-tool2 and =
scdaemon2)</div><div><br></div><div>Is there an easy way to redirect =
duplicity other than editing the setup.py to manually change the =
lines:</div><div><div style=3D"margin: 0px; font-style: normal; =
font-variant-caps: normal; font-size: 12px; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-feature-settings: normal;"><span =
style=3D"font-variant-ligatures:no-common-ligatures">&nbsp; &nbsp; =
incdir_list.append("/usr/</span><span =
style=3D"font-variant-ligatures:no-common-ligatures;background-color:rgb(2=
55,255,255)">local/</span><span =
style=3D"font-variant-ligatures:no-common-ligatures">include")</span></div=
><div style=3D"margin: 0px; font-style: normal; font-variant-caps: =
normal; font-size: 12px; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-feature-settings: normal;"><span =
style=3D"font-variant-ligatures:no-common-ligatures">&nbsp; &nbsp; =
libdir_list.append("/usr/</span><span =
style=3D"font-variant-ligatures:no-common-ligatures;background-color:rgb(2=
55,255,255)">local/</span><span =
style=3D"font-variant-ligatures:no-common-ligatures">lib")</span></div><di=
v style=3D"margin: 0px; font-style: normal; font-variant-caps: normal; =
font-size: 12px; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-feature-settings: normal;"><span =
style=3D"font-variant-ligatures:no-common-ligatures">&nbsp; &nbsp; =
incdir_list.append("/usr/include")</span></div><div style=3D"margin: =
0px; font-style: normal; font-variant-caps: normal; font-size: 12px; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-feature-settings: normal;"><span =
style=3D"font-variant-ligatures:no-common-ligatures">&nbsp; &nbsp; =
libdir_list.append("/usr/lib")</span></div></div><div><span =
style=3D"font-variant-ligatures:no-common-ligatures">And even this list =
doesn=E2=80=99t look like it tries to find the binaries it =
needs.</span></div><div><span =
style=3D"font-variant-ligatures:no-common-ligatures"><br></span></div><div=
><span style=3D"font-variant-ligatures:no-common-ligatures">I am running =
the setup with the command</span></div><div><span =
style=3D"font-variant-ligatures:no-common-ligatures"><div style=3D"margin:=
 0px; font-style: normal; font-variant-caps: normal; font-size: 12px; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-feature-settings: normal;"><span =
style=3D"font-variant-ligatures:no-common-ligatures"><span =
style=3D"white-space:pre-wrap">	</span>/opt/sw/bin/python3.10 =
</span><span =
style=3D"font-variant-ligatures:no-common-ligatures;background-color:rgb(2=
55,255,255)">setup</span><span =
style=3D"font-variant-ligatures:no-common-ligatures"><font =
style=3D"background-color:rgb(255,255,255)">.py</font> build&nbsp; =
--librsync-dir=3D/opt/sw</span></div></span></div><div>Which seems to =
find that library but not all the gpg =
utilities.</div><div><br></div><div>-Scott</div><div><br =
id=3D"m_-1784879402816723264lineBreakAtBeginningOfMessage"><div><br><block=
quote type=3D"cite"><div>On Dec 31, 2025, at 07:43, Kenneth Loafman via =
Duplicity-talk &lt;<a href=3D"mailto:[email protected]" =
target=3D"_blank">[email protected]</a>&gt; =
wrote:</div><br><div><div =
dir=3D"ltr"><div>Hi,</div><div><br></div><div><div><p =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif;margin:0px 0px 1rem">A new =
Release, 3.0.7, for duplicity was published.</p><p =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif;margin:0px 0px 1rem">It fixes some =
major regressions in password handling, among other things.</p><div =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif;margin:0px 0px =
1rem"><br></div><span =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif">See&nbsp;</span><a =
href=3D"https://gitlab.com/duplicity/duplicity/-/blob/main/CHANGELOG.md" =
style=3D"font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif;margin-top:0px" =
target=3D"_blank">CHANGELOG</a><span =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif">&nbsp;for =
details.</span></div><div><span =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif"><br></span></div><div><span =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif">...Thanks,</span></div><div><span =
style=3D"color:rgb(58,56,63);font-family:&quot;Helvetica =
Neue&quot;,Helvetica,Arial,sans-serif">...Ken</span></div></div><br><div>r=
el.3.0.7 / 2025-12-31<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D<br><br>&nbsp;* ad175c22:fix: replace custom deltree with =
built-in shutil.rmtree.<br>&nbsp;* 101be7fd:fix: delete duplicate code =
in DirDelta.<br>&nbsp;* c0d3e72d:fix: webdavs with "--concurrency 1" =
failed because of missing auth header<br>&nbsp;* a08f8bef:fix: disable =
s3 checksum workaround, warn only...<br>&nbsp;* f7055a7a:fix: =
--log-timestamp no longer working.<br>&nbsp;* ac163d5e:fix: Combined fix =
to related issues 912 and 914<br></div></div>
_______________________________________________<br>Duplicity-talk =
mailing list<br><a href=3D"mailto:[email protected]" =
target=3D"_blank">[email protected]</a><br><a =
href=3D"https://lists.nongnu.org/mailman/listinfo/duplicity-talk" =
target=3D"_blank">https://lists.nongnu.org/mailman/listinfo/duplicity-talk=
</a><br></div></blockquote></div><br></div></div></blockquote></div>
</div></blockquote></div><br></div></body></html>=

--Apple-Mail=_E2D47EAF-78F8-4B55-A359-964D73B8CB77--


--===============4673776041232592861==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRHVwbGljaXR5
LXRhbGsgbWFpbGluZyBsaXN0CkR1cGxpY2l0eS10YWxrQG5vbmdudS5vcmcKaHR0cHM6Ly9saXN0
cy5ub25nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZHVwbGljaXR5LXRhbGsK

--===============4673776041232592861==--