Salut,
Pour les BR, mock sera ton ami. En gros, mock va "installer" une fedora toute neuve, et ajoutera les éventules BR déclarés dans ton spec. Si un BR manque, beh mock compilera pas et te donnera une erreur.
Lors de la compilation, tu as souvent à installer des paquets -devel, ce sont eux qu'il faudra ajouter dans les BR (enfin, en gros...).
Pour ton erreur, ton install essaie de copier un fichier dans /usr/share ; alors qu'il devrait le faire dans %{buildroot}/usr/share... Vu que ton spec à l'air correct, je penche pour un truc codé en dur quelquepart, ou le $DESTDIR pas pris en compte, dans le goût. Il est aussi possible qu'il faille passer des options supplémentaires lors du configure, un ./configure --help dans le dossier ~/rpmbuild/BUILD/tonsoft-version devrait t'aiguiller.
Pour les macros, un exemple, il faut les utiliser dans le Source0. tu as ça :
Source0: http://download.savannah.gnu.org/releases/denemo/denemo-0.8.0.tar.gz
Il faut remplacer par ça :
Source0: http://download.savannah.gnu.org/releases/denemo/%{name}-%{version}.tar.gz
Les macros name et version correspondent ici à des valeurs déclarées dans ton fichier spec. D'autres sont déclarées ailleurs (cf le tuto), comme par exemple :
* %{_datadir} donne /usr/share
* %{_libdir} donne /usr/lib ou /usr/lib64 (en fonction de l'architecture sur laquelle le paquet est buildé - là on voit directement l'intérêt de l'utilisation des macros).
Je plussoie eponyme pour les require, et j'ajoute que t'as visiblement pas compris la différence entre les Requires et les BuildRequires, puisque tu met GCC en requires... Les requires, ce sont les dépendances à l'utilisation du logiciel, pas à sa compilation (BR). gcc ne sera certainement pas requis pour utiliser ton programme. Par ailleurs, il n'est pas utile de spécifier gcc (entre autres) dans les BR. Si t'es pas sûr, tu mets rien en BR, et tu verra ça après avec mock.
Pour tester les requires, il me semble que tu peux aussi le faire avec mock ; puisqu'il va t'installer un environnement de base, tu pourra ensuite t'y "logger" (cf man mock) et exécuter le truc.
Just my two cents