Fink

Recent Package Updates

2026-08-16: httpcore-py38-1.0.9-1 (Minimal low-level HTTP client)
The HTTP Core package provides a minimal low-level HTTP client, which
does one thing only. Sending HTTP requests.

It does not provide any high level model abstractions over the API, does
not handle redirects, multipart uploads, building authentication
headers, transparent HTTP caching, URL parsing, session cookie handling,
content or charset decoding, handling JSON, environment based
configuration defaults, or any of that Jazz.

commit log from Hanspeter Niederstrasser ([email protected]):

    httpcore-py: v1.0.9
2026-08-16: gevent-py310-24.2.1-2 (Coroutine-based network library)
Coroutine-based network library

commit log from Hanspeter Niederstrasser ([email protected]):

    gevent-py: add upstream's support for cython3.1
2026-08-16: trio-py39-0.27.0-2 (Python library for async concurrency and I/O)
The Trio project's goal is to produce a production-quality, permissively
licensed, async/await-native I/O library for Python. Like all async
libraries, its main purpose is to help you write programs that do
multiple things at the same time with parallelized I/O. A web spider
that wants to fetch lots of pages in parallel, a web server that needs
to juggle lots of downloads and websocket connections at the same time,
a process supervisor monitoring multiple subprocesses... that sort of
thing. Compared to other libraries, Trio attempts to distinguish itself
with an obsessive focus on usability and correctness. Concurrency is
complicated; we try to make it easy to get things right.

commit log from Hanspeter Niederstrasser ([email protected]):

    trio-py: bring back fix for missing select.poll from 0.22.2 to 0.27
    Other packages using this (e.g. httpcore) need the fix
2026-08-16: gevent-py38-24.2.1-2 (Coroutine-based network library)
Coroutine-based network library

commit log from Hanspeter Niederstrasser ([email protected]):

    gevent-py: add upstream's support for cython3.1
2026-08-16: h11-py310-0.16.0-1 (Python implementation of HTTP/1.1)
This is a little HTTP/1.1 library written from scratch in Python,
heavily inspired by hyper-h2.

It's a "bring-your-own-I/O" library; h11 contains no IO code whatsoever.
This means you can hook h11 up to your favorite network API, and that
could be anything you want: synchronous, threaded, asynchronous, or your
own implementation of RFC 6214 - h11 won't judge you. (Compare this to
the current state of the art, where every time a new network API comes
along then someone gets to start over reimplementing the entire HTTP
protocol from scratch.) Cory Benfield made an excellent blog post
describing the benefits of this approach, or if you like video then
here's his PyCon 2016 talk on the same theme.

commit log from Hanspeter Niederstrasser ([email protected]):

    h11-py: v0.16.0
2026-08-16: trio-py37-0.22.2-2 (Python library for async concurrency and I/O)
The Trio project's goal is to produce a production-quality, permissively
licensed, async/await-native I/O library for Python. Like all async
libraries, its main purpose is to help you write programs that do
multiple things at the same time with parallelized I/O. A web spider
that wants to fetch lots of pages in parallel, a web server that needs
to juggle lots of downloads and websocket connections at the same time,
a process supervisor monitoring multiple subprocesses... that sort of
thing. Compared to other libraries, Trio attempts to distinguish itself
with an obsessive focus on usability and correctness. Concurrency is
complicated; we try to make it easy to get things right.

commit log from Hanspeter Niederstrasser ([email protected]):

    trio-py: bring back fix for missing select.poll from 0.22.2 to 0.27
    Other packages using this (e.g. httpcore) need the fix
2026-08-16: h11-py39-0.16.0-1 (Python implementation of HTTP/1.1)
This is a little HTTP/1.1 library written from scratch in Python,
heavily inspired by hyper-h2.

It's a "bring-your-own-I/O" library; h11 contains no IO code whatsoever.
This means you can hook h11 up to your favorite network API, and that
could be anything you want: synchronous, threaded, asynchronous, or your
own implementation of RFC 6214 - h11 won't judge you. (Compare this to
the current state of the art, where every time a new network API comes
along then someone gets to start over reimplementing the entire HTTP
protocol from scratch.) Cory Benfield made an excellent blog post
describing the benefits of this approach, or if you like video then
here's his PyCon 2016 talk on the same theme.

