Skip to content

projectM: introduce v4 as a library package. Dependent player updates. - #61976

Open
JkktBkkt wants to merge 5 commits into
void-linux:masterfrom
JkktBkkt:fooyin
Open

projectM: introduce v4 as a library package. Dependent player updates.#61976
JkktBkkt wants to merge 5 commits into
void-linux:masterfrom
JkktBkkt:fooyin

Conversation

@JkktBkkt

@JkktBkkt JkktBkkt commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Testing the changes

  • I tested the changes in this PR:
    • YES: fooyin and libprojectM (v4).
    • briefly: qmmp, clementine, projectM (v3) standalone GUI.

New package

projectM rebuilt to use the default path of presets.
v3 still has shared objects and statically linked builds of presets there, v4 doesn't need those.
Currently both qmmp and clementine hardcode preset path in /usr/share (which is the default in v4 and one that should be used for non-executable preset files)

qmmp patch, srcpkgs/qmmp/patches/fix-projectM-4.patch is a combination of upstream changes:
https://sourceforge.net/p/qmmp-dev/code/13211/
https://sourceforge.net/p/qmmp-dev/code/13212/
https://sourceforge.net/p/qmmp-dev/code/13213/

Details

SourceForge doesn't show changes to the file when it was detected as a rename.
I had to manually diff those two in src/plugins/Visual/projectm/ :

  • projectm4widget.cpp -> projectm4window.cpp
  • projectm4widget.h -> projectm4window.h

and then manually forge the patch file to make patch automatically rename with changes

Local build testing

  • I built this PR locally for my native architecture, x86_64
  • I built this PR locally for these architectures, * marks cross.
  • x86_64-musl
  • i686
  • armv6l *
  • amrv6l-musl *
  • armv7l *
  • armv7l-musl *
  • aarch64 *
  • aarch64-musl *

[ci skip]

@JkktBkkt

JkktBkkt commented Aug 11, 2026

Copy link
Copy Markdown
Contributor Author

rebase ^ for clementine bump
v for ci skip. All were green before protobuf update, no breakage expected, but I'll rebuild locally.
edit: rebuilt successfully for all architectures.

@JkktBkkt

This comment was marked as resolved.

@Duncaen

Duncaen commented Aug 13, 2026

Copy link
Copy Markdown
Member

Do we really need two versions of this library?

@JkktBkkt

Copy link
Copy Markdown
Contributor Author

I'd say it is a worthy stepping stone.
V3 is kept as standalone GUI application and for already-distributed presets.

In V4 the standalone GUI has been split off into a different project (presets are distributed separately as well), which is why @abenson withheld from updating it thus far, it'd be a loss of functionality:
It's useful as it can capture audio from any application (limited to alsa/pulse/jack APIs) instead of only what's in a player with it's own integration.

Developer stated that they intend to finish another update to the library part and then switch to working on the standalone Qt frontend, which doesn't have a release that includes 5747c37 or newer commits which are necessary to use this frontend with projectM v4 and/or pipewire and/or wayland.
The alternative, SDL frontend is pre-release

This release is not meant for production use, and should not be added to any package manager such as any Linux distribution, Homebrew or vcpkg.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants