Bug 259359 - java/intellij: update to to 2022.3.3
Summary: java/intellij: update to to 2022.3.3
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Charlie Li
: 268267 (view as bug list)
Depends on:
Reported: 2021-10-22 17:50 UTC by a52ca063
Modified: 2023-03-22 23:40 UTC (History)
12 users (show)

See Also:
vishwin: maintainer-feedback+

updated port files (10.68 KB, application/x-xz)
2021-10-22 17:50 UTC, a52ca063
no flags Details
git diff patch (144.40 KB, patch)
2021-10-27 21:24 UTC, a52ca063
no flags Details | Diff
patch intellij to 2021.3.2 (182.03 KB, patch)
2022-03-03 22:28 UTC, a52ca063
no flags Details | Diff
updated patch (181.15 KB, patch)
2022-03-09 17:33 UTC, a52ca063
no flags Details | Diff
Suggested patch/diff (181.57 KB, patch)
2022-03-11 21:28 UTC, James Wright
no flags Details | Diff
Update to 2022.1.1 (205.27 KB, patch)
2022-05-22 16:07 UTC, Li-Wen Hsu
no flags Details | Diff
Updated patch for 2022.1.3 (204.08 KB, patch)
2022-07-09 03:19 UTC, James Wright
no flags Details | Diff
patch to update to 2022.2.4 (204.08 KB, patch)
2023-02-24 17:50 UTC, a52ca063
no flags Details | Diff
updated patch to 2022.2.4 (190.33 KB, patch)
2023-02-24 22:09 UTC, a52ca063
no flags Details | Diff
update intellij 2022.3.3 patch (64.33 KB, patch)
2023-03-15 07:16 UTC, James Wright
no flags Details | Diff
updated patch for current intellij in ports (193.91 KB, application/x-troff-man)
2023-03-15 12:12 UTC, a52ca063
no flags Details
Updated java/intellij 2022.3.3 patch (195.49 KB, patch)
2023-03-16 03:21 UTC, James Wright
no flags Details | Diff
intellij-2022.3.3-20230318.diff (195.61 KB, patch)
2023-03-18 16:28 UTC, James Wright
james.wright: maintainer-approval? (vishwin)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description a52ca063 2021-10-22 17:50:27 UTC
Created attachment 228947 [details]
updated port files
Comment 1 a52ca063 2021-10-22 17:53:05 UTC
I updated the existing port from 2020.2.3 to 2021.2.3 and ran it locally.
Comment 2 a52ca063 2021-10-27 21:24:48 UTC
Created attachment 229084 [details]
git diff patch

diff of port
Comment 3 James Wright 2021-11-13 05:11:07 UTC
Tested patch on FreeBSD 12.3-STABLE (built 2021-11-01);

1) Patch may have inadvertently removed recently added CPE info see;

2) % portlint -A  
WARN: Makefile: [44]: use tab (not space) to make indentation

Hoping we can get this updated version (2021.2.3) into ports soon as the current version (2020.2.3) doesn't support builds using JDK 17 :-(
Comment 4 James Wright 2021-11-13 05:28:22 UTC
Not sure if it's obvious or not, but IntelliJ 2021.2.3 failed to start for me because I had JAVA_HOME set to the JDK 17 (/usr/local/openjdk17), switching JAVA_HOME back to JDK 11 (/usr/local/openjdk11) worked fine!
Comment 5 James Wright 2021-11-13 05:36:32 UTC
Note: Just found that I can keep my as JAVA_HOME=/usr/local/openjdk17 and still run IntelliJ using JDK 11 by setting the following env var: 
Comment 6 a52ca063 2021-11-13 12:09:09 UTC
Hi - as this is my first patch, I need some guidance.