commit log from Hanspeter Niederstrasser ([email protected]):

    h11-py: v0.16.0
2026-08-16: trio-py38-0.27.0-2 (Python library for async concurrency and I/O)
The Trio project's goal is to produce a production-quality, permissively
licensed, async/await-native I/O library for Python. Like all async
libraries, its main purpose is to help you write programs that do
multiple things at the same time with parallelized I/O. A web spider
that wants to fetch lots of pages in parallel, a web server that needs
to juggle lots of downloads and websocket connections at the same time,
a process supervisor monitoring multiple subprocesses... that sort of
thing. Compared to other libraries, Trio attempts to distinguish itself
with an obsessive focus on usability and correctness. Concurrency is
complicated; we try to make it easy to get things right.

commit log from Hanspeter Niederstrasser ([email protected]):

    trio-py: bring back fix for missing select.poll from 0.22.2 to 0.27
    Other packages using this (e.g. httpcore) need the fix
2026-08-16: httpcore-py39-1.0.9-1 (Minimal low-level HTTP client)
The HTTP Core package provides a minimal low-level HTTP client, which
does one thing only. Sending HTTP requests.

It does not provide any high level model abstractions over the API, does
not handle redirects, multipart uploads, building authentication
headers, transparent HTTP caching, URL parsing, session cookie handling,
content or charset decoding, handling JSON, environment based
configuration defaults, or any of that Jazz.

commit log from Hanspeter Niederstrasser ([email protected]):

    httpcore-py: v1.0.9
2026-08-16: h11-py38-0.16.0-1 (Python implementation of HTTP/1.1)
This is a little HTTP/1.1 library written from scratch in Python,
heavily inspired by hyper-h2.

It's a "bring-your-own-I/O" library; h11 contains no IO code whatsoever.
This means you can hook h11 up to your favorite network API, and that
could be anything you want: synchronous, threaded, asynchronous, or your
own implementation of RFC 6214 - h11 won't judge you. (Compare this to
the current state of the art, where every time a new network API comes
along then someone gets to start over reimplementing the entire HTTP
protocol from scratch.) Cory Benfield made an excellent blog post
describing the benefits of this approach, or if you like video then
here's his PyCon 2016 talk on the same theme.

commit log from Hanspeter Niederstrasser ([email protected]):

    h11-py: v0.16.0
2026-08-16: httpcore-py310-1.0.9-1 (Minimal low-level HTTP client)
The HTTP Core package provides a minimal low-level HTTP client, which
does one thing only. Sending HTTP requests.

It does not provide any high level model abstractions over the API, does
not handle redirects, multipart uploads, building authentication
headers, transparent HTTP caching, URL parsing, session cookie handling,
content or charset decoding, handling JSON, environment based
configuration defaults, or any of that Jazz.

commit log from Hanspeter Niederstrasser ([email protected]):

    httpcore-py: v1.0.9
2026-08-16: trio-py310-0.27.0-2 (Python library for async concurrency and I/O)
The Trio project's goal is to produce a production-quality, permissively
licensed, async/await-native I/O library for Python. Like all async
libraries, its main purpose is to help you write programs that do
multiple things at the same time with parallelized I/O. A web spider
that wants to fetch lots of pages in parallel, a web server that needs
to juggle lots of downloads and websocket connections at the same time,
a process supervisor monitoring multiple subprocesses... that sort of
thing. Compared to other libraries, Trio attempts to distinguish itself
with an obsessive focus on usability and correctness. Concurrency is
complicated; we try to make it easy to get things right.

commit log from Hanspeter Niederstrasser ([email protected]):

    trio-py: bring back fix for missing select.poll from 0.22.2 to 0.27
    Other packages using this (e.g. httpcore) need the fix
2026-08-16: gevent-py39-24.2.1-2 (Coroutine-based network library)
Coroutine-based network library

commit log from Hanspeter Niederstrasser ([email protected]):

    gevent-py: add upstream's support for cython3.1
2026-08-15: watchdog-py38-4.0.1-1 (Python API/shell utils to monitor FS events)
Directory monitoring made easy with
 *  A cross-platform API.
 *  A shell tool to run commands in response to directory changes.

commit log from Hanspeter Niederstrasser ([email protected]):

    watchdog-py: don't use randomly plugin to avoid race condition making temp dir
2026-08-15: libbluray2-shlibs-1.3.4-1 (Blu-Ray disc playback library)
Library designed for Blu-Ray Discs playback for media players

commit log from Hanspeter Niederstrasser ([email protected]):

    libbluray2: add upgrade note
2026-08-14: pdm-backend-py39-2.4.3-1 (Build backend used by PDM & modern standards)
This is the backend for PDM projects that is fully-compatible with PEP
517 spec, but you can also use it alone. It reads the metadata of PEP
621 format and coverts it to Core metadata.

commit log from Hanspeter Niederstrasser ([email protected]):

    pdm-backend: skip git tests that require a non-fink-bld user to run successfully
2026-08-14: pdm-backend-py310-2.4.3-1 (Build backend used by PDM & modern standards)
This is the backend for PDM projects that is fully-compatible with PEP
517 spec, but you can also use it alone. It reads the metadata of PEP
621 format and coverts it to Core metadata.

commit log from Hanspeter Niederstrasser ([email protected]):

    pdm-backend: skip git tests that require a non-fink-bld user to run successfully
2026-08-14: pdm-backend-py38-2.4.3-1 (Build backend used by PDM & modern standards)
This is the backend for PDM projects that is fully-compatible with PEP
517 spec, but you can also use it alone. It reads the metadata of PEP
621 format and coverts it to Core metadata.

commit log from Hanspeter Niederstrasser ([email protected]):

    pdm-backend: skip git tests that require a non-fink-bld user to run successfully
2026-08-14: atomicparsley-20240608.083822.1ed9031-1 (MPEG-4 metadata editor)
AtomicParsley is a lightweight command line program for reading, parsing
and setting metadata into MPEG-4 files supporting these styles of
metadata:

* iTunes-style metadata into .mp4, .m4a, .m4p, .m4v, .m4b files
* 3gp-style assets (3GPP TS 26.444 version 6.4.0 Release 6 specification
  conforming) in 3GPP, 3GPP2, MobileMP4 & derivatives
* ISO copyright notices at movie & track level for MPEG-4 & derivative files
* uuid private user extension text & file embedding for MPEG-4 &
  derivative files

commit log from Hanspeter Niederstrasser ([email protected]):

    atomicparsley: v 20240608.083822.1ed9031
2026-08-13: markupsafe-py37-2.1.5-1 (XML/HTML/XHTML Markup safe string)
Implements a unicode subclass that supports HTML strings.

If you want to make an object unicode that is not yet unicode but
don't want to lose the taint information, you can use the soft_unicode
function.

Objects can customize their HTML markup equivalent by overriding the
__html__ function.

