Legal
Open-source components
PrivacyFirst Photo Organizer includes open-source libraries, most under permissive licences (MIT, Apache 2.0, BSD) that ask only for attribution. The complete inventory of every component — its licence, its version, and the attribution each requires — is shown inside the application itself, on the About page.
This page covers only the components licensed under the GNU Lesser General Public License, version 3 (LGPL-3.0), because that licence asks us to do a few specific things: name them, tell you the rights it gives you, and make a standing offer of their source code. They are set out below, followed by the GCC runtime libraries that come with the application's numerical libraries.
The LGPL-3.0 components
Each of these is included unmodified, exactly as published by its authors, and each is loaded as a separate, replaceable shared-library file rather than compiled into the application — which is what makes relinking possible (see below). The one exception is libquadmath on Windows, described below.
| Component | Version | What it's for |
|---|---|---|
| Qt, PySide6 and shiboken6 | 6.11.1 | The graphical user interface. © The Qt Company Ltd. and other Qt contributors. |
| libheif | 1.19.7 | Reading HEIC/HEIF photographs (the format iPhones use), reached through the pi-heif package. © 2017-2020 Struktur AG, © 2017-2024 Dirk Farin. |
| libde265 | 1.0.15 | The HEVC decoder libheif uses. © 2013-2014 Struktur AG, © 2013-2023 Dirk Farin. |
| libquadmath | from GCC — per platform | GCC's quad-precision maths library, part of its Fortran runtime. The application's own code does not call it: NumPy, SciPy and faiss include it in their published packages, beside the linear-algebra library (OpenBLAS) built against it. Licensed by its authors under the LGPL version 2.1 or later; we distribute it under version 3. © Free Software Foundation, Inc., and the other contributors named in its source. |
Source code
Qt, PySide6, shiboken6, libheif and libde265 are the same versions in every release so far — application versions 1.0.0, 1.1.0, 1.1.1 and 1.1.2 all use exactly the versions listed above. The offer follows the library version rather than the application's, so a new release that keeps its libraries changes nothing here; when a library is upgraded, its new version is added below and the old one stays. libquadmath comes from several builds of GCC and has its own section.
We ship these libraries unmodified, so the upstream release is the corresponding source. The archives below are byte-for-byte the authors' own published source, mirrored here so the offer does not depend on someone else's URL structure. Verify what you downloaded against the SHA-256 hash before using it.
Qt / PySide6 / shiboken6 — 6.11.1
PySide6 / shiboken6 (17.1 MB, one file):
Qt (971 MB). Hosting caps a single file at 300 MB here, so it is published as four parts — concatenate them to get the original archive:
| File | SHA-256 |
|---|---|
…part-aa |
82a93025983c4d210c605106a8588f269b221d386665d842d00091ea805bec27 |
…part-ab |
543762d6dd4dfd88ebfe616ff47d77a3851f695b44348eab965a9cdcba927751 |
…part-ac |
73546a936876e2df4920b4100f674d95a631047d6120731077b5d0a83d12c303 |
…part-ad |
c21e4114b4f1f44d2a341da588c2991f3e5c1d44ef250ae631a2d512d6c3a63c |
| reassembled whole | 252acef8c5ae68074d91cadba2ee4a83465051bbb970dd26e8f0daa0f3904e03 |
libheif — 1.19.7
libheif — 1.18.1, named in error
Correction, 2 October 2026. The licence notices inside application versions 1.0.0 to 1.1.1 name libheif 1.18.1. That was an error: those builds contain libheif 1.19.7, whose source is directly above. The wrong number came from the version declaration of the package that bundles libheif. Copies of 1.1.1 downloaded after the correction carry a notice that names 1.19.7. This archive stays because the earlier notices link to it.
libde265 — 1.0.15
libquadmath — from GCC
Each copy of libquadmath was built by the project whose package carries it, as part of a particular build of GCC, so its corresponding source is that build's source. Which build depends on the platform and the package:
| Where | GCC build and its source |
|---|---|
| macOS — NumPy 1.26.4 (Apple silicon and Intel), SciPy 1.17.1 (Intel) | GCC 11.3.0 as built by conda-forge: the GNU release with conda-forge's patches, in the recipe |
| macOS — SciPy 1.17.1 (Apple silicon) |
GCC 12.1 for Apple silicon, from Iain Sandoe's branch, tag
gcc-12.1-darwin-r0
|
| Linux — NumPy 1.26.4, and the OpenBLAS part of SciPy 1.17.1 |
Red Hat Developer Toolset 10, GCC 10.2.1-11 —
11.1.el7
and
11.2.el7
(the binaries identify themselves as 10.2.1-11, which both packages build)
|
| Linux — SciPy 1.17.1 | AlmaLinux 8, GCC 8.5.0-26 |
| Linux — faiss-cpu 1.14.3, scikit-learn 1.9.0 | AlmaLinux 8, GCC 8.5.0-28 |
| Windows — compiled into NumPy 1.26.4's OpenBLAS library |
GCC 10.3.0, the MinGW-w64 build distributed with Rtools:
the GNU release
with Rtools' patches, in
the recipe
(package 10.3.0-9804);
and the OpenBLAS source needed to rebuild that library (BSD-3-Clause),
commit c2f4bdbb
|
| Windows — compiled into faiss-cpu 1.14.3's OpenBLAS library | GCC 9.3.0 as built by MXE: the GNU release with MXE's patches, in its gcc9 plugin (with MinGW-w64 8.0.0) |
Mirrored here, byte-for-byte as fetched from the addresses above
(11 October 2026; the two Windows patch sets 16 October 2026), so the offer does not depend on those servers staying put. The GNU
tarballs carry GNU's own signatures (.sig, checkable against the
GNU keyring); the Red Hat and
AlmaLinux packages match the checksums their repositories publish.
| File | SHA-256 |
|---|---|
gcc-11.3.0.tar.gz |
98438e6cc7294298b474cf0da7655d9a8c8b796421bb0210531c294a950374ed |
gfortran_impl_osx-64-feedstock-481738c977ef7b651105c9715ad2255c613500df.tar.gz |
0222e9b5011bfbb0a6d99cd3cdfdd4bbb3bb6a17c8cb17b601b638cd33ce6c20 |
gcc-12-branch-gcc-12.1-darwin-r0.tar.gz |
1c6a27d7a28d41f068a648e78f34b9571ecab8e7b94d791a034728ef19c0ec7f |
devtoolset-10-gcc-10.2.1-11.1.el7.src.rpm |
02c1de402c179070b665328f6a21ae36d0e7e0340a90e9d025e736f27bb6f596 |
devtoolset-10-gcc-10.2.1-11.2.el7.src.rpm |
f4034c90b54ffd257e9e181e789562565901d29fba5aadcd65493683008ab626 |
gcc-8.5.0-26.el8_10.alma.1.src.rpm |
0911864c260a75ae030f3144616e7e5e1359e04ce1c9730ab83906486e3bc79f |
gcc-8.5.0-28.el8_10.alma.1.src.rpm |
c94dbbd2cd6d5d01a5a6822ea18f8ce34942c25a80e17b4682d547d5e652dbd0 |
gcc-10.3.0.tar.gz |
8fcf994811ad4e5c7ac908e8cf62af2c1982319e5551f62ae72016064dacdf16 |
rtools-ucrt-c5344cc8c7e310ee4eee513b2381af2e75d65cb9.tar.gz |
6540c9aeb9234f7438401257c1aacdeaaee8ef3d3877b14df50319042a1cd12f |
OpenBLAS-c2f4bdbbb43a1d20a7342f40122e18e573ce436a.tar.gz |
9c0f2b8d1f6839f8b0d1309417e06d38eabfa76ba52d9fe80f79df496d5afddc |
gcc-9.3.0.tar.gz |
5258a9b6afe9463c2e56b9e8355b1a4bee125ca828b8078f910303bc2ef91fa6 |
mxe-151f5502387653ea87fddf325b4e952972d7717d.tar.gz |
729024728af3637676a2502253c492ee137d3b11dcbd09123897719243c2629b |
Correction, 11 October 2026. Application versions 1.0.0 to 1.1.1 contain libquadmath and the GCC runtime libraries as well, through the numerical packages they include, but their licence notices do not name them; the notice in 1.1.2 is the first that does. If you have one of those versions, the written offer below applies to it in full: write to us and we will send the source of the GCC build your copy contains.
The written offer
We will provide the complete corresponding source code for any LGPL-3.0 library — libquadmath included — in any version of this application we have distributed, at no charge beyond the cost of the delivery medium. Write to support@itfanatic.com.
This offer is what the obligation actually rests on — the mirror above is a convenience, and this is what survives a URL moving or a hosting change. It is open to anyone who has a copy of the application, for as long as we distribute it.
The GCC runtime libraries
The same numerical packages also include parts of GCC's runtime:
libgfortran and libgcc_s, and on Linux
libgomp. On Windows these are compiled into the OpenBLAS libraries of
NumPy, SciPy and faiss rather than being separate files. They are licensed under the
GNU General Public License version 3 with the GCC Runtime Library Exception,
version 3.1, which permits them to be distributed with programs compiled by
GCC under terms of the distributor's choosing. Complete copies of both texts ship with
the application, in its licenses folder. Their source is the GCC source
listed for each platform above.
These libraries are unmodified
We do not patch Qt, PySide6, shiboken6, libheif, libde265, or GCC's libraries. The archives above are therefore byte-for-byte the same as what their authors published — the upstream release is the corresponding source, and nothing here should be read as a claim that we changed any of it. GCC's libraries come exactly as the packages that carry them were published, built by those packages' own maintainers.
Modify, relink, and reverse engineer to debug
Nothing in our End-User License Agreement restricts the rights the LGPL-3.0 gives you in these libraries. In particular, you may modify them, relink the application against your own interface-compatible build of them, and reverse engineer the application as far as needed to debug such modifications. This is possible because they ship as separate shared-library files inside the application folder rather than compiled in.
The exception is libquadmath on Windows: there it is not a separate file but is compiled into the OpenBLAS libraries of NumPy and faiss. To relink it, rebuild OpenBLAS from its source with the same version of GCC (both are listed above), linking your modified libquadmath, and replace that library file with the result.
Full step-by-step instructions — which files to replace on each platform, and a note
for macOS about re-signing after replacing one — are in
licenses/THIRD-PARTY-NOTICES.txt, which ships inside the application and
is one click away from the About page's Open license texts…
button.