On 25 January 2016 at 03:40, Michael Šimáček wrote: > On 2016-01-24 03:15, Orcan Ogetbil wrote: >> >> 2- When the package is built with %mvn_build and installed with >> %mvn_install the jar files get installed into >> /usr/share/java/tuxguitar/. But looking at the launcher script, the >> application expects the jar files to be in /usr/share/tuxguitar/. Is >> there a way to tell maven to install the jar files there instead >> (these are application jars, not shared libraries) ? >> > > There is, but since the launcher script doesn't do much more than finding > system Java, I would suggest not using upstream launcher script, but > generating your own with %jpackage_script, which should look for stuff in > the right directories. > See: > https://fedorahosted.org/released/javapackages/doc/#_generating_application_shell_scripts > Great. I can certainly give that a shot. How do I tell %jpackage_script that I want to pass some additional flags to java, such as -Xmx512m ? > In case you still think you need the jar files in /usr/share/tuxguitar No not really. It was the way we did in tuxguitar-1.2 but I am fine either way as long as the application launches (and it does when I set the full CLASSPATH to /usr/share/java/tuxguitar/) Best, Orcan On 25 January 2016 at 03:40, Michael Šimáček <msimacek@xxxxxxxxxx> wrote: > On 2016-01-24 03:15, Orcan Ogetbil wrote: >> >> Hi folks, >> >> It's been a while. I am giving a shot to update our tuxguitar package >> from 1.2 to the recent 1.3. The new release comes with a build system >> switch from ant to maven. I do not have much experience with maven, so >> I tried to follow the packaging instructions [1] which I found quite >> useful. I managed to build the package from source, but I still have 4 >> problems: >> >> 1- tuxguitar-1.3 has an itext5 dependency, but we only ship itext2 in >> Fedora. I tried to disable the tuxguitar-pdf plugin (which uses itext) >> by various combinations of %pom_remove_dep, %pom_remove_plugin, >> %pom_disable_module. The following takes me a couple steps further >> >> %pom_remove_dep -r com.itextpdf:itextpdf >> %pom_remove_dep -r com.itextpdf.tool:xmlworker >> >> but I end up getting: >> >> [ERROR] Failed to execute goal on project tuxguitar-pdf: Could not >> resolve dependencies for project >> org.herac.tuxguitar:tuxguitar-pdf:jar:1.3.0: The following artifacts >> could not be resolved: com.itextpdf:itextpdf:jar:SYSTEM, >> com.itextpdf.tool:xmlworker:jar:SYSTEM: Cannot access swt-repo >> (https://swt-repo.googlecode.com/svn/repo/) in offline mode and the >> artifact com.itextpdf:itextpdf:jar:SYSTEM has not been downloaded from >> it before. -> [Help 1] >> >> So, I worked around by patching the pom.xml file and removed the >> dependency by hand. I am pretty sure there is a better way of doing >> this with the maven macros. >> >> 2- When the package is built with %mvn_build and installed with >> %mvn_install the jar files get installed into >> /usr/share/java/tuxguitar/. But looking at the launcher script, the >> application expects the jar files to be in /usr/share/tuxguitar/. Is >> there a way to tell maven to install the jar files there instead >> (these are application jars, not shared libraries) ? >> > > There is, but since the launcher script doesn't do much more than finding > system Java, I would suggest not using upstream launcher script, but > generating your own with %jpackage_script, which should look for stuff in > the right directories. > See: > https://fedorahosted.org/released/javapackages/doc/#_generating_application_shell_scripts > > In case you still think you need the jar files in /usr/share/tuxguitar, you > should still install them to /usr/share/java and put a symlink into > /usr/share/tuxguitar. This should do the trick: > %mvn_file ':{*}' %{name}/@1 /usr/share/%{name}/@1 > (It uses a glob pattern so you don't need to do it for each artifact in a > for loop. ':{*}' is a pattern that captures artifact ID, which can be then > referenced in file paths in with @1) > >> 3- I manually moved the jar files into /usr/share/tuxguitar/. The >> launcher calls the entry point in tuxguitar.jar. But this jar doesn't >> find the other jars, for example the tuxguitar-editor-utils.jar, and >> the application doesn't launch. I can add this jar file and the other >> 15 jar files to the CLASSPATH in the lancher script, but I am not sure >> this is the right way. I didn't have to do this with ant. With ant, >> the tuxguitar.jar somehow knew about the other jars. How can we fix >> this? > > > As with the previous item, I'd suggest generating the launcher script with > %jpackage_script. There you can just specify "tuxguitar" in the classpath > argument and it should find the jars. > >> >> 4- There are a bunch of supplementary files (.desktop file, icons, >> mime xmls, the launcher script etc) which are listed in the main >> pom.xml file, but %mvn_install doesn't install them. I had to copy >> them manually to the $RPM_BUILD_ROOT. Is there a way to do this with >> better? > > > I think those need to be installed manually. (but script generated with > %jpackage_script should install itself automatically) > >> >> My current work is at >> https://oget.fedorapeople.org/tuxguitar/tuxguitar.spec >> https://oget.fedorapeople.org/tuxguitar/tuxguitar-1.3.0-0.fc23.src.rpm >> >> Note that I had to remove some SF2, EXE and DLL files from the source >> tarball, as their license situations were unclear. >> >> I would be happy if someone knowledgeable with maven could take a look >> and give me some clues. >> >> Best, >> Orcan >> >> [1] https://fedorahosted.org/released/javapackages/doc/#maven >> -- >> java-devel mailing list >> java-devel@xxxxxxxxxxxxxxxxxxxxxxx >> https://admin.fedoraproject.org/mailman/listinfo/java-devel >> > -- java-devel mailing list java-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/java-devel