Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing Wapiti for linux arm64 #1230

Open
AaronNGray opened this issue Jan 13, 2025 · 3 comments
Open

Missing Wapiti for linux arm64 #1230

AaronNGray opened this issue Jan 13, 2025 · 3 comments

Comments

@AaronNGray
Copy link

Operating System and architecture (arm64, amd64, x86, etc.)

Ubuntu 22.04.5 LTS - arm64

What is your Java version

docker openjdk:17-slim

Log and information

sudo docker run --rm --init --ulimit core=0 -p 8080:8070 -p 8081:8071 aaronngray/grobid:0.8.2-SNAPSHOT
WARN  [2025-01-13 22:42:56,715] org.hibernate.validator.internal.properties.javabean.JavaBeanExecutable: HV000254: Missing parameter metadata for ResponseMeteredLevel(String, int), which declares implicit or synthetic parameters. Automatic resolution of generic type information for method parameters may yield incorrect results if multiple parameters have the same erasure. To solve this, compile your code with the '-parameters' flag.
INFO  [2025-01-13 22:42:56,850] io.dropwizard.core.server.DefaultServerFactory: Registering jersey handler with root path prefix: /
INFO  [2025-01-13 22:42:56,852] io.dropwizard.core.server.DefaultServerFactory: Registering admin handler with root path prefix: /
INFO  [2025-01-13 22:42:57,251] org.grobid.core.main.GrobidHomeFinder: Grobid config file location was not explicitly set via 'org.grobid.config' system variable, defaulting to: /opt/grobid/grobid-home/config/grobid.yaml
INFO  [2025-01-13 22:42:57,274] org.grobid.service.GrobidRestService: Initiating Servlet GrobidRestService
INFO  [2025-01-13 22:42:57,275] org.grobid.core.main.LibraryLoader: Loading external native sequence labelling library
INFO  [2025-01-13 22:42:57,278] org.grobid.core.main.LibraryLoader: Loading Wapiti native library...
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) [Guice/ErrorInjectingConstructor]: UnsatisfiedLinkError: /opt/grobid/grobid-home/lib/lin-64/libwapiti.so: /opt/grobid/grobid-home/lib/lin-64/libwapiti.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
  at GrobidRestService.<init>(GrobidRestService.java:80)
  at GrobidServiceModule.configure(GrobidServiceModule.java:33)
      \_ installed by: Elements$ElementsAsModule -> GrobidServiceModule
  while locating GrobidRestService

Learn more:
  https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR

1 error

======================
Full classname legend:
======================
Elements$ElementsAsModule: "com.google.inject.spi.Elements$ElementsAsModule"
GrobidRestService:         "org.grobid.service.GrobidRestService"
GrobidServiceModule:       "org.grobid.service.modules.GrobidServiceModule"
========================
End of classname legend:
========================

	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:589)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:190)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113)
	at com.google.inject.Guice.createInjector(Guice.java:87)
	at ru.vyarus.dropwizard.guice.injector.DefaultInjectorFactory.createInjector(DefaultInjectorFactory.java:20)
	at ru.vyarus.dropwizard.guice.module.GuiceyRunner.createInjector(GuiceyRunner.java:109)
	at ru.vyarus.dropwizard.guice.GuiceBundle.run(GuiceBundle.java:140)
	at ru.vyarus.dropwizard.guice.GuiceBundle.run(GuiceBundle.java:101)
	at io.dropwizard.core.setup.Bootstrap.run(Bootstrap.java:199)
	at io.dropwizard.core.cli.EnvironmentCommand.run(EnvironmentCommand.java:65)
	at io.dropwizard.core.cli.ConfiguredCommand.run(ConfiguredCommand.java:98)
	at io.dropwizard.core.cli.Cli.run(Cli.java:78)
	at io.dropwizard.core.Application.run(Application.java:94)
	at org.grobid.service.main.GrobidServiceApplication.main(GrobidServiceApplication.java:120)
Caused by: java.lang.UnsatisfiedLinkError: /opt/grobid/grobid-home/lib/lin-64/libwapiti.so: /opt/grobid/grobid-home/lib/lin-64/libwapiti.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
	at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
	at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
	at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2389)
	at java.base/java.lang.Runtime.load0(Runtime.java:755)
	at java.base/java.lang.System.load(System.java:1953)
	at org.grobid.core.main.LibraryLoader.load(LibraryLoader.java:122)
	at org.grobid.core.factory.AbstractEngineFactory.init(AbstractEngineFactory.java:72)
	at org.grobid.service.GrobidRestService.<init>(GrobidRestService.java:90)
	at org.grobid.service.GrobidRestService$$FastClassByGuice$$30a747.GUICE$TRAMPOLINE(<generated>)
	at org.grobid.service.GrobidRestService$$FastClassByGuice$$30a747.apply(<generated>)
	at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:114)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
	... 12 more

Further information

/opt/grobid/grobid-home/lib/lin-64/libwapiti.so: /opt/grobid/grobid-home/lib/lin-64/libwapiti.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
@lfoppiano lfoppiano changed the title [arm64] /opt/grobid/grobid-home/lib/lin-64/libwapiti.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform) Missing Wapiti for linux arm64 Jan 14, 2025
@lfoppiano
Copy link
Collaborator

OK, We need to support linux arm64, indeed. Also Pdfalto might require that too.

@AaronNGray
Copy link
Author

@lfoppiano Okay I will look into and hopefully attempt to work on ports of both wapiti and pdfalto to Ubuntu ARM64.

@AaronNGray
Copy link
Author

Wapiti built easily without a hitch, pdfalto has a few issues. I am working on automating both builds so we have GitHub actions building releases on GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants