1

Topic: Java rebranding

In https://forums.hyperbola.info/viewtopic.php?id=205 It was said that OpenJDK has to be rebranded to avoid trademark issues. I started playing with OpenJDK8 PKGBUILD with hope of helping You guys. 🙂 It turned out that PKGBUILD in https://git.hyperbola.info:50100/packag … a8-openjdk has 2 (probably unneeded) files in sources array not present in it's folder and also a broken link to another file (debian patches tarball). I found the right sources in https://repo.hyperbola.info:50011/gnu-p … /packages/ and spent the rest of my day trying to build the jdk+friends with the branding used so far and encountering weird errors of different kinds. It turns out -fno-plt was added to default CFLAGS and CXXFLAGS in makepkg.conf but it's not supported by gcc5 and results in ./configure failing. Other, more complicated problems arise when trying to compile the icedtea version of openjdk sources using gcc6: once disabled build_with_gcc6.patch fails to apply when re-enabled and while the vm builds without it, it segfaults during test... (perhaps the reason why gcc5 was used when openjdk in Hyperbola was changed to use icedtea sources?). I'm going to keep digging in this if You don't mind!

Object oriented programs are offered as alternatives to correct ones ~ Edsger W. Dijkstra

2

Re: Java rebranding

koszko wrote:

In https://forums.hyperbola.info/viewtopic.php?id=205 It was said that OpenJDK has to be rebranded to avoid trademark issues. I started playing with OpenJDK8 PKGBUILD with hope of helping You guys. 🙂 It turned out that PKGBUILD in https://git.hyperbola.info:50100/packag … a8-openjdk has 2 (probably unneeded) files in sources array not present in it's folder and also a broken link to another file (debian patches tarball). I found the right sources in https://repo.hyperbola.info:50011/gnu-p … /packages/ and spent the rest of my day trying to build the jdk+friends with the branding used so far and encountering weird errors of different kinds. It turns out -fno-plt was added to default CFLAGS and CXXFLAGS in makepkg.conf but it's not supported by gcc5 and results in ./configure failing. Other, more complicated problems arise when trying to compile the icedtea version of openjdk sources using gcc6: once disabled build_with_gcc6.patch fails to apply when re-enabled and while the vm builds without it, it segfaults during test... (perhaps the reason why gcc5 was used when openjdk in Hyperbola was changed to use icedtea sources?). I'm going to keep digging in this if You don't mind!

Thank you for your efforts, at this time we do not think it is possible to properly package Java without a large amount of hacking first (eg. all current PKGBUILDs that were inherited from Arch are "dirty" in the sense that they download various pre-compiled and pre-packaged binaries).

Java is being removed from our primary repository for v0.4, but you are welcome to keep your own local copy as a potential community package at a future date.

There is a global git repository made by pekman to host development and PKGBUILDs made by users from our community as proposal to be implemented for Hyperbola such as hypervideo which is a project maintained by heckyel. I suggest you ask pekman or heckyel for further details about it.

3

Re: Java rebranding

Emulatorman wrote:

Thank you for your efforts, at this time we do not think it is possible to properly package Java without a large amount of hacking first (eg. all current PKGBUILDs that were inherited from Arch are "dirty" in the sense that they download various pre-compiled and pre-packaged binaries).

k, I still have some questions tho smile

Emulatorman wrote:

Java is being removed from our primary repository for v0.4, but you are welcome to keep your own local copy as a potential community package at a future date.

I get this means the next Hyperbola version that could possibly have java reincluded would be Canis Major with snapshot date not yet given in https://wiki.hyperbola.info/doku.php?id … n:releases (I guess it's going to be somewhere in 2020 because that's when Milky Way becomes old-stable).

OpenJDK7 shall lose RedHat's support in June 2020, so I guess it's to be excluded. OpenJDK8 is, however, going to be supported until June 2023.

question1: Does this mean OpenJDK8's rebranded version could be included in Canis Major?

