On Thu, Nov 6, 2008 at 11:12 AM, Julien BLACHE <jb at jblache.org> wrote: > "m. allan noah" <kitno455 at gmail.com> wrote: > >> Please, describe for us how adding a new function to v2 backends is >> going to make it easier for v1 and v2 backends to be installed at the >> same time. > > Tweaks to dll are needed in both cases. Except in your case you're > again trying to take an easy route that will only end with more > problems.
Julien, I'm not trying to have an argument. I am trying to get input from the ecosystem, by having this brainstorming session in public. Please, dont tell me again to stop and think about it from your perspective, HELP me think about it from your perspective, because I am not you! We all seem to be in agreement that the addition of new status and frame types is an incompatible change to the API/ABI. The standard says: The SANE standard is expected to evolve over time. Whenever a change to the SANE standard is made that may render an existing frontend or backend incompatible with the new standard, the major version number must be increased. Thus, any frontend/backend pair is compatible provided the major version number of the SANE standard they implement is the same. A frontend may implement backwards compatiblity by allowing major numbers that are smaller than the expected major number (provided the frontend really can cope with the older version). In contrast, a backend always provides support for one and only one version of the standard. If a speci?c application does require that two different versions of the same backend are accessible at the same time, it is possible to do so by installing the two versions under different names. My biggest concerns are those raised by Olaf- how do the two versions coexist. I will bet you that the solution we come up with will be EXACTLY the same, whether we add your new function or not. So, i want to leave the sane_status question aside for just a moment, and discuss these big-picture issues. How do we structure our package such that sane 1.0.19 could be installed at the same time as the new sane, along with external backends of either version? allan -- "The truth is an offense, but not a sin"