Skip to content
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

Adding support for Power Linux (ppc64le) platform #1

Open
reynold-vazp opened this issue Jul 20, 2022 · 5 comments
Open

Adding support for Power Linux (ppc64le) platform #1

reynold-vazp opened this issue Jul 20, 2022 · 5 comments

Comments

@reynold-vazp
Copy link

reynold-vazp commented Jul 20, 2022

Hi Team,

We require support for imgproxy-docker-base:v3.2.4 image on Power platform, as this image acts as a base image for darthsim/imgproxy:latest which in turn acts as a dependency for one of the package we are currently working on. We have the required changes ready with us. Please guide as to how we can enable support for imgproxy-docker-base:v3.2.4 ( tagged as darthsim/imgproxy-base:v3.2.4 ) image on Power.

@DarthSim
Copy link
Member

Hey!

Adding ppc64le support shouldn't be something very difficult, you just search through the scripts for TARGET_ARCH and add ppc64le support everywhere you found this variable. On the other hand, this adds complexity to maintenance: I'll need to make sure all the dependencies can be properly built for ppc64le and work without any bugs. Arm64 support makes sense as we now have widely used Apple Silicon and Amazon Graviton chips, yet I'm not sure about ppc64le.

@reynold-vazp
Copy link
Author

reynold-vazp commented Jul 22, 2022

Hey,

Attaching below the patch file, reflecting the changes which helps to build imgproxy-docker-base image locally on power machine. We would like the CI build enabled for imgproxy-docker-base image (tagged as darthsim/imgproxy-base:v3.2.4) and we see that google cloud build is been used as the CI which does support multi-arch build, with your help we could get the CI build enabled for Power architecture. Thank you !
ppc64le_imgproxy-docker-base.patch.txt

@DarthSim
Copy link
Member

Hi Reynold,

Can I ask you, where imgproxy built for ppc64le is going to be used? As I said before, support of additional CPU architecture doesn't end with adding it to build scripts. All the dependencies should be able to be built for all the supported architectures and work well after it. Support of amd64 and arm64 is a must as they are widely used. Yet I didn't hear about popular machines powered by PowerPC for years. I appreciate your effort in adding ppc support, but I'm not sure if my effort in maintaining it and the additional costs of building images for it will pay off. I already bumped into an issue when one of the used packages couldn't be built for arm64. That time the issue was fixed by the package maintainer, but I'm not sure they would fix it for ppc.

@reynold-vazp
Copy link
Author

Hi @DarthSim ,

Addressing a few of your concerns:

  1. "Can I ask you, where imgproxy built for ppc64le is going to be used?"
  • Imgproxy is used as a dependency for deploying Vanilla(a powerfull and simple discussion forum) which we plan to use in our networks in the near future, and as mentioned before imgproxy is based on imgproxy-docker-base image.
  1. "All the dependencies should be able to be built for all the supported architectures and work well after it."
  • As mentioned above, the patch file I provided above does allow me to build the image successfully on Power machine. Although I do understand your concern regarding build complications and would like to know which dependencies in particular concern you. Once we are confident, we can also go ahead with enabling the CI build for imgproxy-docker-base image for Power.
  1. "Support of amd64 and arm64 is a must as they are widely used. Yet I didn't hear about popular machines powered by PowerPC for years."
  • Many of the top 50 super computers are still Linux on Power, it is used to run many operations at major banks across the world, it is used on Wall Street and other heavy financial trading environments, it is used for managing retail operations as some of the worlds biggest retailers, the list goes on and on. This particular effort is part of our work with Red Hat to broaden their portfolio to the Power systems as well.

Hope this clears the air!
Let me know if you have any other questions or doubts!

@DarthSim
Copy link
Member

Although I do understand your concern regarding build complications and would like to know which dependencies in particular concern you.

That's the problem - I don't know. As I mentioned before, one of the versions of one of our dependencies suddenly stopped working on arm64 once. If something like this will happen for ppc64le or if I'll need a dependency that doesn't work on ppc64le, it'll make problems delivering new features to amd64/arm64 users which is an absolute majority of users. Adding new features to imgproxy obliges imgproxy team to maintain them. That's why we avoid adding features unless we consider them useful for a good part of users or one of our enterprise users needs them. imgproxy is an open-source software after all, and everyone can fork it and add a needed feature.

Also, we have a pretty obvious policy: all the features of imgproxy should be included in imgproxy Pro. This implies that we'll have to build and store images for ppc64le. Considering the fact that the base image build takes a lot of time, its size is pretty big, and we have no Pro users who run or are going to run imgproxy on ppc64le, this looks like unneeded expenses. Hope for your understanding.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants