On 03/10/2016 02:16 PM, Stephen Gallagher wrote:
> On 03/10/2016 12:25 PM, Tom Hughes wrote:
>> On 10/03/16 16:20, Stephen Gallagher wrote:
>>
>>> I've just pushed a new update to the repository that also includes Node.js 
>>> 5.8.0
>>> (released yesterday). Of course, since the minor version jumped, binary 
>>> packages
>>> may need a rebuild.
>>>
>>> If we're going to look into supporting the rapidly-updating 5.x branch in 
>>> F25, I
>>> wonder if we should modify the automatic dependency-generation to do:
>>> Requires: nodejs(abi) >= %{abi_major}.%{abi_minor}
>>> Conflicts: nodejs(abi) >= %{abi_major+1}
>>>
>>> Of course, I have no idea how this automatic dependency is created, so I 
>>> don't
>>> know how complicated it will be to fix. But I think we have to, since 5.x 
>>> seems
>>> to bump minor versions at least once every couple months. Assuming it's 
>>> properly
>>> following semantic versioning, the rebuild shouldn't actually be needed 
>>> unless
>>> we bump the major version.
>>
>> Oh it's easy to do - the nodejs spec file creates nodejs_native.req in the
>> %install section with those rules.
>>
>> Why makes the second conflicts though? Why not:
>>
>> Requires: nodejs(abi) >= %{abi_major}.%{abi_minor}
>> Requires: nodejs(abi) < %{abi_major+1}
>>
>> Which is what the dependency generator would do for a caret dependency on a 
>> node
>> module.
>>
> 
> After some discussion on #fedora-devel, we opted to change the virtual 
> Provides: to
> Provides: nodejs(abi%{nodejs_major}) = %{nodejs_major}.%{nodejs_minor}
> 
> and then the binary packages will get
> Requires: nodejs(abi%{nodejs_major}) >= %{nodejs_major}.%{nodejs_minor}
> 
> (or, without the variables:)
> 
> Provides: nodejs(abi5) = 5.8
> Requires: nodejs(abi5) >= 5.8
> 
> 
> The advantage this gives us is that if Node.js ever decides to offer two ABI
> versions together (such as if they have a total rewrite and thus opt to keep 
> the
> old version around for a transition period), we'd be able to have
> Provides: nodejs(abiX) = X.Y
> and
> Provides: nodejs(abiX+1) = X+1.Z
> 
> 
> This is now building in my COPR for 5.8. After this, we won't need to *force* 
> a
> rebuild of a package unless the major Node version changes again.
> 


Hmm, I'm not sure why this never got build, because I definitely submitted it.
Anyway, I just started a build for 5.9.0 in my COPR, which includes this
improved ABI check. Once we do a single rebuild against these new packages, it
should work.

I'm planning to push the latest Node.js 5.x version to Fedora 25/Rawhide
sometime next week, unless there is strong opposition. I'll announce it on
Fedora devel-announce as well.


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
nodejs mailing list
nodejs@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/nodejs@lists.fedoraproject.org

Reply via email to