-
Notifications
You must be signed in to change notification settings - Fork 567
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 minimal sensible gcc
dependencies
#2716
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since gcc is in our toolchain, we'll need to update the toolchain manifests - if you're not familiar with the process, I can provide you with a suitable patch when I have some free time this week.
Once that's done, I'll go ahead and start a full pipeline test build for this PR. Specifically, I want to make sure that the removal of the Requires: libstdc++-devel
line doesn't reveal any implicit dependencies on libstdc++-devel
in any of our specs.
We will need to perform a full build with this change, since it will change the dependency graph (and could cause unexpected issues building all packages). To update the manifests before testing you can run "sed -i 's/-11.2.0-2.cm2./-11.2.0-3.cm2./g' ./resources/manifests/package/*.txt". I'll also note that we do have the "build-essential" metapackage which installs gcc, kernel-headers, etc. |
Thanks @anphel31, I've updated the toolchain manifests as you recommended. Yes, I'm aware of |
@oliviacrain the change to remove the |
I've run pipeline builds with this change, and saw an issue when building images. Both marketplace images failed to build with the following:
The marketplace disk size is set to 1500MB. When I reran with 2000MB disk, the images build. |
That installation is pulling in a whole compiler toolchain (due to I think the marketplace image shouldn't be pulling in Looking around other distros for inspiration for how they approach this:
Looking down the dependency chain, we could break the chain at (any subset of):
Personally (using the logic that debian generally make good decisions when it comes to packaging) I'd go for 1 and 4, but I'm not sure what motivated the inclusion of |
It looks like an alternative option would be to package (some of) the rsyslog plugins as their own packages (crucially in this case the |
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
./cgmanifest.json
,./toolkit/tools/cgmanifest.json
,./toolkit/scripts/toolchain/cgmanifest.json
,.github/workflows/cgmanifest.json
)./SPECS/LICENSES-AND-NOTICES/data/licenses.json
,./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md
,./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON
)*.signatures.json
filessudo make go-tidy-all
andsudo make go-test-coverage
passSummary
Out of the box,
tdnf install gcc
only installs the compiler, not the archiver, nor the glibc headers needed to actually compile ~99% of all C code. Following the lead of Fedora this change pulls inglibc-devel
,kernel-headers
andbinutils
. Fedora also pulls inmake
but that doesn't feel right to me (usinggcc
without make is pretty common these days thanks to things likeninja
).Change Log
Does this affect the toolchain?
No
Associated issues
None
Links to CVEs
None
Test Methodology
None