#6329: [epel7] package builds fail on ppc --------------------+------------------------ Reporter: piotrp | Owner: rel-eng@… Type: task | Status: new Milestone: | Component: epel Keywords: | Blocked By: Blocking: | --------------------+------------------------ 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.o...
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
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+----------------------- Changes (by pbrobinson):
* resolution: => invalid * status: new => closed
Comment:
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.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by ausil):
To further Peter's comment noarch means any arch as it comes to building.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by piotrp):
So the nodejs package guidelines are incorrect? https://fedoraproject.org/wiki/Packaging:Node.js?rd=Node.js/Packagers#Exclus...
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by pbrobinson):
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)
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by piotrp):
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.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by ausil):
The pac kaging guidelines are incorrect yes
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by tomh):
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
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by pbrobinson):
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)
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by piotrp):
I'm also wondering why is this only failing on epel7 and not on Fedora (or el6). Fedora also has PPC builders?
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by ausil):
primary fedora all arches have nodejs support. for epel6 it is likely a problem also
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by piotrp):
I never have seen this issue on el6.
epel7 also worked fine until the new ppc builders were added in November/December 2015.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by orion):
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?
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+----------------------- Changes (by orion):
* cc: orion (added)
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by orion):
https://fedoraproject.org/wiki/Packaging:Guidelines#Noarch_with_unported_dep...
It seems the only supported method is ExcludeArch or making the package arch specific. So it does appear that the nodejs guidelines are incorrect.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by tomh):
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?
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by tomh):
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.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by 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
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by piotrp):
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.
Why is it trying to build it on EPEL 7 PPC builders and not Fedora PPC builders?
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by pbrobinson):
The Fedora PPC builders are running on a separate standalone koji instance
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by piotrp):
Replying to [comment:14 orion]:
https://fedoraproject.org/wiki/Packaging:Guidelines#Noarch_with_unported_dep...
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?
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by 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.
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.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by piotrp):
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
Secondly, if the arch really doesn't matter because node is never run,
then you can get rid of the ExclusiveArch altogether.
ok
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?
At least I believe that was the intention.
As such a PPC builder wouldn't be used because it's not listed in
ExclusiveArch.
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by orion):
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
#6329: [epel7] package builds fail on ppc ----------------------+----------------------- Reporter: piotrp | Owner: rel-eng@… Type: task | Status: closed Milestone: | Component: epel Resolution: invalid | Keywords: Blocked By: | Blocking: ----------------------+-----------------------
Comment (by orion):
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
rel-eng@lists.fedoraproject.org