-
Notifications
You must be signed in to change notification settings - Fork 88
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
(PA-4867) Build ruby on Solaris 11 SPARC #706
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I was able to install the agent tarball on a new host, install facter gem and collect mountpoints which requires ffi:
openssl and curl seem good as well:
|
cthorn42
reviewed
Jul 21, 2023
cthorn42
reviewed
Jul 21, 2023
cthorn42
reviewed
Jul 21, 2023
joshcooper
force-pushed
the
solaris-sparc-native
branch
from
July 21, 2023 18:59
8980a87
to
6b19230
Compare
joshcooper
commented
Jul 21, 2023
joshcooper
commented
Jul 21, 2023
joshcooper
force-pushed
the
solaris-sparc-native
branch
from
July 21, 2023 19:41
6b19230
to
5433e19
Compare
To sanity test ruby shadow:
To sanity test ruby augeas:
|
joshcooper
force-pushed
the
solaris-sparc-native
branch
from
July 24, 2023 06:26
5433e19
to
9d221b0
Compare
joshcooper
force-pushed
the
solaris-sparc-native
branch
2 times, most recently
from
August 1, 2023 22:22
0927cd4
to
1b6e593
Compare
I couldn't find a way to to make solaris-11-sparc platform definition take into account the project, because of the way vanagon creates the Platform and then later the Project. So create a new solaris-113-sparc platform definition for native Solaris compiles. Since the name of the file contains 113, vanagon assumes that's the `os_version`. Setting the os_version from within the platform definition doesn't seem to work, so I had to specialy case some logic to check for the platform.name. Although we're native compiling on SPARC, we have to explicitly set `--with-baseruby=no` so that ruby's configure script does not attempt to use the ancient ruby already installed. Instead build miniruby and have the build use that. We should probably be setting `--with-baseruby=no` always, except in cases where we're cross compiling to avoid this same problem on other platforms. Similarly, ruby's configure script will attempt to enable `dtrace` because the executable is present. Explicitly disable it.
joshcooper
force-pushed
the
solaris-sparc-native
branch
from
August 1, 2023 22:29
1b6e593
to
80461b3
Compare
The ruby-augeas gem's native extensions didn't work, because we were overriding rbconfig when native compiling. It is only necessary to do that when cross compiling, because the host ruby running on Solaris Intel needs to override CC, etc configuration when installing gems with native extensions. The ruby-shadow gem did work on SPARC, but it was relying on the rbconfig overrides to find gcc. Instead add pl-build-tools to the PATH and only override rbconfig when cross compiling.
joshcooper
force-pushed
the
solaris-sparc-native
branch
from
August 2, 2023 04:51
80461b3
to
0968bde
Compare
There are no changes to existing platforms. Only solaris-113-sparc is new for agent-runtime-7.x and agent-runtime-main (but the former isn't a supported combination and can be ignored):
|
cthorn42
approved these changes
Aug 3, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I couldn't find a way to to make solaris-11-sparc platform definition take into
account the project, because of the way vanagon creates the Platform and then
later the Project. So create a new solaris-113-sparc platform definition for
native Solaris compiles.
Since the name of the file contains 113, vanagon assumes that's the
os_version
. Setting the os_version from within the platform definition doesn'tseem to work, so I had to special case some logic to check for the
platform.name.
Although we're native compiling on SPARC, we have to explicitly set
--with-baseruby=no
so that ruby's configure script does not attempt to use theancient ruby already installed. Instead build miniruby and have the build use
that. We should probably be setting
--with-baseruby=no
always, except in caseswhere we're cross compiling to avoid this same problem on other platforms.
Similarly, ruby's configure script will attempt to enable
dtrace
because theexecutable is present. Explicitly disable it.
The ruby-augeas gem's native extensions didn't work, because we were overriding
rbconfig when native compiling. It is only necessary to do that when cross
compiling, because the host ruby running on Solaris Intel needs to override CC,
etc configuration when installing gems with native extensions.
The ruby-shadow gem did work on SPARC, but it was relying on the rbconfig
overrides to find gcc. Instead add pl-build-tools to the PATH and only override
rbconfig when cross compiling.
Built agent-runtime-main in https://jenkins-platform.delivery.puppetlabs.net/view/vanagon-generic-builder/job/platform_vanagon-generic-builder_vanagon-packaging_generic-builder/BUILD_TARGET=solaris-113-sparc,SLAVE_LABEL=k8s-worker/2225/
Please merge https://github.com/puppetlabs/ci-job-configs/pull/9024 after this.