[fedora-java] building new tuxguitar with maven
gil
puntogil at libero.it
Sun Jan 24 11:17:35 UTC 2016
Il 24/01/2016 05:03, Christopher ha scritto:
> On Sat, Jan 23, 2016 at 9:16 PM Orcan Ogetbil <oget.fedora at gmail.com
> <mailto:oget.fedora at gmail.com>> 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
>
>
> Also, one alternative is to update the itext dependency to itext5.
> Another is to patch your project with itext2, and use the xpath macro
> to change the dep version:
> %pom_xpath_set
> "pom:project/pom:dependencyManagement/pom:dependencies/pom:dependency[pom:artifactId='itextpdf']/pom:version"
> "5.???"
> or similar
>
Hi
as already you know, iText 5.x series is NON free
>
> 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.
>
>
> You can't just remove the dependency. You have to disable any module
> which uses that dependency:
> %pom_disable_module <moduledir>
>
> I noticed that the project is structured like a multi-module project,
> but I don't see a <modules> section in the pom.xml. I looked at your
> spec, but I couldn't figure out how the builds in the subdirectories
> are being triggered. Usually, maven triggers them from the parent. I'm
> not sure about this project, though.
>
> Looking at the top-level pom.xml, it also looks like you'll need to
> build with a specific arch-dependent profile active, which you'll
> probably need to manipulate with some %ifarch condition.
>
> 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//. Is
> there a way to tell maven to install the jar files there instead
> (these are application jars, not shared libraries) ?
>
>
> Doesn't matter if they are application jars or shared... they should
> be put in a standard location, because you never know what kind of
> projects may want to reuse these jars as their own dependencies. (for
> example, formatter-maven-plugin, which is not packaged in Fedora, uses
> Eclipse's jars to provide formatting during a maven build according to
> Eclipse's standards when using the IDE... not something Eclipse
> developers probably expected, but very a very useful example of code
> reuse from an application jar).
>
> 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?
>
>
> Don't move the jars. You can symlink them, or change the launch
> scripts to point to the location in the Fedora system. If this is
> problematic, you may also want to work with upstream to make it easier
> by making the actual classpath location more easily configurable.
>
> 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?
>
> [snip]
>
> I think that's pretty normal. Use 'install' to put them in the proper
> location in the buildroot (here's examples from accumulo):
> install -d -m 755 %{buildroot}%{_libdir}/%{name}
> install -p -m 755
> server/native/target/%{name}-native-%{version}/%{name}-native-%{version}/lib%{name}.so
> %{buildroot}%{_libdir}/%{name}
>
i use
%ifarch x86_64
%global bit x86_64
%else
%global bit x86
%endif
Summary: A multitrack tablature editor and player written in
Java-SWT
...
%setup -q -n %{name}-%{version}-src
# Remove NON FREE deps
%pom_remove_dep -r com.itextpdf:itextpdf
%pom_remove_dep -r com.itextpdf.tool:xmlworker
%pom_remove_dep -r com.itextpdf:itextpdf build-scripts/%{name}-linux-%{bit}
%pom_remove_dep -r com.itextpdf.tool:xmlworker
build-scripts/%{name}-linux-%{bit}
%pom_disable_module ../../TuxGuitar-pdf build-scripts/%{name}-linux-%{bit}
%pom_remove_dep -r :tuxguitar-pdf
# Fails to collect eclipse swt artifact
%pom_remove_plugin :maven-dependency-plugin
build-scripts/%{name}-linux-%{bit}
%pom_xpath_set -r pom:org.eclipse.swt.artifactId org.eclipse.swt
%pom_xpath_set -r pom:org.eclipse.swt.artifactId org.eclipse.swt
build-scripts/%{name}-linux-%{bit}
%pom_remove_dep :org.eclipse.swt.gtk.linux.x86
%pom_remove_dep :org.eclipse.swt.gtk.linux.x86_64
%pom_remove_dep :org.eclipse.swt.gtk.linux.ppc
%pom_remove_dep :org.eclipse.swt.win32.win32.x86
%pom_remove_dep :org.eclipse.swt.cocoa.macosx
%pom_remove_dep :org.eclipse.swt.cocoa.macosx.x86_64
%pom_remove_dep :org.eclipse.swt.carbon.macosx
%pom_xpath_inject pom:modules "<module>../../TuxGuitar-alsa</module>
<module>../../TuxGuitar-fluidsynth</module>
<module>../../TuxGuitar-jack</module>
<module>../../TuxGuitar-jack-ui</module>
<module>../../TuxGuitar-oss</module>
<module>../../TuxGuitar-tray</module>
<module>../../TuxGuitar-viewer</module>"
build-scripts/%{name}-linux-%{bit}
# Symilar hack should be done for tuxguitar-fluidsynth and
tuxguitar-jack modules
# Fix parent pom for jni modules
%pom_xpath_set pom:parent/pom:artifactId tuxguitar-alsa-linux-%{bit}
TuxGuitar-alsa
%pom_xpath_inject pom:parent
"<relativePath>../build-scripts/native-modules/tuxguitar-alsa-linux-%{bit}</relativePath>"
TuxGuitar-alsa
%pom_xpath_set pom:parent/pom:artifactId tuxguitar-oss-linux-%{bit}
TuxGuitar-oss
%pom_xpath_inject pom:parent
"<relativePath>../build-scripts/native-modules/tuxguitar-oss-linux-%{bit}</relativePath>"
TuxGuitar-oss
# fix tuxguitar-*.jni.path property
sed -i "s|\${parent.relativePath}|$PWD|" \
build-scripts/native-modules/tuxguitar-alsa-linux-%{bit}/pom.xml \
build-scripts/native-modules/tuxguitar-oss-linux-%{bit}/pom.xml
# Disable gcj support
sed -i "s|\$(shell gcj
-print-file-name=include/)|%{_jvmdir}/java/include
-I%{_jvmdir}/java/include/linux|" \
build-scripts/native-modules/tuxguitar-alsa-linux-%{bit}/pom.xml \
build-scripts/native-modules/tuxguitar-oss-linux-%{bit}/pom.xml
%build
%mvn_build -- -f build-scripts/%{name}-linux-%{bit}/pom.xml
-Dproject.build.sourceEncoding=UTF-8
...
%install
%mvn_install
...
install -d -m 755 %{buildroot}%{_libdir}/%{name}
install -p -m 755
TuxGuitar-alsa/target/build/lib/libtuxguitar-alsa-jni.so
%{buildroot}%{_libdir}/%{name}
install -p -m 755 TuxGuitar-oss/target/build/lib/libtuxguitar-oss-jni.so
%{buildroot}%{_libdir}/%{name}
...
[INFO] Reactor Summary:
[INFO]
[INFO] tuxguitar-lib ...................................... SUCCESS [
5.522 s]
[INFO] tuxguitar-gm-utils ................................. SUCCESS [
0.128 s]
[INFO] tuxguitar-alsa ..................................... SUCCESS [
1.380 s]
[INFO] tuxguitar-editor-utils ............................. SUCCESS [
1.360 s]
[INFO] tuxguitar .......................................... SUCCESS [
3.457 s]
[INFO] tuxguitar-fluidsynth ............................... SUCCESS [
0.109 s]
[INFO] tuxguitar-jack ..................................... SUCCESS [
0.121 s]
[INFO] tuxguitar-jack-ui .................................. SUCCESS [
0.086 s]
[INFO] tuxguitar-oss ...................................... SUCCESS [
0.342 s]
[INFO] tuxguitar-tray ..................................... SUCCESS [
0.054 s]
[INFO] tuxguitar-awt-graphics ............................. SUCCESS [
0.062 s]
[INFO] tuxguitar-compat ................................... SUCCESS [
0.223 s]
[INFO] tuxguitar-viewer ................................... SUCCESS [
0.440 s]
[INFO] tuxguitar-ascii .................................... SUCCESS [
0.092 s]
[INFO] tuxguitar-browser-ftp .............................. SUCCESS [
0.123 s]
[INFO] tuxguitar-community ................................ SUCCESS [
0.536 s]
[INFO] tuxguitar-converter ................................ SUCCESS [
0.246 s]
[INFO] tuxguitar-gervill .................................. SUCCESS [
0.166 s]
[INFO] tuxguitar-gm-settings .............................. SUCCESS [
0.066 s]
[INFO] tuxguitar-gtp ...................................... SUCCESS [
0.221 s]
[INFO] tuxguitar-gtp-ui ................................... SUCCESS [
0.067 s]
[INFO] tuxguitar-gpx ...................................... SUCCESS [
0.109 s]
[INFO] tuxguitar-jsa ...................................... SUCCESS [
0.136 s]
[INFO] tuxguitar-lilypond ................................. SUCCESS [
0.118 s]
[INFO] tuxguitar-midi ..................................... SUCCESS [
0.145 s]
[INFO] tuxguitar-musicxml ................................. SUCCESS [
0.064 s]
[INFO] tuxguitar-ptb ...................................... SUCCESS [
0.141 s]
[INFO] tuxguitar-tef ...................................... SUCCESS [
0.154 s]
[INFO] tuxguitar-tuner .................................... SUCCESS [
0.124 s]
[INFO] tuxguitar-svg ...................................... SUCCESS [
0.134 s]
[INFO] tuxguitar-image .................................... SUCCESS [
0.079 s]
[INFO] tuxguitar-linux-x86 ................................ SUCCESS [
23.078 s]
[INFO]
------------------------------------------------------------------------
regards
.g
>
>
> --
> java-devel mailing list
> java-devel at lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/java-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/java-devel/attachments/20160124/b546ca8a/attachment-0001.html>
More information about the java-devel
mailing list