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.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ nodejs mailing list [email protected] http://lists.fedoraproject.org/admin/lists/[email protected]
