-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ppc64le support #43
Comments
cc @seth-priya |
@Fryguy I am looking at this. I was able to build this image for Power using Post that, I did run into the utf_ext gem issue while building manageiq-pods using I did not run into the "wmi" issue, however I am hitting the python2 issue in the manageiq-ui build during installation of node-sass. I have tried a couple of ways to install and specify a dependency on python2, however seems that python3 is in the PATH and taking precedence. Just for reference, at a high level, I have the following changes so far in the Dockerfile Installing qpid-proton-c as
Pre-installing the sassc and unf_ext gems with the required options for ppc64le
and I had to comment this out in the manageiq-pods build file to force it to pick my locally built rpm_build image
|
This is the error I am looking at currently gyp verb check python checking for Python executable "/usr/bin/python3" in the PATH |
@seth-priya you will see the wmi error at install time (rpms won't install due to missing dependency) - you can either build wmi rpm for power, or comment out As for node-sass, I'm surprised adding python2 doesn't work as that's how it was done before. Will check if version is different and if that's causing this new issue... If you don't add python2, do you see |
@bdunne Maybe we can take the Fedora qpid-proton ppc64le build and put into our yum repo? The qpid-proton package includes multiple RPMs, but what we require are: qpid-proton-c and qpid-proton-c-devel https://koji.fedoraproject.org/koji/buildinfo?buildID=1479891 |
thanks @simaishi I will comment out wmi for Power for now at least to see if everything else works, in any case, I think that is what we had done last time as well. No, it is not complaining for missing python2, but trying to use python3 and failing with a syntax error maybe the default is python3 and so python2 install is not taking effect and maybe some kind of an override is needed? |
@simaishi I have also posted the build instructions for qpid-proton here in case they are needed https://github.com/ppc64le/build-scripts/tree/master/qpid-proton, but yes, the RPM should suffice. |
@himdel Is there any plan to switch over to dart sass in Service UI? |
@simaishi Not easily. Currently used version of style-loader doesn't support dart-sass, while the current version of style-loader won't support includePaths, which SUI uses, and won't work with older css-loader. And newer css loader breaks for unclear reasons in SUI (likely too old webpack). (So, not as easy as ui-classic.) So, this would essentially involve redoing how SUI does builds and css. Cc @gtanzillo any info about the future of SUI? It has been (mostly) unmaintained for years, pending a decision on whether to rewrite SUI in react, integrate into ops UI, or deprecate. Sounds like it would be relevant. |
How about setting |
Yup, that should work for now. (As long as the machine has python2 installed.) |
thanks @simaishi @himdel I am able to build all the images except the manageiq operator (need to install operator-sdk), though it is option 2 in https://github.com/nodejs/node-gyp#configuring-python-dependency that finally worked for me, I have the manageiq-ui-service build failure scenario replicated in a separate container with python3 and will dig more into why option 4 is not working docker images | grep manageiq Just for reference, this is the change I made
I did not run into any other build issues |
Updated the issue description based on @seth-priya's testing. I didn't add commenting out |
@simaishi I am running into an issue in building the operator image, do you know if there a dependency on a specific operator sdk version? go: github.com/operator-framework/[email protected] requires |
We're using 0.15.2 on the build machine, but not sure what version works (or doesn't work) for other versions. I've seen that error before, but I don't recall what was causing it...
|
Done. |
ok, so version of git (being old) was the issue, the operator image builds successfully and confirmed that no changes needed for qpid-proton-c and qpid-proton-c-devel in the Dockerfile now, so these are the three things I have now 1- wmi for ppc64le missing in default repos (can be skipped for now) to get a successful build, validating the changes now |
@seth-priya can you provide a link to your modifications to the Dockerfile to implement this? |
or create a WIP PR with the changes? (so we can iterate on it and merge into upstream?) |
@sethpeterson @Fryguy I hit a run time issue trying to get manageiq up, am debugging that to see if I can get it resolved quickly and include in PR /var/www/miq/vmdb / |
but this is what I have at this point |
Though all the images were created successfully. found a few errors in the build logs for manageiq-base python modules (notice that the build proceeds despite the error) , these errors seem to be all related to the cryptography module and an attempt to build it is being made on ppc64le, which in turn requires the following additional packages
Post this build for PyNaCl was failing as it was unable to find "make". Another build is in progress … I am still looking at the runtime ffi / gem issue above (not sure if it is related to the build ERRORS) but is this line in rpm_spec/manageiq.spec.in intentionally removing it @simaishi %{__rm} -rf %{buildroot}/%{gemset_root}/gems/ffi-*/ext |
Yes, that's intentionally being removed as we don't need "ext" directory once gem is installed and that particular one was causing rpm build failure. Are you able to share more logs than what you've pasted for ffi/gem issue? Since the log is trimmed, I can't see where the error is happening. |
@simaishi I was able to resolve the errors, the ppc64le specific installation / fix for unf_ext was not placed correctly in my earlier changes. The python issues are resolved as well, but those needed additional dependencies to be installed in the manageiq-pods/images/manageiq-base/Dockerfile, I am trying to see if there is a better way to fix that one, but I am going ahead and raising a PR for this repo. The manageiq image and service is coming up correctly at my end now 56870e1f1d24 manageiq/manageiq:latest "/usr/bin/dumb-init …" About an hour ago Up About an hour 3000/tcp, 0.0.0.0:8443->443/tcp |
ManageIQ/manageiq-pods#585 WIP PR for manageiq-pods |
Since the extra packages are needed only to install python modules, I'm thinking it's more appropriate to install them conditionally (only for ppc64le) in https://github.com/ManageIQ/manageiq-appliance-build/blob/master/kickstarts/partials/post/python_modules.ks.erb. That's the file manageiq-base build uses and already has some packages needed for x86_64. I think you'll run into the same issue if you try to build pcc64le appliance, so adding the packages there will help appliance build as well. |
thanks @simaishi yes, will do that and also I think that all these may not be required, for most part the problem can be resolved by installing the python3-cryptography package from the distro, but I will confirm |
Copying over the discussion comments from the above PR here for further discussion @simaishi needed a bit of help to understand how can I test out this change in manageiq-appliance-build, I have not had to look at the appliance repositories before so just trying to figure out how this fits in , thanks in advance! Since you really just need to test this particular change, I think the easiest way would be: |
So @simaishi I tried the above, the kickstart files are generated but they have references to x86_64 repos, am I missing something? cat base-libvirt.ks build time repos - these repos are used to install the initial packages |
the ^^ is for the stalk https://github.com/ManageIQ/manageiq-appliance-build repo |
@seth-priya Oh yeah... no one ever needed to build appliance for ppc64le, so If you don't really care about building appliances for other reasons than testing for python modules and If there are more changes needed to get this working, we can probably skip testing in appliance for now. |
yes, thanks @simaishi for your inputs, so as far as I understand the podified version is more important for ppc64le for now, @sethpeterson and @Fryguy may want to add there thoughts here... and if so would you suggest that I keep the installation of the additional Python dependencies in manageiq-pods (but making that change Power specific)? |
No, either way, I think it's better to put the dependencies into manageiq-appliance-build. It's just we can't test it for appliance build, but we can't build ppc64 appliances as is anyway. |
thanks @simaishi , so I guess, its possible to still test the change in the manageiq-appliance-build file even by just re-building the podified version? I am trying to track that part of the code to see how .. BTW, I do observe that the build goes thru even without these additional dependencies (mainly cryptography) installed and all the images are built and I am able to get the manageiq image up as well, but I am guessing, there will be some impact somewhere of this Detailed logs attached ^^ |
and I do see that python3-cryptography is being installed successfully in the manageiq-base build logs (attached above), before the cryptography install failure, so unless there is some hard dependency on cryptography==2.6.1 (installed later), we might just be good? |
but yes the installation of the python modules is being aborted, so that will need to be addressed ... |
@seth-priya The installation of python modules are not required to run manageiq app, but it's required for some ansible playbooks. I don't know the exact requirement of the python packages and their versions as what we specify in the python_modules.ks.erb is a known working set taken from somewhere else. The podified build will take python_modules.ks.erb from manageiq-appliance-build repo, so running podified buid is how it can be tested for now. The yum repos used are slightly different between podified and appliance builds, but I doubt that matters for this particular part. In manageiq-base/Dockerfile, you can replace
with
to test out your changes. Once you have a working copy, that can be put into manageiq-appliance-build repo. The podified build not aborting on error is a separate bug and I will take a look. |
thanks @simaishi for the pointers, I have validated and raised the PR |
All PRs are merged. @seth-priya Please confirm ppc64le builds ok now. |
@simaishi confirmed that the ppc64le builds are all good now, thanks! |
Great, thank you for the PRs! |
Need to add ppc64le specific changes that's currently done in manageiq-pods build:
The text was updated successfully, but these errors were encountered: