Re: Duplicity 3.1.0 Released

Scott Hannahs via Duplicity-talk <[email protected]> Wed, 15 Jul 2026 17:33:09 -0400
Newsgroups gmane.comp.sysutils.backup.duplicity.general
Message-ID <[email protected]>
--===============9102161835474034962==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_24FF2DDC-4328-4FE1-BECF-E795A670DA4A"


--Apple-Mail=_24FF2DDC-4328-4FE1-BECF-E795A670DA4A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Ken,

Thanks, you pointed me at the requirements.txt AND README.md.  My =
unfamiliarity with python thought that was the complete requirements.  =
This make more sense.  I see you dropped ncftp, it seems lftp is not =
being updated and needs a bit of fixing to compile under more modern =
strict compilers.  Personally not a big fan of FTP anyway, but trying to =
support as many backends as possible.

Also this list does not include gpg2?  I assume that is a requirement, =
is that part of the =E2=80=9Cbuild-essential=E2=80=9D?

I am trying to parse out 5 groups:
everything essential for running duplicity
everything essential for building duplicity that is not in #1
everything essential for testing duplicity
everything essential for the backends (see list below, which backends =
are not supported in my list?)
everything essential for building the docs (not a big deal, and might =
get around to it)

Below is my trying to combine the requirements you gave, any line that =
begins with an =E2=80=9Ci=E2=80=9D means installed and lists the version =
I have.  As you can see =E2=80=9Crclone=E2=80=9D is listed as necessary =
but is that only for some backends?  I am running without it but using =
S3 storage.  The tests for that don=E2=80=99t seem to complain.  Same =
with tzdata but I will get that from PyPi.

Not sure what is in build-essentials.  I don=E2=80=99t see that in PyPi =
so I assume it is a debian thing?  I just have the fink manager and =
setuptools for building which seems fine.

Thanks,
Scott

#### Necessary Utilities and libraries for running duplicity ####
 i   intltool40                                   0.51.0-1304            =
           Internationalize various kinds of data files
 i   lftp                                         4.9.3-1                =
           Sophisticated command line based FTP client
 i   librsync2                                    2.3.4-2                =
           Algorithm for remote file synchronization
 i   libffi8                                      3.4.8-1                =
           Foreign Function Interface
 i   openssl300-dev                               3.6.2-1                =
           Secure Sockets Layer and Crypto Library
 i   par2                                         1.0.0-1                =
           Parity Archive Volume Set II
 i   python310                                    3.10.19-1              =
           Interpreted, object-oriented language
 i   lxml-py310                                   5.3.0-1                =
           Binding for the libxml2 and libxslt
        rclone
 i   librsync2                                    2.3.4-2                =
           Algorithm for remote file synchronization
 i   fasteners-py310                              0.19-2                 =
           Python package providing useful locks
 i   python-gettext-py310                         5.0-1                  =
           Implementation of Gettext for Python
 tzdata-py310

##### requirements for building duplicity #####
 i   fink                                         =
0.45.99.git-20260307.1555         Open-source software package manager
 i   setuptools-tng-py310                         82.0.0-1               =
           EasyInstall and python eggs
	build-essentials

##### backend libraries #####

 i   requests-oauthlib-py310                      1.0.0-2                =
           OAuthlib authentication support for Requests
 i   azure-storage-blob-py310                     12.30.0-2              =
           Object storage solution for the cloud
 i   b2sdk-py310                                  2.12.0-1               =
           Client library, utilities to access B2 Cloud
 i   boto3-py310                                  1.34.144-1             =
           Python interface to Amazon Web Services
 i   botocore-py310                               1.34.144-1             =
           The low-level, core functionality of boto 3
boxsdk[jwt]
dropbox
 i   gdata-py310                                  2.0.18-1               =
           Python client library for Google data APIs
 i   google-api-python-client-py310               1.2-2                  =
           Access Google APIs via oauth2 and discovery
 i   pysocks-py310                                1.7.0-1                =
           Python SOCKS client module
 i   google-auth-oauthlib-py310                   1.4.0-1                =
           Oauthlib integration with google-auth
 i   httplib2-py310                               0.18.1-1               =
           Another httplib for python
jottalib
 i   keyring-py310                                25.1.0-1               =
           Store and access your passwords safely
