Comments (10)
Since v2.0.0 got released (with soname 2), this is now closeable also ?
from dumb.
If there is a new release I would like to update the package in Debian to use it. But this requires that the library follows the rules regarding its soname (library version). Right now the soname is set to 1.0 (for libdumb 0.9.3 we used 1.0.0 in Debian). This would imply that the library interface didn't change at all and in particular that programs using libdumb don't need to be recompiled for this update. Is that the case?
For more on updating the soname see https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
from dumb.
Right now the soname is set to 1.0 (for libdumb 0.9.3 we used 1.0.0 in Debian
If I remember correctly, there are some ABI-changes between 0.9.3 and 1.0.0 (I remember at least one added parameter).
And I also got concerned, when #36 was merged and saw that Debian used libdumb1 and not libdumb0. What would be a solution? Call the next version 2.0.0 to keep binary compatibility? Alternatively one could have a look into what has changed exactly and whether it is possible to write wrappers.
from dumb.
Debian used libdumb1 and not libdumb1? Did you make a typo?
There is no need to write wrappers or anything, just to choose a correct library version for every release. This is important because distributions decide based on the soname if they need to rebuild other software which uses the library.
How to choose the library version is described in the link I posted above. Given that the source code changed, it should be either 1:1:0, 1:1:1 or 2:0:0 depending on how the interface changed.
from dumb.
I did make a typo (and corrected it). I was thinking about cross-distro-compatibility, but I guess that ship has sailed.
from dumb.
Ah, maybe in the past distributions picked their own sonames because the dumb developers didn't do it. If we have to rebuild it would be nice if the official soname could be 2 to avoid a conflict in Debian.
from dumb.
@tobihan Yep. Sorry for not bringing my point across clearly. :-)
from dumb.
A 2:0:0 would be best for the changes I've made to the filesystem API implemented in the library, as it now supports full seeking, so implementations will need to keep that in mind. It really simplified things in some of the format parsers. Especially MOD, which originally implemented a buffering reader just to skip ahead to the signature bytes, then used the buffer to re-read the header data.
from dumb.
The question that needs to be answered to decide about the new soname is whether binaries compiled against libdumb 0.9.3 work with the current libdumb 1.x without being recompiled. Whether or not there are new features that implementations may use is only of interest to decide between 1:1:0 and 1:1:1 if the ABI stayed compatible. But I guess it may be safer to go with 2:0:0 and recompile after this much time and many changes.
from dumb.
Recompilation is necessary, unless the code doesn’t touch the file interfaces, such as by registering the stdio system and using the “load” API instead of supplying your own filesystem or using the supplied readers manually with the typed “read” API.
from dumb.
Related Issues (20)
- Clean all whitespace HOT 5
- 0.9.3 -> 2.0 transition and 2.0 API shortcomings: document these HOT 2
- Can't Use DUMB_OFF_T_CUSTOM to Fix Static Assertion On 32-Bit System HOT 7
- Won't Compile with MinGW32 HOT 6
- Resamplers Crash When SSE Enabled (MinGW) HOT 7
- PSM Playback Has Garbled Sound HOT 1
- Compilation error with custom Allegro 4 include dir HOT 7
- aldumb missing HOT 11
- Ode to Protracker, 20sec, volume HOT 3
- libaldmb: Crashes with games that are using packfiles HOT 8
- Consider versioned dumb variants HOT 1
- Dumb can't open the UMX files included in the Unreal Beta of 1998 HOT 1
- Duplicate filenames on the playlist HOT 9
- Feature request: allow client code to programmatically set the next pattern. HOT 2
- Reads past end of file with DUMB_MOD_RESTRICT_OLD_PATTERN_COUNT HOT 3
- fb2k crashes while playing "ASIKWUSpulse - Shrubbing.s3m" HOT 2
- Support Standalone MIDI
- Seeking HOT 1
- allegro-5.2.5.0 HOT 1
- build fail HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dumb.