[Speex-dev] speexdsp versioning

Tanu Kaskinen tanuk at iki.fi
Mon Jul 13 13:06:29 UTC 2015

On Fri, 2015-07-10 at 03:32 +0930, Ron wrote:
> On Thu, Jul 09, 2015 at 12:23:17PM +0300, Tanu Kaskinen wrote:
> > I made a patch for alsa-plugins, so that
> > it includes speexdsp_types.h instead. I also bumped the speexdsp 
> > version
> > check from "1.2" to "1.2rc2" in configure.ac, since 
> > speexdsp_types.h
> > didn't exist in versions prior to 1.2rc2.
> > 
> > The version bump will break, however, if speexdsp 1.2 will ever get
> > released, because I think that pkg-config considers "1.2" to be 
> > less
> > than "1.2rc2" (I didn't actually verify that, but considering that
> > pkg-config thinks that "1.2rc2" >= "1.2", it's pretty likely that 
> > "1.2"
> > < "1.2rc2" in pkg-config's mind).
> This is just one of the reasons why things like this should be 
> testing
> for _features_ not for versions :)

OK. FYI, my patch was merged in alsa-plugins, but the maintainer added
another patch that checks whether speexdsp_types.h exists, and if not,
speex_types.h gets used instead. So alsa-plugins is now compatible with
both old and new speex versions.

> Though possibly the more interesting question is why alsa-plugins is
> including speex_types.h directly at all?  It should really only need
> that if it's including some other speex header - in which case it
> should already be getting included by that header anyway ...

After I sent my mail, I wondered about that question myself too. I
realized that PulseAudio and alsa-plugins use pretty much the same
feature set from speexdsp, but PulseAudio doesn't include
speexdsp_types.h directly. I'll look into this at some point - probably
there's no real need to include speexdsp_types.h directly in alsa
-plugins either.

> > As a solution, I propose that if a non-rc releases of speexdsp will
> > still be made, the 1.2 version number will be skipped, and 1.3 will 
> > be
> > used instead.
> In Debian with deal with this with version numbers like 1.2~rc1, 
> where
> '~' sorts before anything else in the collating order -- but I don't
> recall if pkg-config ever adopted that too.  (some people who worked
> on it certainly know about it).

Unfortunately, even if pkg-config supports the '~' syntax, it's too
late to benefit from that now that .pc files with "1.2rc1" and "1.2rc2"
in them are already in the wild.


More information about the Speex-dev mailing list