OpenJDK8 can be built from openjdk sources as well as from icedtea sources. From https://git.hyperbola.info:50100/packag … a8-openjdk one can conclude, that the latter is preferred. Debian patches, however, are made for openjdk sources and are probably dangerous to apply to icedtea. So...

question2: If answer for question1 is "yes", should icedtea sources without debian patches or openjdk sources with patches be used? It seems that most icedtea changes have already been incorporated in upstream openjdk but I'm still asking just to be sure smile

The whole rebranding thing came from the issue with 'OpenJDK' trademark. According to https://www.gnu.org/distros/free-system … trademarks (referenced from Hyperbola's 'Social Contract') trademarks may or may not make software nonfree.

question3: 'Java' is also a trademark. No, I have not yet found what restrictions Oracle imposes on it's use. Anyways, may it be that not only jdk but the entire language has to be renamed to something else? I don't think so, because there was no problem with GNU developing GCJ. But I'm asking just to be sure!

JDKs can be bootstrapped, but it seems that it requires starting with GCJ to build icedtea6, to build icedtea7, to build icedtea8.

question4: Does it make sense to make this chain of PKGBUILDs, given some of it's members are or may soon become abandonware? Or maybe all the bootstrap chain should be performed inside single PKGBUILD for jdk8?

Object oriented programs are offered as alternatives to correct ones ~ Edsger W. Dijkstra

4

Re: Java rebranding

koszko wrote:

I guess it's going to be somewhere in 2020 because that's when Milky Way becomes old-stable.

That is our plan, however there are high priorities first, such as rebuild all packages (that were inherited from Arch) by following the Hyperbola Packaging Guidelines. So since Milky Way is a special version dedicated for structuring, it takes some time to complete and there isn't an official date for Canis Major. It is so important since we have plans to develop our own operating system aka HyperbolaBSD.

koszko wrote:

OpenJDK7 shall lose RedHat's support in June 2020, so I guess it's to be excluded. OpenJDK8 is, however, going to be supported until June 2023.

question1: Does this mean OpenJDK8's rebranded version could be included in Canis Major?

We haven't plans to support Java, at least if you or some user would create the rebranded version of OpenJDK and its "bunch" of Java packages (missed in Arch) for [community] which is the repository dedicated for packages requested by community. Recently, we put the removal reasons in the todo for further details.

koszko wrote:

OpenJDK8 can be built from openjdk sources as well as from icedtea sources. From https://git.hyperbola.info:50100/packag … a8-openjdk one can conclude, that the latter is preferred. Debian patches, however, are made for openjdk sources and are probably dangerous to apply to icedtea. So...

question2: If answer for question1 is "yes", should icedtea sources without debian patches or openjdk sources with patches be used? It seems that most icedtea changes have already been incorporated in upstream openjdk but I'm still asking just to be sure smile

Hyperbola has its own packaging guidelines, it means all packages included in Hyperbola should follow it.

koszko wrote:

The whole rebranding thing came from the issue with 'OpenJDK' trademark. According to https://www.gnu.org/distros/free-system … trademarks (referenced from Hyperbola's 'Social Contract') trademarks may or may not make software nonfree.

question3: 'Java' is also a trademark. No, I have not yet found what restrictions Oracle imposes on it's use. Anyways, may it be that not only jdk but the entire language has to be renamed to something else? I don't think so, because there was no problem with GNU developing GCJ. But I'm asking just to be sure!

JDKs can be bootstrapped, but it seems that it requires starting with GCJ to build icedtea6, to build icedtea7, to build icedtea8.

Not all trademarks are bad while they don't make software nonfree. The whole issue here is the OpenJDK trademark with its restrictive name usage, so OpenJDK should be rebranded with a new name to solve this issue.

koszko wrote:

question4: Does it make sense to make this chain of PKGBUILDs, given some of it's members are or may soon become abandonware? Or maybe all the bootstrap chain should be performed inside single PKGBUILD for jdk8?

