audiveris icon indicating copy to clipboard operation
audiveris copied to clipboard

Unable to build, seems jPodRenderer is gone

Open weidi opened this issue 4 years ago • 40 comments

#6 0.458 Cloning into 'audiveris'...
#6 18.42 Downloading https://services.gradle.org/distributions/gradle-7.3-bin.zip
#6 19.10 ..............................................................................................................
#6 23.76
#6 23.77 Welcome to Gradle 7.3!
#6 23.77
#6 23.77 Here are the highlights of this release:
#6 23.77  - Easily declare new test suites in Java projects
#6 23.77  - Support for Java 17
#6 23.77  - Support for Scala 3
#6 23.77
#6 23.77 For more details see https://docs.gradle.org/7.3/release-notes.html
#6 23.77
#6 23.85 Starting a Gradle Daemon (subsequent builds will be faster)
#6 28.15
#6 28.16 > Configure project :
#6 28.16 targetOS=linux-x86_64
#6 29.35
#6 29.35 > Task :git_build
#6 29.45 > Task :generateProgramId
#6 35.85 > Task :compileJava FAILED
#6 35.85
#6 35.85 FAILURE: Build failed with an exception.
#6 35.85
#6 35.85 * What went wrong:
#6 35.85 Execution failed for task ':compileJava'.
#6 35.85 > Could not resolve all files for configuration ':compileClasspath'.
#6 35.86    > Could not find de.intarsys.opensource:jPodRenderer:5.6.
#6 35.86      Searched in the following locations:
#6 35.86        - https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom
#6 35.86        - file:/root/.m2/repository/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom
#6 35.86        - https://repo.maven.apache.org/maven2/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom
#6 35.86      Required by:
#6 35.86          project :
#6 35.86
#6 35.86 * Try:
#6 35.86 > Run with --stacktrace option to get the stack trace.
#6 35.86 > Run with --info or --debug option to get more log output.
#6 35.86 > Run with --scan to get full insights.
#6 35.86
#6 35.86 * Get more help at https://help.gradle.org
#6 35.86
#6 35.86 BUILD FAILED in 17s
#6 35.86 3 actionable tasks: 3 executed

weidi avatar Dec 26 '21 21:12 weidi

Strange, it builds on my machine.

Google gave me https://mvnrepository.com/artifact/de.intarsys.opensource/jPodRenderer/5.6

Could you tell me:

  • your git branch (development or master)
  • your Java version (11 or 17)

hbitteur avatar Dec 27 '21 10:12 hbitteur

According to your message log, this must be the development branch (which pulls Gradle 7.3). And on development branch, the build.gradle now requires Java 17 (since a couple of days) So, check if Java 17 is available on your machine.

See commit 463a0639919817928dc1113b0c44b1a7b3502c29

hbitteur avatar Dec 27 '21 10:12 hbitteur

I had Java 11 but tried with java 17 now but still same issue. It seems that also all public links on mvnrepository pointing to 5.6 are gone, the only list 5.5.1 and 5.3 https://mvnrepository.com/artifact/de.intarsys.opensource/jPodRenderer image

Trying to download .jar manually also gives empty dir https://repo.spring.io/ui/native/plugins-release/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.jar

https://repo.maven.apache.org/maven2/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom -> 404 https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom -> 404

weidi avatar Dec 27 '21 11:12 weidi

Just tried with a debian container but seeing the same issue as with the other one based on alpine

weidi avatar Dec 27 '21 18:12 weidi

Tried on windows and same issue again.

weidi avatar Dec 28 '21 15:12 weidi

Hello friends, can you use Intellj IDEA to run this project? I ran into the same problem as you when using GIt ` What went wrong: Execution failed for task ':compileJava'.

Could not resolve all files for configuration ':compileClasspath'. Could not find de.intarsys.opensource:jPodRenderer:5.6. Searched in the following locations: - https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom - file:/C:/Users/23612/.m2/repository/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom - https://repo.maven.apache.org/maven2/de/intarsys/opensource/jPodRenderer/5.6/jPodRenderer-5.6.pom Required by: project `