mediafire
megatools
 i   paramiko-py310                               2.12.0-2               =
           SSH2 implementation in Python
 i   pexpect-py310                                4.9.0-1                =
           Pure Python expect-like interface
 i   psutil-py310                                 5.9.7-1                =
           Process and system monitoring library
pydrive2
pyrax
python-swiftclient
 i   requests-py310                               2.31.0-1               =
           Python HTTP for Humans
 i   requests-oauthlib-py310                      1.0.0-2                =
           OAuthlib authentication support for Requests

##### testing libraries #####
 i   black-py310                                  26.5.1-2               =
           Uncompromising Python code formatter
 i   flynt-py310                                  1.0.6-1                =
           Convert old "%-formatted" to "f-strings"
 i   coverage-py310                               7.6.1-1                =
           Python code coverage for testing
 i   pycodestyle-py310                            2.11.1-1               =
           Python style guide checker
 i   pylint-py310                                 4.0.6-1                =
           Analyzes Python code for bugs and quality
 i   pytest-py310                                 7.4.4-1                =
           Cross-project testing tool for Python
 i   pytest-cov-py310                             6.0.0-1                =
           Coverage plugin for pytest

#### documentation libraries #####

myst-parser
 i   sphinx-py310                                 5.3.0-1                =
           Python documentation generator
sphinx-rtd-dark-mode


> On Jul 7, 2026, at 7:47=E2=80=AFAM, Kenneth Loafman =
<[email protected]> wrote:
>=20
> The lxml module was moved from pip to repo.
>=20
> Here are the requirements from the repo (in README.md):
>=20
> sudo apt-get update=20
> sudo apt-get install -y \
>         build-essential \
>         intltool \
>         lftp \
>         librsync-dev \
>         libffi-dev \
>         libssl-dev \
>         openssl \
>         par2 \
>         python3-dev \
>         python3-lxml \
>         python3-pip \
>         python3-venv \
>         python3 \
>         rclone \
>         rsync \
>         rdiff \
>         tzdata
>=20
> ...Ken


