Buld eclipse 4.32 under FreeBSD #2275
Replies: 25 comments 4 replies
-
So I got lot progress, but about 15 steps before the finish I got following error: ... 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 |
Beta Was this translation helpful? Give feedback.
-
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:
Why define a brand-new
I would also suggest that you try the |
Beta Was this translation helpful? Give feedback.
-
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:
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 |
Beta Was this translation helpful? Give feedback.
-
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
Why do you even need this In your original post, you use this Maven command to start the build:
That
Note that the above |
Beta Was this translation helpful? Give feedback.
-
Further more, if I was to do the port to FreeBSD, I would use the following approach (a divide-and-conquer strategy):
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. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the detailed description! :-) This will help much! |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
Thanks! Yes, there is a Linux emulation layer - but it would also be nice to have a native port... :-) |
Beta Was this translation helpful? Give feedback.
-
Then the main problem would be to get a native machine for that purpose (or some way to build/test on a linux machine) |
Beta Was this translation helpful? Give feedback.
-
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 :-) |
Beta Was this translation helpful? Give feedback.
-
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] I could get the binary from: and untarred the file: although everything was without an error, but I could not find the executable eclipse/eclipse - what did I forget? Thanks, Norbert |
Beta Was this translation helpful? Give feedback.
-
Did you create an equinox-launcher project for your OS or at least updated the existing But I don't know if that is even necessary or if the existing |
Beta Was this translation helpful? Give feedback.
-
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 :-) |
Beta Was this translation helpful? Give feedback.
-
@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... :-) |
Beta Was this translation helpful? Give feedback.
-
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 :-) |
Beta Was this translation helpful? Give feedback.
-
@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
|
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
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... |
Beta Was this translation helpful? Give feedback.
-
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! :-) |
Beta Was this translation helpful? Give feedback.
-
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:
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. |
Beta Was this translation helpful? Give feedback.
-
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. |
Beta Was this translation helpful? Give feedback.
-
I hope I can write anew here - although I choose to make my "own portage" - at least now... As I wrote, I also see a brilliant point in integrating direct into this project... Now I tried to compile with R4_33 - actually tag S4_33_0_RC2. It works 50% but stopped at following point: ... I adapted my local changes to 4.33 - so my question is: can someone give me a hint what is going wrong?? Thanks! And thanks for your patience :-) Norbert |
Beta Was this translation helpful? Give feedback.
-
FYI: I've done it in my fork, first in its R4_32_maintenance branch, then in the R4_33_maintenance branch, then in the I've also uploaded the 4.32 and 4.33 (unofficial) build artifacts for FreeBSD to my fork's release area. |
Beta Was this translation helpful? Give feedback.
-
That is a great thing! Thank you very much!! I will test it - and if everything works, I will take your repository for the "FreeBSD port" build, which generates the BSD specific package data and structure. Maybe I can help you in future - so there need not be 2 "different" approaches... Norbert :-) |
Beta Was this translation helpful? Give feedback.
-
I build R4.33 on FreeBSD 13.3 and adapted the FreeBSD ports Makefile and build it from there - for a test with a testuser it runs fine :-) So I say: good job @chirontt :-) All the best! PS: Do you know if a "native" port build on aarch86 would also work on FreeBSD? |
Beta Was this translation helpful? Give feedback.
-
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
Beta Was this translation helpful? Give feedback.
All reactions