----- Original Message ----- > On Thu, Dec 20, 2012 at 04:40:17PM +0100, Vít Ondruch wrote: > > Dne 20.12.2012 15:46, Rex Dieter napsal(a): > > >On 12/20/2012 02:40 AM, Vít Ondruch wrote: > > >>Dne 20.12.2012 01:43, Garrett Holmstrom napsal(a): > > >>>On 2012-12-19 5:12, Bill Nottingham wrote: > > >>>>Vít Ondruch (vondruch@xxxxxxxxxx) said: > > >>>>>Can somebody enlighten me, what is the purpose of ruby(abi) > > >>>>>(replace > > >>>>>by python(abi) if you wish) virtual provide? Especially, why > > >>>>>Ruby > > >>>>>packaging guidelines mandate "Requires: ruby(abi) = 1.9.1", > > >>>>>i.e. > > >>>>>versioned require? And why in Python packages, python(abi) is > > >>>>>automatically generated? > > >>>> > > >>>>In the python case, it's because that python extension modules > > >>>>install in a version-specific directory ($libdir/python2.7, for > > >>>>example.) > > >>>>This makes them explicitly tied to that version of python. > > >>> > > >>>There's also the fact that the ABI for the bytecode that gets > > >>>generated at build time is specific to each x.y series of python > > >>>releases. > > >> > > >>For that, you could have "Require: python-libs = 2.7" instead. > > > > > >What's the practical difference? > > > > You follow general practices? You don't have to think if > > {ruby,python}(abi) makes any sense for {JRuby,Jython} and what > > version it should provide in comparison to {ruby,python}. You don't > > force people to ask why Ruby 1.9.3 has ruby(abi) = 1.9.1. You don't > > have to answer such question as what is {ruby,python}(abi) good > > for? > > > I don't think I follow your reasoning here: > > 1) If there is no python(abi) and no automatic dependency checking, > then the > packager assumes the burden of adding Requires: python-libs = VERSION > in all > of their packages. They also assume the responsibility of figuring > out what > VERSION needs to be. This is creating more work that should be done > centrally. > > 2) If there is no python(abi) but the automatic dep checking creates > the > Provides and Requires on python-libs = VERSION, then there doesn't > seem to be > any difference in terms of the work done. Someone who maintains the > central > dep checking still has to figure out what VERSION should be in either > case. > (And, assuming that your question about Ruby 1.9.3 having ruby(abi) = > 1.9.1 > was more than hypothetical, it sounds like there might just be a lack > of > someone performing this duty for Ruby). > > -Toshio I think that one of the questions here is "why 'abi' and not something else?" We currently enforce every Ruby package to have "Requires: ruby(abi)", but JRuby doesn't in fact provide any ABI (I don't think the Java API can be called ABI). Therefore it doesn't make sense for the pure-Ruby packages to require ruby(abi). It'd be better to have something that would explain that all they need is _anything_ that can interpret Ruby, e.g. "ruby(interpreter)". Packages requiring ruby(abi) should IMHO be only these that have C extension or are otherwise bound to cRuby. Similarly, JRuby-only packages should depend on jruby (or its virtual provide, if we choose to create one). -- Regards, Bohuslav "Slavek" Kabrda. -- packaging mailing list packaging@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/packaging