Вот, что у меня получилось)
%define cname qxplayer
Это не нужно. Это было в спеке qutim, потому-что имя пакета и имя тарбола отличалось. Потому мантейнер и ввел переменную для имени тарбола. И дальше по тексту %cname не нужен, если есть %name.
mkdir -p %buildroot/%_bindir
cp bin/qxplayer %buildroot%_bindir/
Это можно заменить одной строчкой:
%__install -Dp -m0755 bin/%name %buildroot%_bindir/%name
Тем более, что сразу можно передать и атрибуты файла, в данном случае - 755. -Dp - создает каталоги на пути install-а.
mkdir -p %buildroot/%_datadir/%name
cp src/*.h %buildroot/%_datadir/%name/
cp src/*.cpp %buildroot/%_datadir/%name/
Зачем паковать это? Тем более что если и пакуются заголовочные файлы, то в подпакет %name-devel и совершенно в другой каталог.
cp images/{1downarrow.png,adddir.png,configure.png,kaboodleloop.png,pause.png,player_mute.png} %buildroot/%_iconsdir/
cp images/{player_start.png,remove.png,1uparrow.png,clbt.png,file.png,multimedia.png,player_bwd.png} %buildroot/%_iconsdir/
cp images/{player_pause.png,player_stop.png,save.png,about.png,clear.png,juk.png,open.png,player_end.png,player_play.png,play.png} %buildroot/%_iconsdir/
Зачем этот ужас? ;) Да еще и в %_iconsdir? Есть три каталога для иконки программы - %_miconsdir (16x16), %_niconsdir (32x32) и %_liconsdir (64x64). Вот туда и нужно класть исключительно пиктограмму программы в соответствии с размером.
%dir %_datadir/%name
...
%_datadir/%name/
Если уж объявили каталог принадлежащим данному пакету, то упаковку нужно нацелить потом не на него, а на его содержимое:
%_datadir/%name/*
Только напомню - в данном случае это не нужно в пакете.
Осталось добавить чейнчлог, удобно это делать с помощью скрипта add_changelog.