Learn more about these different git repos.
Other Git URLs
Many of the nodejs-packages fail on ppc builders, when building for epel7.
As I understand the exclusivearch directive should prevent the packages from being built on not-supported platforms: https://lists.fedoraproject.org/archives/list/nodejs%40lists.fedoraproject.org/thread/E6L65XQ6KIMKRHZIQAHUZTFCD5HSUOYR/
The packges have: BuildArch: noarch ExclusiveArch: %{nodejs_arches} noarch The macro is available on epel7
This only happens on the epel7 branch, Fedora and el6 branches don't have this issue, this issues started occuring since the new ppcle architecture has been added.
Example of failure: http://koji.fedoraproject.org/koji/taskinfo?taskID=12513190 Same package succeeds: http://koji.fedoraproject.org/koji/taskinfo?taskID=12513317
The issue is
ExclusiveArch: %{nodejs_arches} noarch
by adding noarch to the end of the statement it basically overrides %{nodejs_arches} to say build it on what ever builders are available. An ExclusiveArch should only ever reference explicit arches that it's meant to support, noarch isn't really relevant in this case, if it's noarch the ExclusiveArch should be dropped.
To further Peter's comment noarch means any arch as it comes to building.
So the nodejs package guidelines are incorrect? https://fedoraproject.org/wiki/Packaging:Node.js?rd=Node.js/Packagers#ExclusiveArch
also note there's plans to add noejs4 to EPEL which supports PPC arches, which would also deal with this, but it actually a packaging bug and hence would re-appear if we ever add a new architecture to EPEL that doesn't support nodejs (such as s390)
But to be clear, the package guidelines are incorrect?
If yes, I will request a change to the guidelines and we will have to update all nodejs modules.
The packaging guidelines are incorrect yes
The current scheme (with noarch added) was adopted precisely because the noarch packages didn't build properly otherwise. Some relevant lists posts from back then:
https://lists.fedoraproject.org/pipermail/nodejs/2013-May/000025.html
and:
https://lists.fedoraproject.org/pipermail/epel-devel/2013-May/008482.html
https://lists.fedoraproject.org/pipermail/epel-devel/2013-May/008483.html
the posts you reference a problem definitions, there's no detail in the referenced posts of an agreed solution and the ultimate agreed solution to the problem which added (if it's there) the solution to the packaging guidelines (I've read all the threads, just the explicit linked emails)
I'm also wondering why is this only failing on epel7 and not on Fedora (or el6). Fedora also has PPC builders?
primary fedora all arches have nodejs support. for epel6 it is likely a problem also
I never have seen this issue on el6.
epel7 also worked fine until the new ppc builders were added in November/December 2015.
If noarch is removed from ExclusiveArch I can still reproduce the fedpkg local issue reported before:
{{{ fedpkg local error: Architecture is not included: noarch }}}
on EL7. The error message is coming from the rpmbuild command. Wouldn't this occur on the builders as well?
https://fedoraproject.org/wiki/Packaging:Guidelines#Noarch_with_unported_dependencies
It seems the only supported method is ExcludeArch or making the package arch specific. So it does appear that the nodejs guidelines are incorrect.
Replying to [comment:11 piotrp]:
I never have seen this issue on el6. epel7 also worked fine until the new ppc builders were added in November/December 2015.
But Fedora has PPC builders right, and it works there?
I've done some digging now and https://lists.fedoraproject.org/pipermail/nodejs/2013-June/000039.html is the message where the current scheme was first documented, apparently based on offline discussion with a bunch of experts.
Yes, Fedora has PPC builders, none of nodejs is currently built on those builders. That will change in the next couple of days once nodejs 4 lands, it's not supported in the prior 0.10 release on PPC
Replying to [comment:17 pbrobinson]:
But Fedora has PPC builders right, and it works there? Yes, Fedora has PPC builders, none of nodejs is currently built on those builders. That will change in the next couple of days once nodejs 4 lands, it's not supported in the prior 0.10 release on PPC It does not get built on Fedora PPC builders, but it does get built (and fails) on EPEL 7 PPC builders.
Yes, Fedora has PPC builders, none of nodejs is currently built on those builders. That will change in the next couple of days once nodejs 4 lands, it's not supported in the prior 0.10 release on PPC It does not get built on Fedora PPC builders, but it does get built (and fails) on EPEL 7 PPC builders.
Why is it trying to build it on EPEL 7 PPC builders and not Fedora PPC builders?
The Fedora PPC builders are running on a separate standalone koji instance
Replying to [comment:14 orion]:
https://fedoraproject.org/wiki/Packaging:Guidelines#Noarch_with_unported_dependencies It seems the only supported method is ExcludeArch or making the package arch specific. So it does appear that the nodejs guidelines are incorrect.
I've read this again and think I get it. The nodejs packages which don't have tests enabled can be built on any platform. But if the tests are enabled it requires npm(engine) which is only available on specifice %nodejs_arches
So packages without tests: {{{ BuildArch: noarch ExclusiveArch: %{nodejs_arches} noarch }}} with tests: {{{ BuildArch: noarch ExclusiveArch: %{nodejs_arches} }}}
Correct or am I missing something?
Replying to [comment:20 piotrp]:
I've read this again and think I get it. The nodejs packages which don't have tests enabled can be built on any platform. But if the tests are enabled it requires npm(engine) which is only available on specifice %nodejs_arches So packages without tests: {{{ BuildArch: noarch ExclusiveArch: %{nodejs_arches} noarch }}} with tests: {{{ BuildArch: noarch ExclusiveArch: %{nodejs_arches} }}} Correct or am I missing something?
No I don't think you are.
Firstly, it's not just tests, it would be anything which runs node, so if the build step runs uglify or something then that would be an issue.
Secondly, if the arch really doesn't matter because node is never run, then you can get rid of the ExclusiveArch altogether.
As I understand it the idea is that the "noarch" has to be in ExclusiveArch because some tools expect to see the BuildArch there, but for that when koji checks if a builder can be used it always matches the real arch of the builder against the ExclusiveArch list even if there is a BuildArch set in the package.
At least I believe that was the intention.
As such a PPC builder wouldn't be used because it's not listed in ExclusiveArch.
Replying to [comment:21 tomh]:
Replying to [comment:20 piotrp]: I've read this again and think I get it. The nodejs packages which don't have tests enabled can be built on any platform. But if the tests are enabled it requires npm(engine) which is only available on specifice %nodejs_arches So packages without tests: {{{ BuildArch: noarch ExclusiveArch: %{nodejs_arches} noarch }}} with tests: {{{ BuildArch: noarch ExclusiveArch: %{nodejs_arches} }}} Correct or am I missing something? No I don't think you are. Firstly, it's not just tests, it would be anything which runs node, so if the build step runs uglify or something then that would be an issue.
clear
ok
Aren't this then bugs in those tools and need to be fixed there?
At least I believe that was the intention. As such a PPC builder wouldn't be used because it's not listed in ExclusiveArch.
Replying to [comment:22 piotrp]:
Replying to [comment:21 tomh]: As I understand it the idea is that the "noarch" has to be in ExclusiveArch because some tools expect to see the BuildArch there, but for that when koji checks if a builder can be used it always matches the real arch of the builder against the ExclusiveArch list even if there is a BuildArch set in the package. Aren't this then bugs in those tools and need to be fixed there?
Perhaps. I've filed http://rpm.org/ticket/901
Progress on the rpm front allowing noarch with ExclusiveArch, see https://bugzilla.redhat.com/show_bug.cgi?id=1298668
Still need koji support, see: https://fedorahosted.org/koji/ticket/327
Login to comment on this ticket.