Just wanted to check you are aware of how the Elastic stack is licensed. Some parts are free open source under the Apache License v2. Other parts, including all of X-Pack (and the ML C++ code is part of X-Pack), are under the commercial Elastic license. Section 2 of the Elastic license says this:
2. COMMERCIAL SOFTWARE SOURCE CODE
2.1 Limited License. Subject to the terms and conditions of Section 2.2 of
this Agreement, Elastic hereby grants to You, AT NO CHARGE and for so long as
you are not in breach of any provision of this Agreement, a limited,
non-exclusive, non-transferable, fully paid up royalty free right and license
to the Commercial Software in Source Code format, without the right to grant
or authorize sublicenses, to prepare Derivative Works of the Commercial
Software, provided You (i) do not hack the licensing mechanism, or otherwise
circumvent the intended limitations on the use of Elastic Software to enable
features other than Basic Features and Functions or those features You are
entitled to as part of a Subscription, and (ii) use the resulting object code
only for reasonable testing purposes.
2.2 Restrictions. Nothing in Section 2.1 grants You the right to (i) use the
Commercial Software Source Code other than in accordance with Section 2.1
above, (ii) use a Derivative Work of the Commercial Software outside of a
Non-production Environment, in any production capacity, on a temporary or
permanent basis, or (iii) transfer, sell, rent, lease, distribute, sublicense,
loan or otherwise make available the Commercial Software Source Code, in whole
or in part, to any third party. Notwithstanding the foregoing, You may
maintain a copy of the repository in which the Source Code of the Commercial
Software resides and that copy may be publicly accessible, provided that you
include this Agreement with Your copy of the repository.
So the license does not prohibit you from having a go at porting Elasticsearch including the X-Pack bits to s390x. I'm sure you'll succeed if you try hard enough as it's just Linux running on a different hardware architecture. However, the Elastic license would not permit you to go beyond this test/development environment and run the X-Pack portions of Elasticsearch on s390x in production. If you want to go into production with your ported code without agreeing some sort of special deal with Elastic then you'll need to limit your port to just the Apache 2 licensed parts (and for this see my earlier reply about the -X
argument of gradlew
).
Even if you submit PRs that make Elasticsearch including the ML C++ work on s390x, without a broader partnership agreement Elastic will not add simply add s390x to the support matrix because of the complications with ongoing testing to ensure we don't accidentally break something on s390x.
Is your team at IBM already in contact with an Elastic account manager or someone in our partners team about this project? If you have not done so already I think you need to think about the licensing aspects of this project before putting too much work into it.