Bonjour,
avant de donner la solution, quelques remarques pour faire durer le suspense ^^
1) l'utilisation de la macro %define est déconseillée, on préférera %global :
http://fedoraproject.org/wiki/Packaging/Guidelines#.25global_preferred_over_.25define
Ici :
%global subversion 1.5
2) pour les sources hébergées sur Sourceforge, l'URL dans %Source0 est formalisée :
https://fedoraproject.org/wiki/Packaging/SourceURL#Sourceforge.net
Ici :
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{subversion}/%{name}-%{version}/%{name}-src-%{version}.zip
3) Attention aux BuildRequires/Requires avec Java : on ne spécifie pas directement la JVM à utiliser, on ne force que la version le cas échéant :
https://fedoraproject.org/wiki/Packaging/Java#BuildRequires_and_Requires
La règle est grosso modo la suivante :
- si le programme compile avec gcj, « BuildRequires: java-devel » est suffisant, sinon on force l'utilisation d'OpenJDK avec « BuildRequires: java-devel >= 1:1.6.0 » ;
- idem pour les Requires, « -devel » en moins.
Si les instructions de compilation du programme spécifient explicitement un JDK >= 6, ce sera nécessairement OpenJDK. À défaut, ça vaut le coup d'essayer avec gcj.
Ceci dit, dans la pratique, on a tendance à forcer OpenJDK dans tous les cas (surtout dans ton cas, la compilation passe avec gcj, mais la génération de la javadoc plante lamentablement) :
BuildRequires: jpackage-utils
BuildRequires: java-devel >= 1:1.6.0
BuildRequires: ant
3) Ta description fait plus de 80 caractères de larges. Si tu utilises Emacs, un simple M-Q suffit à ajuster correctement ton paragraphe à la bonne largeur.
4) Puisque la cible « jar » dans le build.xml dépend de « build », autant lancer « ant jar » directement :
%build
ant jar
ant docs
5) Si le programme propose plus d'un fichier .jar, tu dois les copier dans un dossier %{name} dans %{_javadir} :
https://fedoraproject.org/wiki/Packaging/Java#Jar_file_naming
Tu dois également copier ces .jar dans %{_javadir} de tel sorte que leur nom comporte le numéro de version, puis créer un lien symbolique vers le même nom sans numéro de version.
Ici (je passe par install avec l'option -D pour créer directement les répertoires de la destination s'ils n'existent pas) :
%install
rm -rf $RPM_BUILD_ROOT
install -Dpm 0644 build/lib/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-%{version}.jar
install -Dpm 0644 build/lib/%{name}-boot.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-boot-%{version}.jar
install -Dpm 0644 build/lib/%{name}-tools.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-tools-%{version}.jar
ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}.jar
ln -s %{name}-boot-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-boot.jar
ln -s %{name}-tools-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-tools.jar
N'oublie pas de mettre à jour en conséquence la section %files de ton .spec.
6) Le dossier api dans build/doc contient la javadoc ; le reste pourrait être mis dans %doc. Au passage tu n'aurais pas besoin d'un sous-paquet « manual » : dans %install :
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}
cp -rp build/docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
rm -r build/docs/api
Et dans %files :
%files
%defattr(-,root,root,-)
%{_javadir}/%{name}
%doc build/docs/*
%files javadoc
%defattr(-,root,root,-)
%{_javadocdir}/%{name}
7) Tu peux rajouter les fichiers changelog.txt et README.txt en %doc :
%files
%defattr(-,root,root,-)
%{_javadir}/%{name}
%doc README.txt changelog.txt build/docs/*
Au passage, quand on a le choix entre ant ou maven pour construire un paquet Java, on privilégie plutôt maven, sauf échec. J'avoue ne pas encore avoir regardé la construction avec Maven.
D'autres remarques suivront peut-être 😉