Repository navigation
Expand file tree
/
Copy pathNOTICE
More file actions
157 lines (127 loc) · 7.97 KB
/
Copy pathNOTICE
File metadata and controls
157 lines (127 loc) · 7.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
Musix is a derivative work of Sung (https://github.com/yappologistic/Sung),
copyright (c) 2026 Sung contributors, used under the MIT License. The
original license text is retained in LICENSE.
Musix uses Google Material Symbols, licensed under Apache-2.0.
The license is provided in licenses/MaterialSymbols-LICENSE.txt.
Icons originate from https://github.com/google/material-design-icons.
Icons use the official Material Symbols Rounded SVG assets at the 20px, 24px
and 40px optical sizes, FILL=1, with the FILL=0 forms for the symbols that
report a state: the navigation destinations, the liked song and the pinned
collection.
Spun application code is not incorporated into Musix.
Visual references: Google Material Design 3 and Spun.
Architecture reference: https://github.com/amiralibg/unstream.
No Unstream source code is incorporated.
Accent colours: the Catppuccin, Gruvbox and Rosé Pine choices in Settings use
those palettes' published colour values, copied into qml/AccentPalettes.qml
with the commit each came from.
Catppuccin https://github.com/catppuccin/palette MIT, (c) 2021 Catppuccin
licenses/Catppuccin-palette-MIT.txt
Gruvbox https://github.com/morhetz/gruvbox MIT/X11, by morhetz, as
stated in its README; the repository carries no separate
license text
Rosé Pine https://github.com/rose-pine/palette MIT, (c) mvllow
licenses/RosePine-palette-MIT.txt
On Linux, where Musix is built against an installed Qt, those runtime
dependencies carry their own licenses and are not redistributed with it.
Qt licensing: https://www.qt.io/licensing/open-source-lgpl-obligations
The installed Qt Multimedia and FFmpeg packages determine the media backend.
Catalog requests use ytmusicapi (MIT); audio resolution uses yt-dlp (Unlicense).
THE macOS APPLICATION BUNDLE
============================
The macOS bundle is self-contained, so it redistributes all of the below and
carries the full text of every one of their licenses in
Musix.app/Contents/Resources/licenses. It runs on macOS 14 and later; every
binary in it is built for that, and the build refuses to ship otherwise.
Payload Musix adds deliberately
-------------------------------
FFmpeg 7.1 LGPL-2.1-or-later FFmpeg-LGPL-2.1.txt
CPython 3.11.16 PSF CPython-PSF.txt
yt-dlp Unlicense yt-dlp-Unlicense.txt
ytmusicapi MIT ytmusicapi-MIT.txt
Telethon MIT Telethon-MIT.txt
cryptg CC0-1.0 cryptg-CC0.txt
pyaes MIT pyaes-MIT.txt
rsa Apache-2.0 rsa-Apache-2.0.txt
pyasn1 BSD-2-Clause pyasn1-BSD-2-Clause.txt
Material Symbols Apache-2.0 MaterialSymbols-LICENSE.txt
Catppuccin palette MIT Catppuccin-palette-MIT.txt
Rosé Pine palette MIT RosePine-palette-MIT.txt
Gruvbox palette MIT/X11 (no text published; see above)
Qt
--
Qt 6.11.2, The Qt Company's official macOS binaries, redistributed under the
GNU Lesser General Public License version 3.0 only. Qt is available under
several licenses; LGPL-3.0-only is the one Musix relies on. LGPL-3.0
incorporates the GNU General Public License version 3, so both texts are
included:
Qt 6.11.2 LGPL-3.0-only Qt-LGPL-3.0.txt
Qt-LGPL-3.0-incorporates-GPL-3.0.txt
The bundle ships Qt's frameworks and the plugins they load, and nothing else
alongside them: every framework in Musix.app/Contents/Frameworks is Qt's, and
no other shared library is bundled. The build checks this and fails otherwise.
Qt compiles third-party code into its own binaries. Qt records each piece in a
qt_attribution.json beside it; the notices and full license texts for every
component that can be in the shipped frameworks and plugins are collected from
those files, out of the pinned Qt 6.11.2 module sources, into
Qt-third-party.txt
That includes, among others, HarfBuzz, libpng, libjpeg-turbo, libwebp, PCRE2,
FreeType, MD4C, TinyCBOR, double-conversion, the JavaScriptCore macro
assembler, Yoga, Pixman, the Unicode Character Database and CLDR, and the
Public Suffix List. scripts/qt-licenses.py writes it and states, for each
component it leaves out, why that code cannot be in the bundle -- other
platforms, build tooling, tests, and the parts of Qt the bundle does not
carry -- and the build checks each of those premises against the bundle.
Where one of those components is offered under more than one license, the
option Musix takes is:
FreeType, and its anti-aliasing rasterizer in QtGui
FTL OR GPL-2.0-only; taken under the FreeType License (FTL).
libdbus-1 headers
AFL-2.1 OR GPL-2.0-or-later; taken under AFL-2.1.
BLAKE2 CC0-1.0 OR Apache-2.0; taken under CC0-1.0.
DR Libs Unlicense OR MIT-0; taken under MIT-0.
Vulkan API Registry
Apache-2.0 OR MIT; taken under MIT.
No GPL-licensed component is redistributed.
As the FreeType License requires of a binary redistribution: this software is
based in part on the work of the FreeType Team (https://freetype.org).
Corresponding source
--------------------
FFmpeg (https://ffmpeg.org), used unmodified as the ffmpeg and ffprobe
executables, under the GNU Lesser General Public License version 2.1 or later.
The bundled build is configured with --disable-gpl --disable-nonfree
--disable-autodetect, so it contains no GPL-licensed or non-free components and
links no external libraries. Its only encoders are mjpeg, png and pcm_f32le and
its only muxers image2, mjpeg, f32le and mp4 (--enable-encoder=mjpeg,png,pcm_f32le
--enable-muxer=image2,mjpeg,pcm_f32le,mp4): it extracts cover art, decodes songs to
raw audio that Musix analyses for its level meters and volume levelling, and
rewrites a downloaded song's MP4 container without re-encoding it.
scripts/build-ffmpeg.sh reproduces it exactly from the upstream release it
pins. LGPL-2.1 section 6 offers no equivalent of GPLv3
section 6(d), which is what permits a third-party server, so the corresponding
source is published alongside each release as
Musix-<version>-ffmpeg-<ffmpeg version>-source.tar.xz, which is the unmodified
tarball the bundled binaries were built from.
Qt 6.11.2 is LGPL-3.0-only, which incorporates GPLv3, and GPLv3 section 6(d)
permits conveying the Corresponding Source from a different server provided
there are clear directions to it. These are those directions. The complete
corresponding source for the bundled Qt is the unmodified upstream release:
https://download.qt.io/archive/qt/6.11/6.11.2/single/qt-everywhere-src-6.11.2.tar.xz
The official binaries are built by The Qt Company from that release. Qt is
dynamically linked as separate frameworks inside Musix.app/Contents/Frameworks
and can be replaced with a modified build, and Musix's own source is published
under the MIT License at https://github.com/ImanMontajabi/Musix.
The same Qt source is also the Source Code Form of the MPL-2.0 components
compiled into Qt -- the Public Suffix List data in QtNetwork -- as MPL-2.0
section 3.2 requires recipients be told how to obtain it.
CPython (https://python.org), redistributed as a relocatable build from
python-build-standalone (https://github.com/astral-sh/python-build-standalone),
under the Python Software Foundation License.
yt-dlp (Unlicense) and ytmusicapi (MIT) are installed into that runtime, and
the application updates those two packages in place.
Telegram sign-in uses Telethon (MIT) with cryptg (CC0), pyaes (MIT), rsa
(Apache-2.0) and pyasn1 (BSD-2-Clause), installed into the same runtime and
pinned in helper/requirements.txt. Musix is an independent client of Telegram's
public API and is not affiliated with or endorsed by Telegram.
No fonts are bundled. Musix uses an installed Google Sans Flex or Noto Sans font.
Musix is independent of Google and YouTube.