Closed NorbertXYZ closed 2 months ago
So I got lot progress, but about 15 steps before the finish I got following error:
... [INFO] [test-bundle] Test Plug-in for Framework Admin 1.4.400-SNAPSHOT SUCCESS [ 2.219 s] [INFO] [bundle] Equinox Provisioning Discovery 1.3.300-SNAPSHOT SUCCESS [ 0.832 s] [INFO] [bundle] Equinox Provisioning Discovery 1.3.300-SNAPSHOT SUCCESS [ 0.856 s] [INFO] [bundle] Equinox Provisioning Installer 1.4.300-SNAPSHOT SUCCESS [ 1.128 s] [INFO] [bundle] Equinox Provisioning Discovery UI 1.3.300-SNAPSHOT SUCCESS [ 1.916 s] [INFO] [feature] Equinox p2, Discovery UI support 1.3.400-SNAPSHOT SUCCESS [ 1.064 s] [INFO] [bundle] Test Install Verifier 1.4.300-SNAPSHOT .... SUCCESS [ 1.840 s] [INFO] org.eclipse.equinox.p2.tests 1.9.400-SNAPSHOT ...... FAILURE [ 30.137 s] [INFO] [test-bundle] Equinox Provisioning Discovery Tests 1.4.500-SNAPSHOT SKIPPED [INFO] [test-bundle] Equinox Provisioning Tests (Incubation) 1.4.400-SNAPSHOT SKIPPED [INFO] [bundle] p2 Admin UI 1.3.400-SNAPSHOT .............. SKIPPED [INFO] [bundle] Provisioning Admin UI RCP (Incubation) 1.4.100-SNAPSHOT SKIPPED [INFO] [feature] p2 Server Feature 1.12.1300-SNAPSHOT ..... SKIPPED [INFO] [feature] Equinox p2, SDK 3.11.2400-SNAPSHOT ....... SKIPPED [INFO] org.eclipse.equinox.p2.examples 4.32.0-SNAPSHOT .... SKIPPED [INFO] [bundle] RCP Mail (Cloud Update Example) 2.3.100-SNAPSHOT SKIPPED [INFO] [bundle] Prestartupdate 1.3.100-SNAPSHOT ........... SKIPPED [INFO] [bundle] Sdkbundlevisibility 1.3.100-SNAPSHOT ...... SKIPPED [INFO] [bundle] Sdknoautoupdates 1.3.100-SNAPSHOT ......... SKIPPED [INFO] [bundle] RCP Mail (SDK UI) 1.3.100-SNAPSHOT ........ SKIPPED [INFO] org.eclipse.ant.optional.junit 3.3.400-SNAPSHOT .... SKIPPED [INFO] org.eclipse.releng.tests 3.6.500-SNAPSHOT .......... SKIPPED [INFO] org.eclipse.sdk.examples 4.32.0-SNAPSHOT ........... SKIPPED [INFO] org.eclipse.sdk.tests 4.32.0-SNAPSHOT .............. SKIPPED [INFO] org.eclipse.test 3.6.100-SNAPSHOT .................. SKIPPED [INFO] org.eclipse.test.performance.win32 3.1.600-SNAPSHOT SKIPPED [INFO] org.eclipse.sdk.feature 4.32.0-SNAPSHOT ............ SKIPPED [INFO] org.eclipse.sdk.examples.feature 4.32.0-SNAPSHOT ... SKIPPED [INFO] org.eclipse.test.feature 3.8.900-SNAPSHOT .......... SKIPPED [INFO] org.eclipse.sdk.tests.feature 4.32.0-SNAPSHOT ...... SKIPPED [INFO] eclipse.platform.releng.tychoeclipsebuilder 4.32.0-SNAPSHOT SKIPPED [INFO] [feature] Eclipse Product Configuration 1.1.2300-SNAPSHOT SKIPPED [INFO] org.eclipse.rt.osgistarterkit.product 4.32.0-SNAPSHOT SKIPPED [INFO] equinox-sdk 4.32.0-SNAPSHOT ........................ SKIPPED [INFO] eclipse.platform.repository 4.32.0-SNAPSHOT ........ SKIPPED [INFO] platform-aggregator 4.32.0-SNAPSHOT ................ SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE
additionally following info:
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-p2-director-plugin:4.0.8:materialize-products (materialize-products) on project org.eclipse.equinox.p2.tests: Installation of product org.eclipse.equinox.p2.reconciler for environment freebsd/gtk/x86_64 failed: Call to p2 director application failed:Cannot complete the install because one or more required items could not be found.:
mmhhmmm... why? the previous steps all had enviroment freebsd/gtk/amd64 - but here it is freebsd/gtk/x86_64 - which does not fit. I don't know if this is the reason - but for me it seems...
Again - If someone could give me an advice - I would be very happy :-)
Norbert
PS: Here the patches eclipse.txt
Do you have your forked repos somewhere that I can clone and try compiling them? They would be much better than a patch file.
In theory I can build all platforms/OSes (including this new-fangled FreeBSD) from any supported OS like Linux/Mac/Windows, even when I have no experience with FreeBSD nor any hardware running it, because the Java/Maven/Tycho build is fairly portable...
I've noticed one thing in your patch file:
<environment>
+ <os>freebsd</os>
+ <ws>gtk</ws>
+ <arch>amd64</arch>
+ </environment>
Why define a brand-new arch=amd64
? What benefits would it bring? Why not just use the existing arch=x86_64
available to all other OSes? i.e.
<environment>
+ <os>freebsd</os>
+ <ws>gtk</ws>
+ <arch>x86_64</arch>
+ </environment>
I would also suggest that you try the arch=x86_64
for FreeBSD and make it work first, before trying other architectures such as powerpc64
, powerpc64le
, aarch64
, etc., just to reduce the complexities involved.
Thanks for the answer :-)
I do not have a repository till now - just started making progress my "own" way, sorry. Maybe I try to switch over...
I did what you recommended: I replaced the "amd64" architecture with "x86_64" and renamed files this way too - but the result is the same as with amd64... the build process stopped about 10 steps before the end. By the way why did I use amd64? Because of this:
uname -p amd64
And by the way - FreeBSD (along with other *BSD OS'es) are as old (and even more) as Linux is. BSD is nothing new, but a less known, but very stable operating system, which has millions of users world wide. Okay, Linux has more users and has more popularity...
If I make some progress, I will let you know... Again thanks for your comments :-)
Cheers from Germany, Norbert
I do not have a repository till now - just started making progress my "own" way, sorry. Maybe I try to switch over...
Note that I mentioned "repos" (plural); there are more than just one repo that need be ported to FreeBSD. If you examine the repo eclipse.platform.releng.aggregator closely, it actually contains many other repos as submodules
, and at least 4 of those submodule repos need be ported to FreeBSD as they contain "binaries" which need be recompiled to be FreeBSD-specific native binaries.
uname -p amd64
Why do you even need this uname
command in the build? The building of any specific OS/arch combination is determined by their specific <environment>
settings in various POM files and nothing to do with the uname
command.
In your original post, you use this Maven command to start the build:
mvn -DskipTests=true -Dnative=gtk.freebsd.${ARCH} clean verify
That -Dnative=...
option is not really needed, because it's used in various submodule repos to recompile their various "binaries" (which you already mentioned that you had already added them to your repos), not at the aggregator level. So the build command for the aggregator repo should be reduced to just:
mvn -DskipTests=true clean verify
Note that the above mvn
command will build all OS/arch combinations specified in the POM file(s), not just your specific FreeBSD platform.
Further more, if I was to do the port to FreeBSD, I would use the following approach (a divide-and-conquer strategy):
mvn -DskipTests=true clean verify
to see if it succeeds.mvn -DskipTests=true clean verify
should assemble all OS/arch combinations and produce various compressed files in eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/
including the FreeBSD ones.There may be other repos which contain Java source files to be changed also for FreeBSD, if they contain OS-specific code in their contents; for example, the eclipse.pde repo mentioned in your patch file.
Thanks for the detailed description! :-) This will help much! And for "uname -p" = "amd64" - I menion, because I do not know where the architecture was taken from - now I know from the environment in the pom files.
Does freebsd really requires an own binary? According to this you can run linux binaries under freebsd: https://docs.freebsd.org/en/books/handbook/linuxemu/
beside this @chirontt already gave a very good and detailed overview, beside that you probably want to make sure we have a machine to build and run tests (is this possible e.g. on github runners?) then it would be much easier to help out with issues.
Thanks! Yes, there is a Linux emulation layer - but it would also be nice to have a native port... :-)
Thanks! Yes, there is a Linux emulation layer - but it would also be nice to have a native port... :-)
Then the main problem would be to get a native machine for that purpose (or some way to build/test on a linux machine)
Again thanks for all the comments... First I must see what all means that you have written and second: If I make progress I will let you know :-) Have a nice sunday, Norbert
Hello back, again :-)
Today I made a big step forward and the build was successful... I took the advice to use x86_64 instead of amd64 (there was one thing, where I did not find a solution for amd64 nearby the end). The build log was finished with:
[INFO] [bundle] RCP Mail (SDK UI) 1.3.100-SNAPSHOT ........ SUCCESS [ 0.864 s] [INFO] org.eclipse.ant.optional.junit 3.3.400-SNAPSHOT .... SUCCESS [ 0.545 s] [INFO] org.eclipse.releng.tests 3.6.500-SNAPSHOT .......... SUCCESS [ 0.884 s] [INFO] org.eclipse.sdk.examples 4.32.0-SNAPSHOT ........... SUCCESS [ 0.211 s] [INFO] org.eclipse.sdk.tests 4.32.0-SNAPSHOT .............. SUCCESS [ 0.183 s] [INFO] org.eclipse.test 3.6.100-SNAPSHOT .................. SUCCESS [ 1.289 s] [INFO] org.eclipse.test.performance.win32 3.1.600-SNAPSHOT SUCCESS [ 0.238 s] [INFO] org.eclipse.sdk.feature 4.32.0-SNAPSHOT ............ SUCCESS [ 1.568 s] [INFO] org.eclipse.sdk.examples.feature 4.32.0-SNAPSHOT ... SUCCESS [ 1.248 s] [INFO] org.eclipse.test.feature 3.8.900-SNAPSHOT .......... SUCCESS [ 0.808 s] [INFO] org.eclipse.sdk.tests.feature 4.32.0-SNAPSHOT ...... SUCCESS [ 3.687 s] [INFO] eclipse.platform.releng.tychoeclipsebuilder 4.32.0-SNAPSHOT SUCCESS [ 0.025 s] [INFO] [feature] Eclipse Product Configuration 1.1.2300-SNAPSHOT SUCCESS [ 1.362 s] [INFO] org.eclipse.rt.osgistarterkit.product 4.32.0-SNAPSHOT SUCCESS [ 16.371 s] [INFO] equinox-sdk 4.32.0-SNAPSHOT ........................ SUCCESS [ 7.052 s] [INFO] eclipse.platform.repository 4.32.0-SNAPSHOT ........ SUCCESS [12:42 min] [INFO] platform-aggregator 4.32.0-SNAPSHOT ................ SUCCESS [ 1.422 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 31:06 min [INFO] Finished at: 2024-08-21T10:26:19+02:00 [INFO] ------------------------------------------------------------------------
I could get the binary from: eclipse.platform.releng.aggregator/eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products
and untarred the file: org.eclipse.sdk.ide-freebsd.gtk.x86_64.tar.gz
although everything was without an error, but I could not find the executable eclipse/eclipse - what did I forget?
Thanks, Norbert
although everything was without an error, but I could not find the executable eclipse/eclipse - what did I forget?
Did you create an equinox-launcher project for your OS or at least updated the existing org.eclipse.equinox.launcher.gtk.linux.x86_64
with the binaries built for FreeBSD (if necessary?) as described in:
https://github.com/eclipse-equinox/equinox/blob/master/CONTRIBUTING.md#building-the-native-executable-and-launcher-library-binaries
But I don't know if that is even necessary or if the existing org.eclipse.equinox.launcher.gtk.linux.x86_64
works already as it is for Linux and x86_64?
Thanks :-) I just took the description I found on github for eclipse-platform/eclipse.platform.releng.aggregator and another description for an older build (4.24) from FreeBSD. It was not mentioned that the "binaries" should be created additionally - I thought everything would be done in the eclipse build step...
I have to first understand what to do - then I will go further :-)
@HannesWell: Your comment for the laucher took me some time today - but finally it seems, eclispe 4.32 works on FreeBSD :-) But to go further I will test more...
Thanks to all for the comments.. Without I would still be somewhere in between and some steps would be still open... :-)
So for those, who may ask what happened to a build on FreeBSD? I got it working. If you want to see some more details, have a look here:
https://github.com/NorbertXYZ/eclipse
By the way: thanks for all remarks and comments here and from other people and to the person who made the older build of 4.24 on FreeBSD possible. Without, I would have taken maybe 3 times longer or it would have been impossible :-)
@NorbertXYZ I just learned we can use Docker Images to build the natives, so it seems to possble to create one here:
so can you provide a Dockerfile that contains everything you used to compile the natives? A quick search just reveled https://github.com/valpackett/docker-freebsd-cross/ that claims
An Alpine based Docker image for cross-compiling to FreeBSD (11, amd64) using clang.
Thanks - and yes, maybe a solution. But I would like to have a native running application, without docker. I know many use docker, and I use containers as well on my work. But it is no solution for what I was searching for.
By the way, I wrote a lot of stuff. Months ago I wrote a perl application, it did not work in anaconda, but without it worked - at least for the person who used it. I did not have access to that remote PC. So far for containers and similar things.
But it is no solution for what I was searching for.
This is only for building the native, otherwise you have to contact Eclipse to provide an own native FreeBSD maschine for building (and testing) the FreeBSD port.
Once it is build / released you can run it natively under any FreeBSD of course...
Hello @Christof - thanks:-)
but the binary build of a port / package of 4.32 is done now, I don't need an additional computer. The binary / package building process is done in a "FreeBSD way" - on their computers, so anyone can use it in future with following command on FreeBSD
pkg install eclipse
All the best! :-)
Well if you want to maintain a fork yourself that's all fine, but such things tend to become hard to maintain and dying sooner or later if the person looses interest or moves on to other things.
That's exactly the case as you described in you inital request:
I would like to build elipse for FreeBSD. I know there was a "port" done for release 4.24, but it is not updated any more.
So usually its best to integrate the work in the official repository so others can help with maintaining it and make it more widely available.
If thats not your goal, I would rather convert this into a discussion now as it is not something we can solve here.
Your comment has some good points. But for now I would keep the way as I did it. When I have time again, I will have a deeper look what you suggested - it makes sense. But not now. So, you can convert this conversation into a discussion. I started it to get some ideas or help - what really happened! All the best, Norbert
Hello,
I would like to build elipse for FreeBSD. I know there was a "port" done for release 4.24, but it is not updated any more. So I tried to take that port, but the differences between release 4.24 and release 4.32 made it difficult. So tried to start with a new adaptation of release 4.32 and took some advice from the existing port of 4.24.
I started with downloading:
git clone -b R4_32 --recursive https://github.com/eclipse-platform/eclipse.platform.releng.aggregator.git
Then I added some new "binary" files as basis for FreeBSD and patched eclipse files to include FreeBSD settings. Then I started the build with
export ARCH=$(uname -p) export JAVA_HOME="/usr/local/openjdk17" export MAVEN_OPTS="-Xmx2048m" mvn -DskipTests=true -Dnative=gtk.freebsd.${ARCH} clean verify
By the wqay: Maven is version 3.9
The compilation started and was running for about 15 minutes. Then there were errors
[INFO] ---------------< org.eclipse.platform:org.eclipse.jface >--------------- [INFO] Building [bundle] JFace 3.34.0-SNAPSHOT [45/521] [INFO] from eclipse.platform.ui/bundles/org.eclipse.jface/.polyglot.META-INF [INFO] ---------------------------[ eclipse-plugin ]--------------------------- [INFO] {osgi.os=freebsd, org.eclipse.update.install.features=true, osgi.arch=amd64, org.eclipse.update.install.sources=t rue, osgi.ws=gtk, org.eclipse.jdt.buildtime=true} [ERROR] Cannot resolve project dependencies: [ERROR] Software being installed: org.eclipse.jface 3.34.0.qualifier [ERROR] Missing requirement for filter properties ~= $0: org.eclipse.swt 3.126.0.qualifier requires 'org.eclipse.equin ox.p2.iu; org.eclipse.swt.gtk.freebsd.amd64 [3.126.0.qualifier,3.126.0.qualifier], filter=(&(osgi.arch=amd64)(osgi.os=fr eebsd)(osgi.ws=gtk)(!(org.eclipse.swt.buildtime=true)))' but it could not be found [ERROR] Cannot satisfy dependency: org.eclipse.jface 3.34.0.qualifier depends on: osgi.bundle; org.eclipse.swt [3.126. 0,4.0.0) ... [INFO] [bundle] Standard Widget Toolkit for GTK on x86_64 3.126.0-SNAPSHOT SUCCESS [ 13.465 s] [INFO] [bundle] Standard Widget Toolkit for Mac OS X (Cocoa) on aarch64 3.126.0-SNAPSHOT SUCCESS [ 11.617 s] [INFO] [bundle] Standard Widget Toolkit for GTK on ppc64le 3.126.0-SNAPSHOT SUCCESS [ 10.459 s] [INFO] [bundle] Standard Widget Toolkit for GTK on aarch64 3.126.0-SNAPSHOT SUCCESS [ 10.516 s] [INFO] [bundle] Standard Widget Toolkit for Windows on x86_64 3.126.0-SNAPSHOT SUCCESS [ 12.129 s] [INFO] [bundle] Standard Widget Toolkit for Windows on aarch64 3.126.0-SNAPSHOT SUCCESS [ 11.064 s] [INFO] [bundle] Standard Widget Toolkit for Mac OS X (Cocoa) on x86_64 3.126.0-SNAPSHOT SUCCESS [ 10.605 s] [INFO] [bundle] Bidirectional Text Support 1.5.100-SNAPSHOT SUCCESS [ 0.694 s] [INFO] [bundle] JFace 3.34.0-SNAPSHOT ..................... FAILURE [ 0.043 s] [INFO] [bundle] Eclipse CSS Core Support 0.14.400-SNAPSHOT SKIPPED [INFO] [bundle] Eclipse CSS SWT Support 0.15.400-SNAPSHOT . SKIPPED ... [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:30 min [INFO] Finished at: 2024-07-29T16:15:35+02:00 [INFO] ------------------------------------------------------------------------ [ERROR] Cannot resolve dependencies of project org.eclipse.platform:org.eclipse.jface:eclipse-plugin:3.34.0-SNAPSHOT [ERROR] with context {osgi.os=freebsd, org.eclipse.update.install.features=true, osgi.arch=amd64, org.eclipse.update.install.sources=true, osgi.ws=gtk, org.eclipse.jdt.buildtime=true} [ERROR] Software being installed: org.eclipse.jface 3.34.0.qualifier [ERROR] Missing requirement for filter properties ~= $0: org.eclipse.swt 3.126.0.qualifier requires 'org.eclipse.equinox.p2.iu; org.eclipse.swt.gtk.freebsd.amd64 [3.126.0.qualifier,3.126.0.qualifier], filter=(&(osgi.arch=amd64)(osgi.os=freebsd)(osgi.ws=gtk)(!(org.eclipse.swt.buildtime=true)))' but it could not be found [ERROR] Cannot satisfy dependency: org.eclipse.jface 3.34.0.qualifier depends on: osgi.bundle; org.eclipse.swt [3.126.0,4.0.0): See log for details
maybe someone could give me a hint, what to do. I tried to get an "entry point" - but I don't see it. Yes, it is jface, but what is missing or wrong?
Attached my patches.
Many thanks from Muenster/Germany if someone could give me some help :-) Norbert
eclipse.txt