Maybe I do not understand libraries
I thought that a library / shared object / dll was a small program that did a prescribed thing, like a black box - put xyz in, get lmnop out. Maybe you put in a Swahili word, can expect to receive a Tagalog word out the other end.
Within major versions they are supposed to be the same . If you have a library swahili-tagalog 1.1, and come out with an improved version 1.1a then it should do exactly the same thing but maybe with better spelling. So you should be able to replace 1.1 with 1.1a directly, is that not correct ?
Then if the people making this library make some major changes, then they name it 1.2 and any program using the library will have to be re-jiggered and rebuilt to use the new inputs and outputs. That makes sense.
But as far as I can see, within a major version, there is no reason for all this 1.1a, 1.1b, 1.1c, 1.1-2015-13a and so on crap. Why do we have all this junk ? Why does not a new and improved version of 1.1 just overwrite the old one ?
I can see 'why not' for a developer but for a user, this seems to just create excessive complexity. BRM thought that excessive complexity was fine as long as each part was equal to the task, but they proved themselves wrong. Several times.
I ask this because diegel's latest dist of libpng 1.2.52 mentions that he blanks out the versions_type in libtool to build the library. My first question was, why ? But the second question is now, why not ? Why not all the time ? Why do I even have applications looking for libfoozis.so.1.3.4.12.006a.19 ? Oh noes ! You only have libfoozis.so.1.3.4.12.006a.123f ! We can't use that !
This is wrong. Why not go into libtool for every library and set version_type to "none" ?
Within major versions they are supposed to be the same . If you have a library swahili-tagalog 1.1, and come out with an improved version 1.1a then it should do exactly the same thing but maybe with better spelling. So you should be able to replace 1.1 with 1.1a directly, is that not correct ?
Then if the people making this library make some major changes, then they name it 1.2 and any program using the library will have to be re-jiggered and rebuilt to use the new inputs and outputs. That makes sense.
But as far as I can see, within a major version, there is no reason for all this 1.1a, 1.1b, 1.1c, 1.1-2015-13a and so on crap. Why do we have all this junk ? Why does not a new and improved version of 1.1 just overwrite the old one ?
I can see 'why not' for a developer but for a user, this seems to just create excessive complexity. BRM thought that excessive complexity was fine as long as each part was equal to the task, but they proved themselves wrong. Several times.
I ask this because diegel's latest dist of libpng 1.2.52 mentions that he blanks out the versions_type in libtool to build the library. My first question was, why ? But the second question is now, why not ? Why not all the time ? Why do I even have applications looking for libfoozis.so.1.3.4.12.006a.19 ? Oh noes ! You only have libfoozis.so.1.3.4.12.006a.123f ! We can't use that !
This is wrong. Why not go into libtool for every library and set version_type to "none" ?
Juliet ! the dice were loaded from the start ...