--Apple-Mail=_24FF2DDC-4328-4FE1-BECF-E795A670DA4A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html aria-label=3D"message body"><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;"><div dir=3D"auto" style=3D"overflow-wrap: =
break-word; -webkit-nbsp-mode: space; line-break: =
after-white-space;"><div dir=3D"auto" style=3D"overflow-wrap: =
break-word; -webkit-nbsp-mode: space; line-break: =
after-white-space;"><div dir=3D"auto" style=3D"overflow-wrap: =
break-word; -webkit-nbsp-mode: space; line-break: =
after-white-space;"><div dir=3D"auto" style=3D"overflow-wrap: =
break-word; -webkit-nbsp-mode: space; line-break: =
after-white-space;"><div dir=3D"auto" style=3D"overflow-wrap: =
break-word; -webkit-nbsp-mode: space; line-break: =
after-white-space;">Ken,<div><br></div><div>Thanks, you pointed me at =
the requirements.txt AND README.md. &nbsp;My unfamiliarity with python =
thought that was the complete requirements. &nbsp;This make more sense. =
&nbsp;I see you dropped ncftp, it seems lftp is not being updated and =
needs a bit of fixing to compile under more modern strict compilers. =
&nbsp;Personally not a big fan of FTP anyway, but trying to support as =
many backends as possible.</div><div><br></div><div>Also this list does =
not include gpg2? &nbsp;I assume that is a requirement, is that part of =
the =E2=80=9Cbuild-essential=E2=80=9D?</div><div><br></div><div>I am =
trying to parse out 5 groups:</div><div><ol =
class=3D"MailOutline"><li>everything essential for running =
duplicity</li><li>everything essential for building duplicity that is =
not in #1</li><li>everything essential for testing =
duplicity</li><li>everything essential for the backends (see list below, =
which backends are not supported in my list?)</li><li>everything =
essential for building the docs (not a big deal, and might get around to =
it)</li></ol></div><div><br></div><div>Below is my trying to combine the =
requirements you gave, any line that begins with an =E2=80=9Ci=E2=80=9D =
means installed and lists the version I have. &nbsp;As you can see =
=E2=80=9Crclone=E2=80=9D is listed as necessary but is that only for =
some backends? &nbsp;I am running without it but using S3 storage. =
&nbsp;The tests for that don=E2=80=99t seem to complain. &nbsp;Same with =
tzdata but I will get that from PyPi.</div><div><br></div><div>Not sure =
what is in build-essentials. &nbsp;I don=E2=80=99t see that in PyPi so I =
assume it is a debian thing? &nbsp;I just have the fink manager and =
setuptools for building which seems =
fine.</div><div><br></div><div>Thanks,</div><div>Scott</div><div><br></div=
><div><div><font face=3D"Menlo" style=3D"font-size: 12px;">#### =
Necessary Utilities and libraries for running duplicity =
####</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; intltool40 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; 0.51.0-1304 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Internationalize various kinds of =
data files</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; lftp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; 4.9.3-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Sophisticated =
command line based FTP client</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; librsync2 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2.3.4-2 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Algorithm =
for remote file synchronization</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; libffi8 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3.4.8-1 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
Foreign Function Interface</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; openssl300-dev &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; 3.6.2-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Secure Sockets Layer =
and Crypto Library</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; par2 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1.0.0-1 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; Parity Archive Volume Set II</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; python310 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3.10.19-1 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Interpreted, =
object-oriented language</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; lxml-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 5.3.0-1 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Binding =
for the libxml2 and libxslt</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; =
rclone</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; librsync2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;2.3.4-2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Algorithm for remote =
file synchronization</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; fasteners-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;0.19-2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Python package =
providing useful locks</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; python-gettext-py310 &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; 5.0-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Implementation of Gettext for =
Python</font></div><div><span style=3D"font-size: 12px; font-family: =
Menlo;">&nbsp;tzdata-py310</span></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;"><br></font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">##### requirements for building duplicity =
#####</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;"><div>&nbsp;i &nbsp; fink &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.45.99.git-20260307.1555 &nbsp; =
&nbsp; &nbsp; &nbsp; Open-source software package =
manager</div><div>&nbsp;i &nbsp; setuptools-tng-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
82.0.0-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;EasyInstall and python eggs</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>build-essentials</div></font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;"><br></font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">##### backend libraries =
#####</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;"><br></font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; requests-oauthlib-py310 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1.0.0-2 &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; OAuthlib authentication support for =
Requests</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; azure-storage-blob-py310 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 12.30.0-2 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
Object storage solution for the cloud</font></div><div><font =
face=3D"Menlo" style=3D"font-size: 12px;">&nbsp;i &nbsp; b2sdk-py310 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2.12.0-1 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;Client library, utilities to access B2 =
Cloud</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; boto3-py310 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp;1.34.144-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Python interface to Amazon Web =
Services</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; botocore-py310 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
1.34.144-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;The low-level, core functionality of boto =
3</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">boxsdk[jwt]</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">dropbox</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; gdata-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2.0.18-1 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Python =
client library for Google data APIs</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; google-api-python-client-py310 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1.2-2 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; Access Google APIs via oauth2 and =
discovery</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; pysocks-py310 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;1.7.0-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Python SOCKS client =
module</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; google-auth-oauthlib-py310 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1.4.0-1 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
Oauthlib integration with google-auth</font></div><div><font =
face=3D"Menlo" style=3D"font-size: 12px;">&nbsp;i &nbsp; httplib2-py310 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0.18.1-1 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Another =
httplib for python</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">jottalib</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; keyring-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;25.1.0-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Store and access =
your passwords safely</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">mediafire</font></div><div><font face=3D"Menlo"=
 style=3D"font-size: 12px;">megatools</font></div><div><font =
face=3D"Menlo" style=3D"font-size: 12px;">&nbsp;i &nbsp; paramiko-py310 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2.12.0-2 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SSH2 =
implementation in Python</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; pexpect-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp;4.9.0-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Pure Python =
expect-like interface</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; psutil-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; 5.9.7-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Process and =
system monitoring library</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">pydrive2</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">pyrax</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">python-swiftclient</font></div><div><font =
face=3D"Menlo" style=3D"font-size: 12px;">&nbsp;i &nbsp; requests-py310 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2.31.0-1 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Python =
HTTP for Humans</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; requests-oauthlib-py310 &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1.0.0-2 &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; OAuthlib authentication support for =
Requests</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;"><br></font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">##### testing libraries #####</font></div><div><font face=3D"Menlo"=
 style=3D"font-size: 12px;">&nbsp;i &nbsp; black-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;26.5.1-2 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;Uncompromising Python code formatter</font></div><div><font =
