OpenJSQ - third-party software notices
=======================================

OpenJSQ itself is proprietary: Copyright (c) 2026 Jerome Goddard II (W4IJG),
all rights reserved (see LICENSE in the source repository). The Windows
packages also contain the third-party libraries listed in sections 1 to 4,
and the Linux AppImages those listed in section 5. Each keeps its own
licence. The full licence texts are in the folders next to this file, one
folder per component, named as in the "Texts" column (for the Linux
AppImages, in linux/, one folder per Debian package).

Every library here is used unmodified, as built and packaged by the MSYS2
project (https://www.msys2.org/) for the mingw-w64 x86_64 toolchain (the
Windows packages) or by the Ubuntu project (https://ubuntu.com/) for Ubuntu
24.04 (the Linux AppImages).


1. Which package contains what
------------------------------

OpenJSQ-windows-x64.zip and OpenJSQ-closed-beta-windows-x64.zip
  openjsq-desktop.exe and every DLL listed in section 2, including the Qt
  plugin folders (platforms, styles, sqldrivers). The sqldrivers folder
  holds the SQLite driver (qsqlite.dll) only: the other Qt SQL drivers are
  not shipped. The tls folder holds the Schannel backend (qschannelbackend.dll)
  only: it is Qt's interface to Windows' own TLS, so it adds no library of its
  own, and OpenJSQ uses it for its one https request (the update check). The
  packages hold no image-format, network-information or touch plugins:
  OpenJSQ loads only PNG pictures, which Qt reads itself, and uses no
  network-status or touch input.


2. Components
-------------

Component           Files in the package                  Licence                         Texts             Source
------------------  ------------------------------------  ------------------------------  ----------------  -------------------------------------------
Qt 6 (qtbase)       Qt6Core.dll Qt6Gui.dll Qt6Network.dll LGPL-3.0-only (see section 3)   qt6-base/         https://download.qt.io/archive/qt/
                    Qt6PrintSupport.dll Qt6Sql.dll                                                          https://code.qt.io/cgit/qt/qtbase.git
                    Qt6Widgets.dll, and the plugins
                    qwindows.dll qmodernwindowsstyle.dll
                    qsqlite.dll qschannelbackend.dll
GLib                libglib-2.0-0.dll                     LGPL-2.1-or-later               glib2/            https://gitlab.gnome.org/GNOME/glib
GNU libintl         libintl-8.dll                         LGPL-2.1-or-later               gettext-runtime/  https://www.gnu.org/software/gettext/
(gettext runtime)                                                                         intl/
GNU libiconv        libiconv-2.dll                        LGPL-2.1-or-later               libiconv/         https://www.gnu.org/software/libiconv/
Graphite2           libgraphite2.dll                      LGPL-2.1-or-later (also         graphite2/        https://github.com/silnrsi/graphite
                                                          offered under MPL-2.0 and
                                                          GPL-2.0-or-later)
GCC runtime         libgcc_s_seh-1.dll libstdc++-6.dll    GPL-3.0-or-later WITH the GCC   gcc-libs/         https://gcc.gnu.org/
                                                          Runtime Library Exception 3.1
mingw-w64           libwinpthread-1.dll                   MIT and BSD-3-Clause-Clear      libwinpthread/    https://www.mingw-w64.org/
winpthreads
mingw-w64 runtime   (start-up code linked into each .exe) Public domain; parts ZPL-2.1    crt/              https://www.mingw-w64.org/
PortAudio           libportaudio.dll                      MIT-style (PortAudio licence)   portaudio/        https://www.portaudio.com/
FreeType            libfreetype-6.dll                     FreeType License (FTL), chosen  freetype/         https://freetype.org/
                                                          from FTL or GPL-2.0-or-later
HarfBuzz            libharfbuzz-0.dll                     MIT ("Old MIT")                 harfbuzz/         https://harfbuzz.github.io/
libpng              libpng16-16.dll                       PNG Reference Library License   libpng/           http://www.libpng.org/pub/png/libpng.html
                                                          version 2
zlib                zlib1.dll                             Zlib                            zlib/             https://www.zlib.net/
PCRE2               libpcre2-8-0.dll libpcre2-16-0.dll    BSD-3-Clause with the PCRE2     pcre2/            https://pcre.org/
                                                          exception
Zstandard           libzstd.dll                           BSD-3-Clause, chosen from       zstd/             https://facebook.github.io/zstd/
                                                          BSD-3-Clause or GPL-2.0-or-later
Brotli              libbrotlicommon.dll libbrotlidec.dll  MIT                             brotli/           https://github.com/google/brotli
bzip2               libbz2-1.dll                          bzip2 licence (BSD-style)       bzip2/            https://sourceware.org/bzip2/
double-conversion   libdouble-conversion.dll              BSD-3-Clause                    double-conversion/ https://github.com/google/double-conversion
ICU                 libicudt78.dll libicuin78.dll         Unicode License v3              icu/              https://icu.unicode.org/
                    libicuuc78.dll                                                                          (Copyright (c) 2016 and later Unicode, Inc.)
MD4C                libmd4c.dll                           MIT                             md4c/             https://github.com/mity/md4c
libb2 (BLAKE2)      libb2-1.dll                           CC0-1.0                         libb2/            https://blake2.net/
SQLite              libsqlite3-0.dll                      Public domain                   sqlite3/          https://www.sqlite.org/
Monocypher 4.0.3    (compiled into openjsq-desktop.exe)   BSD-2-Clause or CC0-1.0         monocypher/       https://github.com/LoupVaillant/Monocypher

Required acknowledgements:
  - Portions of this software are copyright (c) The FreeType Project
    (https://freetype.org). All rights reserved.

The versions in a given package are the ones MSYS2 shipped when it was built;
the DLL names above stay the same between versions. The notices were last
checked against: Qt 6.11.1, GLib 2.88.3, gettext 1.0, libiconv 1.19,
Graphite2 1.3.15, GCC 16.1.0, mingw-w64 14.0.0, PortAudio 19.7.0,
FreeType 2.14.3, HarfBuzz 14.3.0, libpng 1.6.58, zlib 1.3.2, PCRE2 10.47,
zstd 1.5.7, Brotli 1.2.0, bzip2 1.0.8, double-conversion 3.4.0, ICU 78.3,
MD4C 0.5.3, libb2 0.98.1, SQLite 3.53.4.


3. Qt and the other LGPL libraries
----------------------------------

Qt, GLib, GNU libintl, GNU libiconv and Graphite2 are licensed under the GNU
Lesser General Public License (Qt under version 3, the others under version
2.1 or later). Their licence texts are in qt6-base/LGPL-3.0-only.txt (with
the GNU GPL version 3 it builds on, qt6-base/GPL-3.0-only.txt),
glib2/COPYING, gettext-runtime/intl/COPYING.LIB, libiconv/COPYING.LIB and
graphite2/COPYING.

  - OpenJSQ uses these libraries only through dynamic linking. Each one is a
    separate DLL in the package folder; none is linked statically into
    openjsq-desktop.exe, and none has been modified.

  - You may replace any of these DLLs with your own build of a compatible
    version of the same library, modified or not: put your DLL in the
    package folder in place of the one supplied, and OpenJSQ will load it.
    You may also reverse-engineer OpenJSQ to the extent needed to debug such
    modifications, as section 6 of LGPL-2.1 and section 4 of LGPL-3.0
    require. OpenJSQ's own licence (LICENSE) says the same: nothing in it
    limits the rights these libraries' licences give you, including
    replacing or modifying them and that reverse engineering. It opens
    nothing of OpenJSQ beyond what the LGPL requires.

  - The source code of each library is available from its project at the
    address in section 2. The exact source MSYS2 built each package from is
    published by MSYS2 with its build recipes:
      https://github.com/msys2/MINGW-packages
      https://repo.msys2.org/mingw/sources/
    For Qt, the source of every release is at
    https://download.qt.io/archive/qt/ (qtbase is the module these DLLs
    come from).

  - The copyright holder will also provide, on request, a copy of the
    source code of the LGPL libraries in any package, for at least three
    years after that package was distributed. This is a written offer. Send
    requests through the contact page at http://www.openjsq.com/contact/,
    and name the package (its file name and version, for example
    OpenJSQ-windows-x64.zip from OpenJSQ 1.0.6) so the right source can be
    sent.

The GCC runtime libraries (libgcc_s_seh-1.dll, libstdc++-6.dll) are under
the GNU GPL version 3 with the GCC Runtime Library Exception, version 3.1
(gcc-libs/COPYING3 and gcc-libs/COPYING.RUNTIME). The exception allows
programs compiled with GCC to be distributed under terms of their own
choosing.


4. Not in any package
---------------------

The source repository also holds a GPL-3.0-or-later snapshot of fldigi's FSQ
modem under third_party/fldigi-fsq/, used only by its own tests and one bench
tool, as an interoperability and sensitivity reference. No packaged program contains or links it; see
THIRD_PARTY_LICENSES.md and NOTICE.md in the repository.


5. The Linux AppImages
----------------------

OpenJSQ-linux-x86_64.AppImage and OpenJSQ-CLOSED-BETA-linux-x86_64.AppImage
hold openjsq-desktop and the shared libraries below, each as built and
packaged by Ubuntu 24.04 (noble) and copied unmodified into the image by
linuxdeploy (https://github.com/linuxdeploy/linuxdeploy). Each is a separate
.so file in the image's usr/lib or usr/plugins folder; none is linked
statically into openjsq-desktop. The licence text of every package is in
licenses/linux/<package>/copyright inside the image and beside it, and
licenses/linux/BUNDLED_LIBRARIES.txt names the package each file came from.
The image holds the Qt plugins OpenJSQ uses (platforms: xcb and offscreen;
sqldrivers: SQLite; printsupport: CUPS; platforminputcontexts;
xcbglintegrations; tls: the OpenSSL backend) and no image-format,
network-information or touch plugin.

The libraries below are used under the same terms as sections 3 and 6 set
out for the LGPL ones: dynamic linking only, replaceable (an AppImage can be
unpacked with --appimage-extract, a library swapped in squashfs-root/usr/lib
and the folder run through its AppRun), source from the project and from
Ubuntu (https://packages.ubuntu.com/source/noble/ and
https://archive.ubuntu.com/ubuntu/pool/), and the same written offer of
source as section 3.

Qt 6.4.2 (qtbase)      LGPL-3.0-only          package libqt6core6t64 and its siblings
  libQt6Core.so.6 libQt6DBus.so.6 libQt6Gui.so.6 libQt6Network.so.6
  libQt6PrintSupport.so.6 libQt6Sql.so.6 libQt6Widgets.so.6 libQt6XcbQpa.so.6
  and the plugins libqxcb.so libqoffscreen.so libqsqlite.so
  libqopensslbackend.so (TLS, for the update check's https request)
  libcupsprintersupport.so libcomposeplatforminputcontextplugin.so
  libibusplatforminputcontextplugin.so libqxcb-glx-integration.so
  libqxcb-egl-integration.so
GLib                   LGPL-2.1-or-later      libglib-2.0.so libgio-2.0.so libgobject-2.0.so libgmodule-2.0.so
ICU                    Unicode license        libicudata.so libicui18n.so libicuuc.so
PCRE2                  BSD-3-Clause           libpcre2-8.so libpcre2-16.so
double-conversion      BSD-3-Clause           libdouble-conversion.so
MD4C                   MIT                    libmd4c.so
libb2 (BLAKE2)         CC0-1.0 / Apache-2.0   libb2.so
libpng                 libpng-2.0             libpng16.so
Zstandard              BSD-3-Clause or GPL-2  libzstd.so
Brotli                 MIT                    libbrotlicommon.so libbrotlidec.so
bzip2                  bzip2 licence          libbz2.so
Graphite2              LGPL-2.1-or-later      libgraphite2.so
SQLite                 Public domain          libsqlite3.so
PortAudio              MIT-style              libportaudio.so
xkbcommon              MIT                    libxkbcommon.so libxkbcommon-x11.so
X protocol libraries   MIT / X11              libxcb-glx.so libxcb-icccm.so libxcb-image.so
                                              libxcb-keysyms.so libxcb-randr.so libxcb-render.so
                                              libxcb-render-util.so libxcb-shape.so libxcb-shm.so
                                              libxcb-sync.so libxcb-util.so libxcb-xfixes.so
                                              libxcb-xkb.so libXau.so libXdmcp.so
D-Bus                  AFL-2.1 or GPL-2+      libdbus-1.so
systemd                LGPL-2.1-or-later      libsystemd.so
util-linux             LGPL-2.1-or-later      libmount.so libblkid.so
libcap                 BSD-3-Clause or GPL-2  libcap.so
libselinux             Public domain          libselinux.so
libffi                 MIT                    libffi.so
LZ4                    BSD-2-Clause           liblz4.so
XZ Utils               0BSD / public domain   liblzma.so
libmd, libbsd          BSD-style              libmd.so libbsd.so
libgcrypt              LGPL-2.1-or-later      libgcrypt.so
OpenMP runtime (GCC)   GPL-3.0-or-later WITH GCC Runtime Library Exception 3.1   libgomp.so
CUPS                   Apache-2.0 with the CUPS exception   libcups.so
Avahi                  LGPL-2.1-or-later      libavahi-client.so libavahi-common.so
Kerberos 5 (MIT)       MIT-style              libgssapi_krb5.so libk5crypto.so libkrb5.so libkrb5support.so
keyutils               LGPL-2.1-or-later      libkeyutils.so
GnuTLS and its parts   LGPL-2.1-or-later (GnuTLS, libtasn1), LGPL-3.0-or-later or GPL-2+
                       (Nettle, libunistring, libidn2), BSD-3-Clause (p11-kit)
                                              libgnutls.so libhogweed.so libnettle.so
                                              libp11-kit.so libtasn1.so libunistring.so libidn2.so
OpenSSL 3              Apache-2.0             libssl.so libcrypto.so
OpenLDAP               OpenLDAP Public License libldap.so liblber.so
Cyrus SASL             CMU BSD-style          libsasl2.so
libssh                 LGPL-2.1-or-later      libssh.so
librtmp                LGPL-2.1               librtmp.so
curl                   curl (MIT-style)       libcurl-gnutls.so
libpsl                 MIT                    libpsl.so
nghttp2                MIT                    libnghttp2.so
Berkeley DB            Sleepycat              libdb-5.3.so
Duktape                MIT                    libduktape.so
libproxy               LGPL-2.1-or-later      libproxy.so libpxbackend-1.0.so

The Linux part of this notice is checked by tools/provenance_audit/
check_appimage_notices.sh, which fails the build if the image holds a shared
library that is not named here, a library from an unknown package, or a Qt
plugin folder OpenJSQ does not use.
