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 nodejs@lists.fedoraproject.org http://lists.fedoraproject.org/admin/lists/nodejs@lists.fedoraproject.org