You should create all those Java packages before rebrand OpenJDK to follow our social contract and packaging guidelines. Before of that, you should check Maven and Ant that contain various pre-compiled and pre-packaged binaries dependencies inside them, each of those binaries require another dependencies missed in Hyperbola by including the reproducible builds and dependencies that require the same package with a previous version. In short, you should build all Java enviroment from scratch by following the Debian Java packaging.

5

Re: Java rebranding

Emulatorman wrote:
koszko wrote:

OpenJDK7 shall lose RedHat's support in June 2020, so I guess it's to be excluded. OpenJDK8 is, however, going to be supported until June 2023.

question1: Does this mean OpenJDK8's rebranded version could be included in Canis Major?

We haven't plans to support Java, at least if you or some user would create the rebranded version of OpenJDK [...]

Of course, I meant an explicit "If I do it" when asking this question. Sorry for not making this clear.

Emulatorman wrote:
koszko wrote:

OpenJDK8 can be built from openjdk sources as well as from icedtea sources. From https://git.hyperbola.info:50100/packag … a8-openjdk one can conclude, that the latter is preferred. Debian patches, however, are made for openjdk sources and are probably dangerous to apply to icedtea. So...

question2: If answer for question1 is "yes", should icedtea sources without debian patches or openjdk sources with patches be used? It seems that most icedtea changes have already been incorporated in upstream openjdk but I'm still asking just to be sure smile

Hyperbola has its own packaging guidelines, it means all packages included in Hyperbola should follow it.

You can be sure I've read the packaging guideline at least 10 times and I'm asking this question because it's still not clear to me what should be done here. What confused me is change made by Hyperbola dev in https://git.hyperbola.info:50100/packag … 4d6c5c9adb, but in other cases the guidelines may just not encompass some specific case, as in my post from February. Regardless, I prefer asking when I am not sure about something.

Emulatorman wrote:
koszko wrote:

question4: Does it make sense to make this chain of PKGBUILDs, given some of it's members are or may soon become abandonware? Or maybe all the bootstrap chain should be performed inside single PKGBUILD for jdk8?

You should create all those Java packages before rebrand OpenJDK to follow our social contract and packaging guidelines.

Does term "Java packages" refer to stuff written in java (like java-jline, java-guava, java-rhino...) or icedtea8's bootstrap chain of gcj, icedtea6 and icedtea7? Because the latter is what I was actually asking about and the former is what rest of your post refers to. Is the possibility of bootstrapping a package a desired thing in Hyperbola?

Object oriented programs are offered as alternatives to correct ones ~ Edsger W. Dijkstra

6

Re: Java rebranding

koszko wrote:

You can be sure I've read the packaging guideline at least 10 times and I'm asking this question because it's still not clear to me what should be done here. What confused me is change made by Hyperbola dev in https://git.hyperbola.info:50100/packag … 4d6c5c9adb

That change was made as workaround while we were completing the system for v0.1. In fact, it was inspired from Arch's PKGBUILD in conjunction with Debian patches, however it requires be made from scratch because all Java environment in Arch is a disaster in comparison to other distros such as Debian.

koszko wrote:

but in other cases the guidelines may just not encompass some specific case, as in my post from February. Regardless, I prefer asking when I am not sure about something.

I saw your topic now and put a response there smile

koszko wrote:

Does term "Java packages" refer to stuff written in java (like java-jline, java-guava, java-rhino...) or icedtea8's bootstrap chain of gcj, icedtea6 and icedtea7? Because the latter is what I was actually asking about and the former is what rest of your post refers to. Is the possibility of bootstrapping a package a desired thing in Hyperbola?

"Java packages" refers all related to Java such as the OpenJDK bootstrap chain and its dependencies such Rhino, Maven, Maven artifacts, Ant, etc. The goal here is build Java from scratch with all its dependencies and sub-dependencies from the official source code by following the Debian Java packaging, our packaging guidelines and social contract.