-
Notifications
You must be signed in to change notification settings - Fork 53
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
feat: add jre8 slices for Jammy #31
feat: add jre8 slices for Jammy #31
Conversation
0d1a495
to
f51165b
Compare
f51165b
to
4bda0fa
Compare
d81090e
to
f5e35b6
Compare
Maybe we need tools slice and misc properties slice. When adding websphere liberty/tomcat support I've stumbled on the fact that sometimes launcher scripts want to run keytool or access logging.properties that we've decided to map in. |
So, that would be something like: tools:
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/keytool:
/usr/lib/jvm/java-8-openjdk-amd64/bin/keytool: Is that right? What would they depend on? As for properties, there's already a slice, but it only contains a handful of properties. Should I add them all? |
|
f5e35b6
to
23cf6f2
Compare
alright, thanks @vpa1977 . Done |
23cf6f2
to
9acb846
Compare
I was doing comparison with corretto, and I've found that they do not add Looking into openjdk source code, the only downside is that those cause java to always think that it connects directly to internet. |
👍 this should be addressed in rockcrafters/chiselled-jre#50 |
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.
Bringing this PR back to draft mode. @vpa1977 I'll need your help to make some design changes on these slices, driven by the following feedback from @niemeyer (summarized):
creating slices with basis on the file format, although logical for some pkgs, doesn't really help much from a functional standpoint (eg. it doesn't make sense to always install all the Java properties together, as they are probably meant for different functional units). Maybe a better way to slice this would be to split slices based on their functional purpose, i.e. jars and properties (and other paths) can easily belong to the same slice, if they are part of the same functional unit.
So basically, the questions we need to ask ourselves are:
- do these jars function by themselves? or do they expect certain properties files to coexist in the same filesystem?
- are slices being overdesigned to include all paths of the same type, even though some of those are not generally needed?
- in practice, for this specific Java example: "where are .properties (and others) used? they might be a functional dependency of some code in some other slice...so if that code is in a jar and that jar can't function without that .property, then let's put them together in the same slice. An even more functional approach would be to group .properties by jar, ie. each .jar has its own .properties, in a dedicated sliced"
I think main point that we need to address here is separate security dependencies (nss3 ) and awt dependencies (fontconfig). Those make sense as separate slices and provide ~4/5 mb savings of the image size. Rest of the items does not provide such benefit, but we might do them in the same manner just for consistency. |
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.
Will leave the rest for tomorrow. The shared library paths should be changed though.
The previous use of globs was dangerous as a future introduction of fonts-dejavu-extra would automatically introduce an unnecessary conflict.
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.
Lots of slices, but looks quite clean. Thanks for the reorg on the JRE slices.
Thanks for the approvals ;) I'll merge it |
* feat: add jre8 slices for Jammy * feat: slice openjdk-8-jre-headless by functional unit * fix: add comments and split profiledebug in JRE8 * feat: replace 'gnu' with glob for multi-arch * fix: stcp -> sctp (typo) * fix: remove globs for fonts-dejavu-core The previous use of globs was dangerous as a future introduction of fonts-dejavu-extra would automatically introduce an unnecessary conflict. * feat: add libnpt for arm64 in openjdk-8-jre-headless --------- Co-authored-by: Vladimir Petko <[email protected]>
* feat: add jre8 slices for Jammy * feat: slice openjdk-8-jre-headless by functional unit * fix: add comments and split profiledebug in JRE8 * feat: replace 'gnu' with glob for multi-arch * fix: stcp -> sctp (typo) * fix: remove globs for fonts-dejavu-core The previous use of globs was dangerous as a future introduction of fonts-dejavu-extra would automatically introduce an unnecessary conflict. * feat: add libnpt for arm64 in openjdk-8-jre-headless --------- Co-authored-by: Vladimir Petko <[email protected]>
* feat: add jre8 slices for Jammy * feat: slice openjdk-8-jre-headless by functional unit * fix: add comments and split profiledebug in JRE8 * feat: replace 'gnu' with glob for multi-arch * fix: stcp -> sctp (typo) * fix: remove globs for fonts-dejavu-core The previous use of globs was dangerous as a future introduction of fonts-dejavu-extra would automatically introduce an unnecessary conflict. * feat: add libnpt for arm64 in openjdk-8-jre-headless --------- Co-authored-by: Vladimir Petko <[email protected]>
These new slice definitions files constitute the minimal set of packages and files necessary to build a functional headless java 8 runtime filesystem.