Skip to content

New include guard in seq_event.h breaks DSSI header #455

@cannam

Description

@cannam

Hello! I am one of the original authors of DSSI, a soft-synth API that was created about 20 years ago. It's not an active project, it was basically "done" by about 2011 but is still used in a number of applications.

The DSSI header dssi.h includes <alsa/seq_event.h> in order to pick up a structure for MIDI-like events.

I see that following a report of breakage in #431, a guard was added to seq_event.h in ea8972c to warn against including that header directly. This of course breaks for packagers using -Werror builds and the like.

The official fix seems to be to include the whole of <alsa/asoundlib.h>, and that is what packagers appear to be patching the DSSI header with currently (and I see it is also what the guard does itself after emitting the warning). Unfortunately from the perspective of DSSI as an API, that isn't really a fix at all because all we need is an event structure - there is no other dependency on ALSA as a library and there was never any intention to require linking with ALSA.

Probably the historical error was to use an ALSA header at all, and the best option for us might be to duplicate enough of the contents of seq_event.h locally to sever the dependency that way. But that would be a significant intervention at this point - I think it would be the first substantive change to dssi.h since 2004 so I am wary of the risks in terms of breaking other things.

I thought I should first check whether you can suggest a better approach, for example whether you might be open to making it possible (again) to make use of seq_event.h specifically without pulling in a dependency on everything else in ALSA.

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions