В секции %files должны быть указаны только те файлы и каталоги, которые принадлежат собираемому пакету.
Tо есть, если написать
то каталоги /usr/bin, /usr/lib/menu и /usr/share будут показаны как принадлежащие вашему пакету, что очевидно неверно.
в то же время если указывать только файлы, родительский каталог будет создан автоматически, но не будет принадлежать ни одному пакету, что тоже неправильно.
Нужно прописывать *каталоги*, по смыслу принадлежащие вашей программе, и *только* их. Все остальные файлы описывать как файлы (а не содержащие их каталоги):
не %_bindir, а %_bindir/*
не %_iconsdir, а %_iconsdir/*/*/*/*
не %_datadir/applnk, а %_datadir/applnk/Utilities/*
но не
а весь *каталог*
Если надо _исключить_ файл или каталог из пакета (например, чтобы разместить его в другом подпакете или просто за ненадобностью), это можно сделать либо файловыми масками, либо — что обычно более надёжно, удобно и понятно — при помощи %exclude: