Skip to content

Latest commit

 

History

History
167 lines (122 loc) · 4.79 KB

File metadata and controls

167 lines (122 loc) · 4.79 KB

projectM Debian Transition Notes

Current State

  • Debian version: 3.1.12-4
  • Upstream version: 4.1.6
  • SONAME: libprojectm3 -> libprojectm4

Key Changes in v4

  1. Complete API rewrite: C++ classes replaced with pure C API
  2. Frontends removed from main repo (jack, pulseaudio, sdl now separate)
  3. New dependency: projectm-eval library (MIT licensed)
  4. Build system: autotools -> CMake 3.21+
  5. Removed features: text overlay, built-in config, rating system
  6. Playlist: Now a separate optional library (libprojectm-playlist4)
  7. Presets: Now in separate repos, not bundled with library

Reverse Dependencies to Update

In Debian

Package Current Dep Notes
qmmp-plugin-projectm libprojectm3 >= 3.1.12 Needs update to v4 API

Removed from Debian (was in buster)

Package Notes
libvisual-projectm libvisual plugin - may need reintroduction

Not in Debian

Package Notes
kodi-visualization-projectm RFP #833763, in deb-multimedia.org

Current Debian Binaries (3.1.12)

  • libprojectm3 (shared library)
  • libprojectm-dev (headers)
  • projectm-data (presets)
  • projectm-jack (standalone app)
  • projectm-pulseaudio (standalone app)
  • projectm-sdl (standalone app)

Proposed v4 Binaries

From main projectm source:

  • libprojectm4 (shared library, new SONAME)
  • libprojectm-dev (headers, pure C API)
  • libprojectm-playlist4 (optional playlist management)
  • libprojectm-playlist-dev

Presets now need separate package(s):

  • projectm-presets (recommended, from presets-cream-of-the-crop repo)
  • projectm-presets-classic (optional, from presets-projectm-classic repo)

Frontends need separate packages (from separate upstream repos):

Prepared Packages

All packaging available at: https://github.com/projectM-visualizer/packaging-debian

1. projectm-eval (NEW - required first)

Location: projectm-eval-debian/ Version: 1.0.6 ITP: Filed 2026-01-09

Produces:

  • libprojectm-eval-dev (static library + headers)

Note: Upstream DESTDIR bug fixed in v1.0.6 (PR #17 merged).

2. projectm-presets (NEW)

Location: projectm-presets-debian/ Version: 0~20220213 ITP: Filed 2026-01-09

Produces:

  • projectm-presets (~9800 presets, replaces projectm-data)

3. projectm (v4 update)

Location: projectm-v4-debian/ Version: 4.1.6

Produces:

  • libprojectm4 (shared lib)
  • libprojectm-dev
  • libprojectm-playlist4
  • libprojectm-playlist-dev

4. projectm-frontend-sdl2 (NEW)

Location: projectm-frontend-sdl2-debian/ Version: 2.0.0 ITP: Filed 2026-01-09

Produces:

  • projectm-sdl (replaces projectm-pulseaudio, projectm-jack)

Note: Requires Poco >= 1.11.2 (available in Debian sid/testing).

Transition Process

  1. File ITP for projectm-eval (2026-01-09)
  2. File ITP for projectm-presets (2026-01-09)
  3. File ITP for projectm-frontend-sdl2 (2026-01-09)
  4. Package presets (projectm-presets from cream-of-the-crop)
  5. Package frontend applications (projectm-sdl from frontend-sdl2)
  6. Upload projectm-eval to unstable
  7. Upload projectm-presets to unstable
  8. Update projectm to v4 with new SONAME
  9. Upload projectm to experimental first (SONAME bump)
  10. File transition bug with release team (with ben file)
  11. Coordinate with qmmp maintainers for qmmp-plugin-projectm update
  12. Upload projectm-frontend-sdl2 to unstable
  13. Move projectm to unstable after rdeps updated

API Migration Notes

Header Changes

Old (3.x C++):

#include <libprojectM/projectM.hpp>
projectM pm(settings);
pm.projectM_initRenderToTexture();

New (4.x C):

#include <projectM-4/projectM.h>
projectm_handle pm = projectm_create();
projectm_set_preset_duration(pm, 30.0);
projectm_opengl_render_frame(pm);

Key API Differences

Feature 3.x 4.x
Interface C++ classes C functions
Settings projectM::Settings struct Getter/setter functions
Playlist Built-in Separate library
Text overlay Built-in Removed
Config file libprojectM handled Application handles

Contacts

Links