Druid-J avatar Dec 29 '21 01:12 Druid-J

We still have to find out where this JPodRenderer v 5.6 has gone

hbitteur avatar Dec 29 '21 08:12 hbitteur

Shall i raise a ticket with intarsys ?

weidi avatar Dec 29 '21 09:12 weidi

Yes, please do so. At least we should learn what is happening.

hbitteur avatar Dec 29 '21 09:12 hbitteur

Hi, this is Elfi from intarsys. We got your support ticket. The artifacts in the public Maven repositories were never made by us. Your best bet is to download all artifacts from Sourceforge and put them in a local repository.

eheck-is avatar Dec 29 '21 10:12 eheck-is

building with 5.5.1 is possible but i´m sure this will break some internal usage. I have no clue on how to get this working again.

weidi avatar Dec 30 '21 20:12 weidi

Maxim is going to take care of this V5.6 availability. He will have to re-publish everything on maven central.

Meanwhile, you can try to build with 5.5.1 and see what happens. After all, we use this software just to load PDF as images, nothing more, so it might work enough for us.

hbitteur avatar Dec 30 '21 20:12 hbitteur

5.5.1 seems working for me (at least with a windows build)

weidi avatar Dec 31 '21 09:12 weidi

Good news, thanks.

hbitteur avatar Dec 31 '21 16:12 hbitteur

I have added a warning at beginning of Audiveris README.md file to call visitors attention on JPodRenderer component, temporarily downgraded from 5.6 to 5.5.1, the time Maxim comes with a real solution.

Users can build with 5.5.1, basic processing of PDF files seems OK.

hbitteur avatar Jan 01 '22 18:01 hbitteur

Seems 5.5.1 is not processing as 5.6 with error Could not initialize class de.intarsys.cwt.freetype.Freetype

INFO  [Wach auf meins Herzens Schöne_Piano]                      Book 485  | 1 sheet in /input/Wach auf meins Herzens Schöne_Piano.pdf
INFO  []                      Book 2069 | Stored /book.xml
INFO  []                      Book 2015 | Book stored as /output/pdf/Wach auf meins Herzens Schöne_Piano/Wach auf meins Herzens Schöne_Piano.omr
INFO  []                      Book 1711 | Book reaching PAGE on sheets:[#1]
INFO  [Wach auf meins Herzens Schöne_Piano]            StepMonitoring 96   | LOAD
WARN  [Wach auf meins Herzens Schöne_Piano]                 SheetStub 1048 | Error in performing [LOAD, BINARY, SCALE, GRID, HEADERS, STEM_SEEDS, BEAMS, LEDGERS, HEADS, STEMS, REDUCTION, CUE_BEAMS, TEXTS, MEASURES, CHORDS, CURVES, SYMBOLS, LINKS, RHYTHMS, PAGE] java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class de.intarsys.cwt.freetype.Freetype
java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class de.intarsys.cwt.freetype.Freetype
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205)
        at org.audiveris.omr.sheet.SheetStub.doOneStep(SheetStub.java:1346)
        at org.audiveris.omr.sheet.SheetStub.reachStep(SheetStub.java:1032)
        at org.audiveris.omr.sheet.Book.reachBookStep(Book.java:1768)
        at org.audiveris.omr.sheet.Book.transcribe(Book.java:2131)
        at org.audiveris.omr.sheet.Book.export(Book.java:527)
        at org.audiveris.omr.CLI$ProcessingTask.processBook(CLI.java:549)
        at org.audiveris.omr.CLI$CliTask.call(CLI.java:643)
        at org.audiveris.omr.Main.runBatchTasks(Main.java:379)
        at org.audiveris.omr.Main.main(Main.java:167)
        at Audiveris.main(Audiveris.java:49)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class de.intarsys.cwt.freetype.Freetype
        at de.intarsys.pdf.platform.cwt.font.freetype.FreetypeFontFactory.getLibrary(Unknown Source)
        at de.intarsys.pdf.platform.cwt.font.freetype.FreetypeFontFactory.createPlatformFont(Unknown Source)
        at de.intarsys.pdf.platform.cwt.rendering.CSPlatformDevice.textSetFont(Unknown Source)
        at de.intarsys.pdf.content.CSDeviceBasedInterpreter.render_Tf(Unknown Source)
        at de.intarsys.pdf.content.CSInterpreter.process(Unknown Source)
        at de.intarsys.pdf.content.CSInterpreter.process(Unknown Source)
        at de.intarsys.pdf.content.CSDeviceBasedInterpreter.process(Unknown Source)
        at org.audiveris.omr.image.ImageLoading$JPodLoader.getImage(ImageLoading.java:468)
        at org.audiveris.omr.sheet.Book.loadSheetImage(Book.java:1570)
        at org.audiveris.omr.step.LoadStep.doit(LoadStep.java:71)
        at org.audiveris.omr.step.OmrStep.doit(OmrStep.java:185)
        at org.audiveris.omr.sheet.SheetStub.lambda$doOneStep$4(SheetStub.java:1331)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