Since MarkupSafe 0.10 there is now also a separate escape function
called escape_silent that returns an empty string for None for
consistency with other systems that return empty strings for None when
escaping (for instance Pylons' webhelpers).

If you also want to use this for the escape method of the Markup
object, you can create your own subclass.

commit log from Hanspeter Niederstrasser ([email protected]):

    markupsafe-py: allow for different directories where setuptools might put build files
2026-08-13: wdiff-1.2.3-1 (Word-based frontend to GNU diff)
Front end to diff for comparing files on a word per word basis. This is useful
for comparing two texts in which a few words have been changed and for which 
paragraphs have been refilled.

commit log from Hanspeter Niederstrasser ([email protected]):

    wdiff: 1.2.3
2026-08-13: markupsafe-py38-2.1.5-1 (XML/HTML/XHTML Markup safe string)
Implements a unicode subclass that supports HTML strings.

If you want to make an object unicode that is not yet unicode but
don't want to lose the taint information, you can use the soft_unicode
function.

Objects can customize their HTML markup equivalent by overriding the
__html__ function.

Since MarkupSafe 0.10 there is now also a separate escape function
called escape_silent that returns an empty string for None for
consistency with other systems that return empty strings for None when
escaping (for instance Pylons' webhelpers).

If you also want to use this for the escape method of the Markup
object, you can create your own subclass.

commit log from Hanspeter Niederstrasser ([email protected]):

    markupsafe-py: allow for different directories where setuptools might put build files
2026-08-13: markupsafe-py39-2.1.5-1 (XML/HTML/XHTML Markup safe string)
Implements a unicode subclass that supports HTML strings.

If you want to make an object unicode that is not yet unicode but
don't want to lose the taint information, you can use the soft_unicode
function.

Objects can customize their HTML markup equivalent by overriding the
__html__ function.

Since MarkupSafe 0.10 there is now also a separate escape function
called escape_silent that returns an empty string for None for
consistency with other systems that return empty strings for None when
escaping (for instance Pylons' webhelpers).

If you also want to use this for the escape method of the Markup
object, you can create your own subclass.

commit log from Hanspeter Niederstrasser ([email protected]):

    markupsafe-py: allow for different directories where setuptools might put build files
2026-08-13: markupsafe-py310-2.1.5-1 (XML/HTML/XHTML Markup safe string)
Implements a unicode subclass that supports HTML strings.

If you want to make an object unicode that is not yet unicode but
don't want to lose the taint information, you can use the soft_unicode
function.

Objects can customize their HTML markup equivalent by overriding the
__html__ function.

Since MarkupSafe 0.10 there is now also a separate escape function
called escape_silent that returns an empty string for None for
consistency with other systems that return empty strings for None when
escaping (for instance Pylons' webhelpers).

If you also want to use this for the escape method of the Markup
object, you can create your own subclass.

commit log from Hanspeter Niederstrasser ([email protected]):

    markupsafe-py: allow for different directories where setuptools might put build files
2026-08-12: lxml-py37-6.1.1-1 (Binding for the libxml2 and libxslt)
The C libraries libxml2 and libxslt have huge benefits:

    * Standards-compliant XML support.
    * Full-featured.  (e.g. supports XPath)
    * Actively maintained by XML experts.
    * fast

lxml is a new Python binding for libxml2 and libxslt, completely
independent from these existing Python bindings. Its aim:

    * Pythonic API.
    * Documented.
    * Use Python unicode strings in API.
    * Safe (no segfaults).
    * No manual memory management!

lxml aims to provide a Pythonic API by following as much as possible
the ElementTree API. We're trying to avoid having to invent too many
new APIs, or you having to learn new things -- XML is complicated
enough.

commit log from Hanspeter Niederstrasser ([email protected]):

    lxml-py: v6.1.1
2026-08-12: lxml-py38-6.1.1-1 (Binding for the libxml2 and libxslt)
The C libraries libxml2 and libxslt have huge benefits:

    * Standards-compliant XML support.
    * Full-featured.  (e.g. supports XPath)
    * Actively maintained by XML experts.
    * fast

lxml is a new Python binding for libxml2 and libxslt, completely
independent from these existing Python bindings. Its aim:

    * Pythonic API.
    * Documented.
    * Use Python unicode strings in API.
    * Safe (no segfaults).
    * No manual memory management!

lxml aims to provide a Pythonic API by following as much as possible
the ElementTree API. We're trying to avoid having to invent too many
new APIs, or you having to learn new things -- XML is complicated
enough.

commit log from Hanspeter Niederstrasser ([email protected]):

    lxml-py: v6.1.1
2026-08-12: lxml-py39-6.1.1-1 (Binding for the libxml2 and libxslt)
The C libraries libxml2 and libxslt have huge benefits:

    * Standards-compliant XML support.
    * Full-featured.  (e.g. supports XPath)
    * Actively maintained by XML experts.
    * fast

lxml is a new Python binding for libxml2 and libxslt, completely
independent from these existing Python bindings. Its aim:

    * Pythonic API.
    * Documented.
    * Use Python unicode strings in API.
    * Safe (no segfaults).
    * No manual memory management!

lxml aims to provide a Pythonic API by following as much as possible
the ElementTree API. We're trying to avoid having to invent too many
new APIs, or you having to learn new things -- XML is complicated
enough.

commit log from Hanspeter Niederstrasser ([email protected]):

    lxml-py: v6.1.1
2026-08-12: lxml-py36-6.1.1-1 (Binding for the libxml2 and libxslt)
The C libraries libxml2 and libxslt have huge benefits:

    * Standards-compliant XML support.
    * Full-featured.  (e.g. supports XPath)
    * Actively maintained by XML experts.
    * fast

lxml is a new Python binding for libxml2 and libxslt, completely
independent from these existing Python bindings. Its aim:

    * Pythonic API.
    * Documented.
    * Use Python unicode strings in API.
    * Safe (no segfaults).
    * No manual memory management!

lxml aims to provide a Pythonic API by following as much as possible
the ElementTree API. We're trying to avoid having to invent too many
new APIs, or you having to learn new things -- XML is complicated
enough.

commit log from Hanspeter Niederstrasser ([email protected]):

    lxml-py: v6.1.1
2026-08-12: lxml-py310-6.1.1-1 (Binding for the libxml2 and libxslt)
The C libraries libxml2 and libxslt have huge benefits:

    * Standards-compliant XML support.
    * Full-featured.  (e.g. supports XPath)
    * Actively maintained by XML experts.
    * fast

lxml is a new Python binding for libxml2 and libxslt, completely
independent from these existing Python bindings. Its aim:

    * Pythonic API.
    * Documented.
    * Use Python unicode strings in API.
    * Safe (no segfaults).
    * No manual memory management!

lxml aims to provide a Pythonic API by following as much as possible
the ElementTree API. We're trying to avoid having to invent too many
new APIs, or you having to learn new things -- XML is complicated
enough.

commit log from Hanspeter Niederstrasser ([email protected]):

    lxml-py: v6.1.1
2026-08-11: cython-py310-3.2.4-1 (Tool to make writing Python modules easy)
Cython is a language specially designed for writing Python extension
 modules. It's designed to bridge the gap between the nice,
 high-level, easy-to-use world of Python and the messy, low-level
 world of C. Cython is based upon the well-known Pyrex package, but
 supports more cutting edge functionality and optimizations. To use
 the cython compiler, type cython at the prompt.
 
 Note: This package uses update-alternatives to allow cython for different 
 versions of python to be installed simultaneously.  '%p/bin/cython' will 
 always point to the highest installed version; use (e.g.) 'cython-py38'
 to choose others.

commit log from Hanspeter Niederstrasser ([email protected]):

    cython-py: v3.2.4
2026-08-11: cython-py38-3.2.4-1 (Tool to make writing Python modules easy)
Cython is a language specially designed for writing Python extension
 modules. It's designed to bridge the gap between the nice,
 high-level, easy-to-use world of Python and the messy, low-level
 world of C. Cython is based upon the well-known Pyrex package, but
 supports more cutting edge functionality and optimizations. To use
 the cython compiler, type cython at the prompt.
 
 Note: This package uses update-alternatives to allow cython for different 
 versions of python to be installed simultaneously.  '%p/bin/cython' will 
 always point to the highest installed version; use (e.g.) 'cython-py38'
 to choose others.

commit log from Hanspeter Niederstrasser ([email protected]):

    cython-py: v3.2.4
2026-08-11: cython-py39-3.2.4-1 (Tool to make writing Python modules easy)
Cython is a language specially designed for writing Python extension
 modules. It's designed to bridge the gap between the nice,
 high-level, easy-to-use world of Python and the messy, low-level
 world of C. Cython is based upon the well-known Pyrex package, but
 supports more cutting edge functionality and optimizations. To use
 the cython compiler, type cython at the prompt.
 
 Note: This package uses update-alternatives to allow cython for different 
 versions of python to be installed simultaneously.  '%p/bin/cython' will 
 always point to the highest installed version; use (e.g.) 'cython-py38'
 to choose others.

commit log from Hanspeter Niederstrasser ([email protected]):

    cython-py: v3.2.4