#66783 closed defect (fixed)

soprano cannot be installed on Apple Silicon because openjdk11-zulu does not build universal x86_64/arm64

Reported by: smsnobin77 (S M Sarwar) Owned by: kencu (Ken)
Priority: Normal Milestone:
Component: ports Version:
Keywords: arm64 Cc:
Port: soprano, openjdk11-zulu

Description (last modified by jmroot (Joshua Root))

--->  Computing dependencies for okular
Error: Cannot install soprano for the arch 'x86_64' because
Error: its dependency openjdk11-zulu does not build for the required arch by default
Error: and does not have a universal variant.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port okular failed

Change History (7)

comment:1 Changed 22 months ago by jmroot (Joshua Root)

Description: modified (diff)
Keywords: arm64 added
Port: soprano added; okular removed
Summary: arch 'x86_64' related errorsoprano cannot be installed on Apple Silicon

comment:2 Changed 22 months ago by kencu (Ken)

I had a look at this a few weeks ago, and have it installed on my arm64 Mac:

% port -v installed soprano
The following ports are currently installed:
  soprano @2.9.4_5 requested_variants='' platform='darwin 22' archs='x86_64' date='2023-01-02T21:39:50-0800'

see:

comment:ticket:45745:7

Last edited 22 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:3 Changed 21 months ago by kencu (Ken)

let's move that comment here:

So this port can't build universal on an M1 Mac (or perhaps on any Mac) because the JVM isn't universal.

I am not sure if we might hack together a universal java-19 installation for M1 Macs -- it might be possible. 

Edit: I did this for openjdk-18, but it was unstable. https://github.com/kencu/macports-ports/commits/openjdk18universal

But you can install soprano +universal if you disable all the JAVA stuff. To do that, I just forced it all off everywhere, like this:
{{{
% diff -u Portfile `port file soprano`
--- Portfile	2022-12-29 23:19:54
+++ /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/devel/soprano/Portfile	2023-01-02 14:43:19
@@ -2,7 +2,7 @@
 
 PortSystem          1.0
 PortGroup           kde4 1.1
-PortGroup           java 1.0
+#PortGroup           java 1.0
 
 name                soprano
 version             2.9.4
@@ -28,9 +28,9 @@
                     size    1958856
 
 # Required java version.
-java.version        11+
+#java.version        11+
 # LTS JDK port to install if required java not found
-java.fallback       openjdk11
+#java.fallback       openjdk11
 
 depends_lib-append  port:strigi \
                     port:raptor2 \
@@ -49,6 +49,14 @@
 
 configure.args-append \
                     -DSOPRANO_DISABLE_CLUCENE_INDEX=1
+
+# prevent finding java if installed
+configure.env-append "JAVA_HOME="
+configure.args-append -DJAVA_AWT_INCLUDE_PATH= \
+                      -DJAVA_AWT_LIBRARY= \
+                      -DJAVA_INCLUDE_PATH= \
+                      -DJAVA_INCLUDE_PATH2= \
+                      -DJAVA_JVM_LIBRARY=
 
 livecheck.type      sourceforge
 livecheck.url       http://sourceforge.net/projects/soprano/files/Soprano/
}}}


if soprano is really disabled badly without JAVA support, then some other plan will be needed.

comment:4 Changed 21 months ago by kencu (Ken)

has duplicate #66940

comment:5 Changed 21 months ago by kencu (Ken)

Summary: soprano cannot be installed on Apple Siliconsoprano cannot be installed on Apple Silicon because openjdk11-zulu does not build universal x86_64/arm64

comment:6 Changed 21 months ago by kencu (Ken)

Port: openjdk11-zulu added

comment:7 Changed 21 months ago by kencu (Ken)

Owner: set to kencu
Resolution: fixed
Status: newclosed

In 0af732b43cb96a154a45f391d9d9f93b004bcc2f/macports-ports (master):

soprano: disable java backend

the JavaVM requirement is a problem, as there is no current universal JavaVM for arm64/x86_64
and the kde ports can't build as arm64. So they would need an x86_64 JavaVM installed if there
is one. Any JavaVM the user has installed on an arm Mac is unlikely to be Intel arch.
just disable the java backend to allow the kde4 ports to build.

closes: #66783
closes: #45745

Note: See TracTickets for help on using tickets.