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.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
nodejs mailing list
[email protected]
http://lists.fedoraproject.org/admin/lists/[email protected]

Reply via email to