Looking at this, I think the easiest way would be to generate the final digit in the dependency clause from a separate file, say, LAST_ABI_ADDITION_MICRO.
So, if we release 1.0.6, but there were no ABI additions from 1.0.5 to 1.0.6, we would have VERSION containing "1.0.6", and LAST_ABI_ADDITION_MICRO containing "5". This then would generate
Looking at this, I think the easiest way would be to generate the final digit in the dependency clause from a separate file, say, LAST_ABI_ ADDITION_ MICRO.
So, if we release 1.0.6, but there were no ABI additions from 1.0.5 to 1.0.6, we would have VERSION containing "1.0.6", and LAST_ABI_ ADDITION_ MICRO containing "5". This then would generate
$ cat libunity- scopes- 1.0.shlibs
libunity-scopes 1.0 libunity-scopes1.0 (>= 1.0.5)
even though the package version is 1.0.6.
We will have to remember to update the LAST_ABI_ ADDITION_ MICRO file if we add anything new to the public API.
Opinions?
Longer term, we may still be able to come up with something that leverages abigail, but I'd prefer to have a fix for this now rather than later.