INFO  [Wach auf meins Herzens Schöne_Piano]                      Book 2089 | Book{Wach auf meins Herzens Schöne_Piano} storing
INFO  [Wach auf meins Herzens Schöne_Piano]                      Book 2069 | Stored /book.xml
INFO  [Wach auf meins Herzens Schöne_Piano]                     Sheet 1225 | Stored /sheet#1/sheet#1.xml
INFO  [Wach auf meins Herzens Schöne_Piano]                      Book 2015 | Book stored as /output/pdf/Wach auf meins Herzens Schöne_Piano/Wach auf meins Herzens Schöne_P

weidi avatar Jan 01 '22 22:01 weidi

I suppose you were not on Windows. This reminds me of this section that deals with dependencies on Freetype, for Linux and MacOS.

hbitteur avatar Jan 01 '22 22:01 hbitteur

Will look into this, actually i fixed this problem some time ago in my alpine container but seems that java17 changed some things i have to look into now. Another thing i just experienced is that i can successfully build from master branch (openjdk11) that still requires jPodRenderer 5.6 but at the same time building development branch (openjdk17) compile fails on missing jPodRenderer.

This makes me think of an issue with openjdk17 and maybe not the mvn repository.

openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-alpine-r0)
OpenJDK 64-Bit Server VM (build 17.0.1+12-alpine-r0, mixed mode, sharing)

weidi avatar Jan 01 '22 23:01 weidi

For Audiveris project, development is always ahead of master, because we develop and commit on development branch and push to master branch only when a new release is published.

So yes, today:

  • master still requires Java 11 and JPodRenderer 5.6
  • development requires Java 17 and tentatively JPodRenderer 5.5.1 to temporarily replace JPodRenderer 5.6

hbitteur avatar Jan 02 '22 08:01 hbitteur

I just wanted to say that java 11 is able to resolve jpodrenderer 5.6 whereas java17 is not.

weidi avatar Jan 02 '22 08:01 weidi

Seems 5.5.1 is not processing as 5.6 with error Could not initialize class de.intarsys.cwt.freetype.Freetype

That's because the older version was made before Linux distributions added numbers to libfreetype. If you can live with a workaround, you can install libfreetype-dev, that still has a libfreetype.so without the number

eheck-is avatar Jan 04 '22 10:01 eheck-is

@eheck-is Hallo Elfi, frohes neues Jahr und herzlich willkommen in unserem Forum!

Having all recent Intarsys binaries available via Maven Central would be actually a great thing! Our project uses the Gradle build tool that makes building and running Java software pretty convenient and easy. This convenience owes a lot to the automatic dependency management. Manually pulling JARs from Sourceforge and putting them into some predefined location would unnecessarily complicate our build process. It's also error-prone because we have to ensure that all dependencies are satisfied (it isn't as easy as it sounds because JPodRenderer has hidden platform-specific dependencies not included in the jars at Sourceforge!) We could surely write a script that does it automatically but doing so we will be reinventing the wheel instead of benefiting from already working tools 😄

I'd gladly step in and upload 5.6 binaries to Maven Central like I did five years ago, see this ticket. Back then, I uploaded everything to JCenter that's unfortunately not available anymore. Getting anything adopted by Maven Central is known to be a pain in the ass. Let's hope the upload procedure has been simplified since then!

Anyway, I would undertake that challenge but I will likely need an explicit permission from Intarsys for publishing the binaries in the Maven Central repository. Could you please discuss this topic with your colleagues?

I also remember a message by Michael Traut from 2017 writing me about the plans of switching future releases of the JPod libraries (from Eclipse) to Gradle and creating a Git repository for them. Is that still under discussion?

Finally, I want to thank you and your colleagues for bringing us these amazing PDF rendering tools!

maximumspatium avatar Jan 09 '22 20:01 maximumspatium

hi @maximumspatium , ein schönes neues Jahr auch dir und eurem Projekt...

So, five years already... Our plans are mostly reality now, at least regarding using gradle und git. Bad news is that there has been no demand on improving infrastructure from external users since then, so we have skipped activities on this... In short: still no public current GIT repo or binary repo.

I see your point and will start approval process with maven for intarsys. I appreciate your offer to do this yourself but i think that we should be the owner/administrator of these coordinates. I hope i can come back if i have additional questions and will keep you informed here.

Regards Michael

mtraut avatar Jan 10 '22 11:01 mtraut

hi @maximumspatium ,

as it seems i have already an account that is valid for publishing on "de.intarsys.opensource". But i do not have the required artifacts (as we have never prepared them)... Is there a safe way you can forward me the artifacts that need to be re-published?

regards Michael

mtraut avatar Jan 10 '22 12:01 mtraut

@mtraut

Our plans are mostly reality now, at least regarding using gradle und git.

This is very good news!

Fortunately I still have all required artifacts on my hard drive 😸

Is there a safe way you can forward me the artifacts that need to be re-published?

I could upload them all to Github for you to pull just like I did with iscwt. This way is probably the safest one. Another possibility: you grant me the write access to a Git repository of yours and I'll push the artifacts there...

maximumspatium avatar Jan 10 '22 13:01 maximumspatium

@maximumspatium, uploading to repos of yours would be fine. If i can build and sign the artifacts, i will request an upload with sonatype.

mtraut avatar Jan 10 '22 15:01 mtraut

@mtraut I've put all jPodRenderer 5.6 artifacts + required pommes 🤓 to a repository of mine: Several elements of the POM files like developer URL still need to be fixed. I leave this task to you. I'm going to open some issues attached to the above repository so we can discuss open questions. Thank you again for your help!

maximumspatium avatar Jan 18 '22 15:01 maximumspatium

great, i will try my best to get this done this week.

Thank you!

mtraut avatar Jan 19 '22 07:01 mtraut

Even when too late, it is done...

@maximumspatium, thank you for providing me the artifacts. If anything is broken, contact me.

mtraut avatar Jan 26 '22 10:01 mtraut

@mtraut Thank you!

Audiveris still doesn't build with jPodRenderer 5.6 because isrt-4.11 is missing in Maven Central. It's my fault - I forgot to include it in my repository. Sorry for that! I rebuilt artifacts for isrt-4.11 and pushed them to https://github.com/maximumspatium/jPodRenderer56-maven

Would you kindly upload it to Maven Central? Thank you in advance!

maximumspatium avatar Jan 26 '22 16:01 maximumspatium