Clementine

Ircus

Bardzo aktywny
Ekspert
Dołączył
26 Maj 2010
Posty
22367
Reakcje/Polubienia
69367
Clementine 1.4.1-177
Merge the ccache env into the Fedora jobs' existing block

The Fedora jobs already set RPM_BUILD_NCPUS at job level, so adding a
second env: made the file invalid and GitHub refused to run it. Python's
yaml.safe_load takes the last of two duplicate keys rather than
complaining, which is why this got past me - and quietly dropped
RPM_BUILD_NCPUS in the process.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Zaloguj lub Zarejestruj się aby zobaczyć!
 

Camel1965

Bardzo aktywny
Zasłużony
Dołączył
8 Wrzesień 2010
Posty
56112
Reakcje/Polubienia
41084

Clementine 1.4.1-190​

Format C++ files as Claude Code edits them (#7510)

PRs kept failing the clang-format lint job because edited files were never
formatted locally. Add a Claude Code PostToolUse hook that runs clang-format
on each C++ file under src/ after it's edited, with the same version, style
and scope as CI. If clang-format is missing or the wrong version, it leaves
the file alone and tells Claude how to install the right one.

dist/format.py now holds the version, style and extensions as constants so
the hook can share them, and its install hint suggests uv instead of
Homebrew, which ships a version that formats differently from CI. The
README says how to install clang-format 23.1.0.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Zaloguj lub Zarejestruj się aby zobaczyć!
 

Ircus

Bardzo aktywny
Ekspert
Dołączył
26 Maj 2010
Posty
22367
Reakcje/Polubienia
69367

Clementine 1.4.1-193​

Keep the Mac and Windows ccache dir out of runner.temp

The runner context isn't available in a job's env, so GitHub rejected
the whole workflow file and ran none of it - on this PR's first push,
not just after the rebase. Use the workspace instead, which the github
context can reach there. actionlint flags this; the YAML-level checks I
had been using couldn't.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Zaloguj lub Zarejestruj się aby zobaczyć!
 

Ircus

Bardzo aktywny
Ekspert
Dołączył
26 Maj 2010
Posty
22367
Reakcje/Polubienia
69367

Clementine 1.4.1-210​

Don't touch the Plex event stream after its manager is gone

Quitting while connected crashed: the service's QNetworkAccessManager is
its first child, so it is destroyed - taking the event-stream reply with
it - before the notification listener, whose destructor then aborted the
dangling reply. Hold the reply in a QPointer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Clementine 1.4.1-204​

Fix the compiler warnings left in CI

Two of these were bugs:

- On TagLib 1, ReadCloudFile passed AudioProperties::Accurate where
MPEG::File takes bool readProperties, so the read style fell back to
Average. Fedora 43 flagged it (-Wint-in-bool-context); Bookworm and
Jammy compile the same call without warning. The call a few lines
down already had the right order.
- libmygpo's "not set" sentinel was (2^64)-1, and ^ is XOR, so it came
to 65: a genuine position, start or total of 65 was dropped from
episode actions sent to gpodder.net. Vendored, but upstream has no
Qt 6 build.

The rest: a missing override on AlbumCoverManagerList::dropEvent, and
PlaylistItem's deprecated QVariant(QVariant::String), replaced with the
QMetaType constructor - the same null QString-typed value. In the tests,
unchecked open() and load() results are now asserted, so a missing file
fails where it happens, and deprecated QVariant::type() and
QSqlDatabase::exec() calls are updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Clementine 1.4.1-196​

Render the playlist drag cache at device pixel resolution (#7517)

The cached_tree_ pixmap used while dragging over the playlist was
allocated at the logical widget size, so on HiDPI screens the whole
playlist went blurry for the duration of the drag.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

Zaloguj lub Zarejestruj się aby zobaczyć!
 
Ostatnia edycja:

Ircus

Bardzo aktywny
Ekspert
Dołączył
26 Maj 2010
Posty
22367
Reakcje/Polubienia
69367

Clementine 1.4.1-214​

Pass the translation sources to xgettext in a file

add_pot put every source file on xgettext's command line. On Windows
that line is limited to 32767 characters and is now close to full: a
branch adding about fifteen files failed the Windows build while
generating translations.pot, with "The system cannot execute the
specified program". The list now goes in a file read with --files-from,
which shrinks the command to under 1000 characters on every platform.

The generated .pot is identical, and the file list is written with
file(GENERATE) so it only changes, and the .pot is only rebuilt, when
the sources do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Clementine 1.4.1-213​

Accept IPv4 localhost on a dual-stack network remote

With "only allow connections from the local network" on, the remote
refused 127.0.0.1: listening on Any is dual-stack, so the client
arrives as ::ffff:127.0.0.1, which none of the checked subnets covered.
QHostAddress::isLoopback() covers both forms.

IpIsPrivate becomes static and public so it can be tested.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Zaloguj lub Zarejestruj się aby zobaczyć!
 
Ostatnia edycja:

Camel1965

Bardzo aktywny
Zasłużony
Dołączył
8 Wrzesień 2010
Posty
56112
Reakcje/Polubienia
41084

Clementine 1.4.1-229​

Address the security review of remote streaming

From a static review of the streaming server. None of the findings was
remotely exploitable for code execution; these fix or mitigate the
denial-of-service and nuisance issues it found.

- Limits on media responses: 4 per renderer, of which 2 may be
pipelines, 32 in all, and 32 requests still being sent. Requests over
a limit get 429 or 503. A client that stops reading for 30 seconds is
disconnected.
- Responders share a StreamResponder base and belong to the
MediaHttpServer, so they're counted, and stopped when the server is,
such as when streaming is turned off.
- A renderer id can only be taken over from the same address, so
another device can't evict a renderer and receive SET_OUTPUT meant for
it. Ids and display names are length-limited.
- Renderer capabilities are bounded when converted from the protobuf:
at most 32 formats of 32 sample rates, out-of-range rates, channel
counts and bitrates dropped, and a format whose rates were all invalid
dropped rather than widened to any rate.
- The t= start position is parsed and clamped to the item's length
before it's converted to nanoseconds, so it can't overflow.
- An oversized request head is answered once.

New smoke tests cover the pipeline limit, clamped start positions, the
renderer id rule and the oversized head, and a unit test the bounds on
capabilities. The idle timeout was checked by hand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Zaloguj lub Zarejestruj się aby zobaczyć!
 
Do góry