face=3D"Menlo" style=3D"font-size: 12px;">&nbsp;i &nbsp; flynt-py310 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1.0.6-1 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; Convert old "%-formatted" to "f-strings"</font></div><div><font =
face=3D"Menlo" style=3D"font-size: 12px;">&nbsp;i &nbsp; coverage-py310 =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 7.6.1-1 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Python =
code coverage for testing</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; pycodestyle-py310 &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp;2.11.1-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Python style guide =
checker</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; pylint-py310 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; 4.0.6-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Analyzes Python code for bugs and =
quality</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; pytest-py310 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; 7.4.4-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cross-project testing tool for =
Python</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">&nbsp;i &nbsp; pytest-cov-py310 &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
6.0.0-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; Coverage plugin for =
pytest</font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;"><br></font></div><div><font face=3D"Menlo" style=3D"font-size: =
12px;">#### documentation libraries #####</font></div><div><font =
face=3D"Menlo" style=3D"font-size: 12px;"><br></font></div><div><font =
face=3D"Menlo" style=3D"font-size: =
12px;">myst-parser</font></div><div><font face=3D"Menlo" =
style=3D"font-size: 12px;">&nbsp;i &nbsp; sphinx-py310 &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; 5.3.0-1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Python =
documentation generator</font></div><div><font face=3D"Menlo" =
style=3D"font-size: =
12px;">sphinx-rtd-dark-mode</font></div><div><br></div><div><br><blockquot=
e type=3D"cite"><div>On Jul 7, 2026, at 7:47=E2=80=AFAM, Kenneth Loafman =
&lt;[email protected]&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div><div dir=3D"ltr">The lxml =
module was moved from pip to repo.<div><br></div><div>Here are the =
requirements from the repo (in =
README.md):</div><div><br></div><div><font face=3D"monospace">sudo =
apt-get update <br>sudo apt-get install -y \<br>&nbsp; &nbsp; &nbsp; =
&nbsp; build-essential \<br>&nbsp; &nbsp; &nbsp; &nbsp; intltool =
\<br>&nbsp; &nbsp; &nbsp; &nbsp; lftp \<br>&nbsp; &nbsp; &nbsp; &nbsp; =
librsync-dev \<br>&nbsp; &nbsp; &nbsp; &nbsp; libffi-dev \<br>&nbsp; =
&nbsp; &nbsp; &nbsp; libssl-dev \<br>&nbsp; &nbsp; &nbsp; &nbsp; openssl =
\<br>&nbsp; &nbsp; &nbsp; &nbsp; par2 \<br>&nbsp; &nbsp; &nbsp; &nbsp; =
python3-dev \<br>&nbsp; &nbsp; &nbsp; &nbsp; python3-lxml \<br>&nbsp; =
&nbsp; &nbsp; &nbsp; python3-pip \<br>&nbsp; &nbsp; &nbsp; &nbsp; =
python3-venv \<br>&nbsp; &nbsp; &nbsp; &nbsp; python3 \<br>&nbsp; &nbsp; =
&nbsp; &nbsp; rclone \<br>&nbsp; &nbsp; &nbsp; &nbsp; rsync \<br>&nbsp; =
&nbsp; &nbsp; &nbsp; rdiff \<br>&nbsp; &nbsp; &nbsp; &nbsp; =
tzdata</font></div><div><br></div><div>...Ken</div></div></div></blockquot=
e></div><br></div></div></div></div></div></div></body></html>=

--Apple-Mail=_24FF2DDC-4328-4FE1-BECF-E795A670DA4A--


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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRHVwbGljaXR5
LXRhbGsgbWFpbGluZyBsaXN0CkR1cGxpY2l0eS10YWxrQG5vbmdudS5vcmcKaHR0cHM6Ly9saXN0
cy5ub25nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZHVwbGljaXR5LXRhbGsK

--===============9102161835474034962==--