Were you making those changes?  Going forward, once I see the changes you've done, I can continue to incorporate those in future updates.  I hope to monitor the website for updates and publish patches more frequently.
Comment 7 James Wright 2021-11-13 12:23:42 UTC
(In reply to a52ca063 from comment #6)

I haven't made any changes, just providing some feedback for your patch regarding a couple of minor things I noticed! :-) Hopefully the maintainer of this port can take a peek also and provide some additional guidance.
Comment 8 Kevin Bowling freebsd_committer 2021-12-18 20:28:08 UTC
Anyone getting segvs?

% IDEA_JDK=/usr/local/openjdk11 idea
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.lang.UrlClassLoader (file:/usr/local/share/intellij-ultimate/lib/util.jar) to field java.lang.ClassLoader.classLoaderValueMap
WARNING: Please consider reporting this to the maintainers of com.intellij.util.lang.UrlClassLoader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2021-12-18 13:27:22,754 [     87]   WARN - llij.ide.plugins.PluginManager - id redefinition ([row,col,system-id]: [2,3,"product classpath"]) 
2021-12-18 13:27:25,357 [   2690]   WARN - tor.impl.FontFamilyServiceImpl - Couldn't access required runtime API, will fall back to basic logic of font selection 
# A fatal error has been detected by the Java Runtime Environment:
#  SIGSEGV (0xb) at pc=0x000025e838cbf046, pid=91019, tid=120050
# JRE version: OpenJDK Runtime Environment (11.0.13+8) (build 11.0.13+8-1)
# Java VM: OpenJDK 64-Bit Server VM (11.0.13+8-1, mixed mode, tiered, compressed oops, g1 gc, bsd-amd64)
# Problematic frame:
# V  [libjvm.so+0xebf046][thread 120028 also had an error]
Comment 9 James Wright 2021-12-19 00:17:59 UTC
(In reply to Kevin Bowling from comment #8)

Works without issues on my machine, here is the logs from starting the IDE and opening a project;

% IDEA_JDK=/usr/local/openjdk11 idea
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.lang.UrlClassLoader (file:/usr/local/share/intellij/lib/util.jar) to field java.lang.ClassLoader.classLoaderValueMap
WARNING: Please consider reporting this to the maintainers of com.intellij.util.lang.UrlClassLoader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2021-12-19 00:05:04,055 [   2448]   WARN - tor.impl.FontFamilyServiceImpl - Couldn't access required runtime API, will fall back to basic logic of font selection
2021-12-19 00:05:05,428 [   3821]   WARN - tellij.ide.SystemHealthMonitor - issue detected: bundled.jre.version.message (ignored)
2021-12-19 00:05:54,120 [  52513]   WARN - #com.intellij.ui.jcef.JBCefApp - JCEF runtime library is not a JBR module (Use JBR bundled with the IDE

% java -version                 
openjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-1, mixed mode)

OS: FreeBSD 12.3-STABLE (built Wed 1st Dec)
Comment 10 Eric Hanneken 2022-01-26 15:05:55 UTC
Has the port maintainer provided any feedback?
Comment 11 a52ca063 2022-01-26 17:58:47 UTC
No, I emailed the maintainer separately and haven't received any response.
Comment 12 Eric Hanneken 2022-01-26 18:58:13 UTC
Okay. I've set the maintainer timeout flag.
Comment 13 a52ca063 2022-01-26 18:59:21 UTC
Okay, what are the next steps and is anything needed on my end?
Comment 14 Eric Hanneken 2022-01-26 19:19:28 UTC
I don't know what the next step is. I presume this bug will go into a report somewhere. The port maintainer should already be aware this port is out of date, from his portscout RSS feed (https://portscout.freebsd.org/bsam@freebsd.org.html).
Comment 15 James Wright 2022-02-18 22:38:54 UTC
Latest version is now 2021.2.4 from the 2021.2.x releaes, or alternatievly 2021.3.2 from the 2021.3.x releases.

Any chance we can get some prgress on this ticket, as the older versions of IntelliJ do not support Java 17.
Comment 16 a52ca063 2022-03-03 03:41:40 UTC
I haven't received a response from the maintainer.  I will look to bump intellij, it's been awhile since I've looked at this, so it may take me some time to update :(.
Comment 17 a52ca063 2022-03-03 22:28:34 UTC
Created attachment 232233 [details]
patch intellij to 2021.3.2
Comment 18 a52ca063 2022-03-03 22:29:03 UTC
I updated the patch to 2021.3.2.  Please review.
Comment 19 a52ca063 2022-03-03 22:39:13 UTC
The fonts are blurry for me - I vaguely recall that JDK11 and newer replaced fonts so I need to manually copy them to make them sharp.  The IDE works, but is difficult to use with fonts that are not sharp.
Comment 20 James Wright 2022-03-04 02:33:47 UTC
I think the Makefile patch has accidently removed the CPE info lines, e.g.

USES=		cpe python:run shebangfix
CPE_VENDOR=	jetbrains

Also the Makefile diff is showing lots of extraneous changes due to the removal of whitespace (TAB), which should be kept in place.
Comment 21 a52ca063 2022-03-09 17:33:08 UTC
Created attachment 232349 [details]
updated patch

As per the comments, I have added the tabs back and the other variables that were inadvertently removed.
Comment 22 James Wright 2022-03-11 21:28:34 UTC
Created attachment 232393 [details]
Suggested patch/diff

Have attached a suggested patch based on your one, changes include;

Added BUILD_TYPE, BUILD_VERSION_ BUILDMARKER vars (based off of Makefile of intellij-ultimate port) 

Removed line in the do-install section;
${WRKSRC}/plugins/android/lib/libwebp/ \

Added removal of these files in the do-install section;
${WRKSRC}/plugins/cwm-plugin/quiche-native/ \

Regenerated pkg-plist
Comment 23 Li-Wen Hsu freebsd_committer 2022-05-22 16:07:18 UTC
Created attachment 234123 [details]
Update to 2022.1.1

(In reply to James Wright from comment #22)
I created a patch updates the port to 2022.1.1 based on this one.
Please help test.  If this works fine, I think we can update it with maintainer-timeout.
Comment 24 James Wright 2022-05-22 23:10:49 UTC
(In reply to Li-Wen Hsu from comment #23)

OS: FreeBSD 12.3-STABLE (built 2022/05/01)
JDK: openjdk11-11.0.15+10.1

The patch for version 2022.1.1 seem to work fine for me, with the only issue that the following error is emitted when exiting the IDE;

2022-05-23 00:02:31,996 [  42418] SEVERE - #c.i.o.v.n.RefreshQueueImpl - null
2022-05-23 00:02:32,000 [  42422] SEVERE - #c.i.o.v.n.RefreshQueueImpl - IntelliJ IDEA 2022.1.1  Build #IC-221.5591.52
2022-05-23 00:02:32,002 [  42424] SEVERE - #c.i.o.v.n.RefreshQueueImpl - JDK: 11.0.15; VM: OpenJDK 64-Bit Server VM; Vendor: OpenJDK BSD Porting Team
2022-05-23 00:02:32,004 [  42426] SEVERE - #c.i.o.v.n.RefreshQueueImpl - OS: FreeBSD
Comment 25 Rene Ladan freebsd_committer 2022-06-06 11:22:47 UTC
Maintainer reset.
Comment 26 Robert Cina 2022-06-20 22:33:54 UTC
I can confirm that the patch from attachment 234123 [details] builds using poudriere on 13.1 stable amd64.  However when I try to run it I get the following error:

OpenJDK 64-Bit Server VM warning: Archived non-system classes are disabled because the java.system.class.loader property is specified (value = "com.intellij.util.lang.PathClassLoader"). To use archived non-system classes, this property must not be set
Error: LinkageError occurred while loading main class com.intellij.idea.Main
        java.lang.ExceptionInInitializerError: null
Comment 27 Robert Cina 2022-06-20 22:52:28 UTC
I forgot to add that the error occurs when using openjdk17.  It seems to work when using openjdk11. Not sure why that is an issue.
Comment 28 James Wright 2022-07-09 03:19:24 UTC
Created attachment 235140 [details]
Updated patch for 2022.1.3

Updated the patch for the latest release (2022.1.3)
Comment 29 Graham Perrin freebsd_committer 2022-12-11 19:06:27 UTC
*** Bug 268267 has been marked as a duplicate of this bug. ***
Comment 30 a52ca063 2023-02-24 17:50:02 UTC
Created attachment 240386 [details]
patch to update to 2022.2.4

attempt to update to 2022.2.4
Comment 31 a52ca063 2023-02-24 22:09:51 UTC
Created attachment 240395 [details]
updated patch to 2022.2.4

updated patch to 2022.2.4
Comment 32 Charlie Li freebsd_committer 2023-03-13 03:53:57 UTC
Latest is now 2022.3.3, with 2023.1.1 forthcoming, thus all existing patches obsoleted.
Comment 33 a52ca063 2023-03-13 10:37:39 UTC
That is incorrect, please see if you can download this file:

If not, then that is why I provided 2022.2.4.  Intellij has NOT released the download without jbr, so the latest without jbr is:

Please revalidate 2022.2.4.
Comment 34 a52ca063 2023-03-13 10:38:35 UTC
In addition, I have also tried all the versions in between and jetbrains has only released up to 2022.2.4 without jbr.
Comment 35 Charlie Li freebsd_committer 2023-03-13 10:48:40 UTC
-no-jbr is merely an option when building from source, see https://github.com/archlinux/svntogit-community/blob/packages/intellij-idea-community-edition/trunk/enable-no-jdr.patch

JetBrains sources available on GitHub; they tag everything as [product]/[build id] so 22.3.3 would be idea/223.8836.41.
Comment 36 James Wright 2023-03-15 00:42:38 UTC
Offical release versions can be viewed here;

However, it appears that 2.2.x and 2.3.x releases no longer list "Linux without JBR" links, even though the downloads do actually exist for the 2.2.x releases.

e.g. the following isn't available as a link on the page, but is available here;

Perhaps JetBrains are no longer building and packaging the "no-jbr" packages with the 2.3.x versions, and we instead have to build IntelliJ from sources like Arch is doing?
Comment 37 James Wright 2023-03-15 00:45:41 UTC
Discovered this comment on the JetBrains tracker suggesting they indeed no longer package the no-jbr versions;


"That's correct; starting from 2022.3, we're no longer providing no-JBR distributions and corresponding patches.
I'll check what we can do to make the user experience better."
Comment 38 a52ca063 2023-03-15 00:53:48 UTC
Yes - I agree, I was hoping to get to that.  The most recent invalidation is frustrating, combined with it taking this long to see no update is just difficult to comprehend.

I'm a bit discouraged by the process at the moment, otherwise, I would have taken a week to bang it out.

Yes, Arch has an example, but we've been chasing this for 1.5 years now.  If someone can convert the Arch sample to FreeBSD and post that here, I will happily test it.  Otherwise, I probably won't pick it up until the 2nd week of April.
Comment 39 Charlie Li freebsd_committer 2023-03-15 01:00:38 UTC
I had a crack at building from source, it's not really an option like I thought. The build process immediately unconditionally downloads some artefacts for jps-bootstrap, which can be worked around with MASTER_SITES/DISTFILES grouping and extraction, but they appear to be Linux binaries. It appears that even for previous versions where JetBrains provided no-jbr archives, that jps-bootstrap part still ran.

Might be able to nuke the jbr directory after extraction but I haven't had a chance to try yet.
Comment 40 a52ca063 2023-03-15 01:06:56 UTC
Would it be possible to share whatever you have, perhaps attached here, privately, on github, etc.?  Perhaps that will be enough encouragement to get me looking at it.  Divide and conquer.
Comment 41 James Wright 2023-03-15 07:16:24 UTC
Created attachment 240866 [details]
update intellij 2022.3.3 patch

Updates IntelliJ to 2022.3.3 from the jetbrains distribution package, and removes the bundled JBR during install.

Note that IntelliJ 2022.3.3 now requires Java 17, so you may have to update your IDEA_JDK env var if already set: IDEA_JDK=/usr/local/openjdk17

Tested on FreeBSD 13.2-STABLE, throws a couple of warnings during loading and exiting, but otherwise seems to work ok.
Comment 42 a52ca063 2023-03-15 12:12:15 UTC
Created attachment 240869 [details]
updated patch for current intellij in ports

The earlier patch doesn't match the version of intellij in the ports tree.  I updated that along with the plist.
Comment 43 a52ca063 2023-03-15 12:45:00 UTC
This built and runs for me.  Thanks James.

One comment, this has been there before with the earlier ports, but on my machines, I make this change so the fonts are smooth:

printf '%s\n' '-Dawt.useSystemAAFontSettings=on' >> /usr/local/share/intellij/bin/idea.vmoptions
printf '%s\n'  '-Dswing.aatext=true' >> /usr/local/share/intellij/bin/idea.vmoptions
printf '%s\n'  '-Dsun.java2d.xrender=true' >> /usr/local/share/intellij/bin/idea.vmoptions

gsed -i 's/^-Dsun.java2d.xrender=false/-Dsun.java2d.xrender=true/' /usr/local/share/intellij/bin/idea64.vmoptions
printf '%s\n'  '-Dawt.useSystemAAFontSettings=on' >> /usr/local/share/intellij/bin/idea64.vmoptions
printf '%s\n'  '-Dswing.aatext=true' >> /usr/local/share/intellij/bin/idea64.vmoptions

Should that be done directly here?  Or, is it just me that has terrible fonts with the default port as it is?
Comment 44 James Wright 2023-03-15 13:16:10 UTC
(In reply to a52ca063 from comment #42)
Thanks for updating it, i inadvertently generated the diff against our previous version rather than the version in ports!

I think there is an a line in the Makefile that needs to be added to your patch to remove some other native libs;

Makefile (around line 48)
 		${WRKSRC}/plugins/cwm-plugin/quiche-native/ \

Also need to update the pkg-plist because those files also need removing from there, sorry!
Comment 45 James Wright 2023-03-15 13:22:53 UTC
(In reply to a52ca063 from comment #43)
The fonts have always looked fine (smooth) here without any additional changes, so not what is going on with that, i'll check again later today!
Comment 46 James Wright 2023-03-16 03:21:43 UTC
Created attachment 240888 [details]
Updated java/intellij 2022.3.3 patch

Updated patch for upgrade to 2022.3.3, including following fixes;
1) Fixed JNA loading error by adding dependency on devel/jna
2) Fixed Terminal window errors by including dependency on devel/jetbrains-pty4j
3) Removed old JRE8 workaround of setting of sun.java2d.xrender=false

Tested on FreeBSD 13.2-STABLE (amd64)
IDE can load, build, run, and debug Java projects with no issues encountered so far.
Comment 47 James Wright 2023-03-16 03:26:20 UTC
(In reply to James Wright from comment #46)
Additional Note: The fixes for JNA and PTY4J were borrowed from the devel/jetbrains-webstorm port; 

Perhaps we should consider renaming this port to jetbrains-intellij or jetbrains-idea in the future for consistency with the other Jetbrains IDEs?
Comment 48 James Wright 2023-03-16 03:47:29 UTC
Added the update diff to Phabricator for review/comment;
Comment 49 a52ca063 2023-03-16 12:50:49 UTC
The updated patch worked for me.
Comment 50 James Wright 2023-03-18 16:28:28 UTC
Created attachment 240951 [details]

Updated diff to disable IDE auto updates and indicate they are managed via FreeBSD Ports.
Comment 51 a52ca063 2023-03-22 23:40:41 UTC
The latest patch also built and ran for me.

Thanks James.