New include guard in seq_event.h breaks DSSI header

alsa-project/alsa-lib issue #455 was edited from cannam:
Hello! I am one of the original authors of [DSSI](https://dssi.sourceforge.net/), 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!
Issue URL : https://github.com/alsa-project/alsa-lib/issues/455 Repository URL: https://github.com/alsa-project/alsa-lib
participants (1)
-
GitHub issues - edited