По мотивам опакечивания mpio, который включает в себя ядерный модуль, //me пришёл к двум выводам: 1) внутри спека надо знать версию ядра, чтобы делать к ней привязку пакета с модулем; 2) при определении версии надо ориентироваться не на `uname -r`, а на /usr/include/linux/version.h, в том числе переучивать configure. Предлагаемые макросы для /etc/rpm/macros.d/kernel: %define kernel_version %(grep UTS_RELEASE %kinclude/version.h | awk '{print $3}' | tr -d '"') %define kernel_base_version %(A=%kernel_version; echo ${A%%%%-*}) %define kernel_release %(A=%kernel_version; echo ${A##*-}) %define kernel_flavour %(A=%kernel_version; B=${A#*-}; echo ${B%%-*}) %define kernel_modules_basedir /lib/modules/%kernel_version # за правильность регулярного выражения не ручаюсь, но его смысл, надеюсь, понятен.. %define patch_detect_kernel_version subst 's,(`uname -r`)|($\(uname -r\)),% kernel_version,g' %define kernel_module_basename kernel-modules-%name %define kernel_module_name %kernel_module_basename-%kernel_flavour %define kernel_module_provides %kernel_module_basename-%kernel_version Пример применения можно посмотреть в mpio.spec Steps to Reproduce: x Actual Results: x Expected Results: x
Нет, так дело не пойдёт. Модули для ядра должны собираться отдельно от userspace-части - хотя бы потому, что при обновлении ядра необходимо пересобирать и модули, и для автоматизации этого процесса шаблон spec для пакета с модулями должен лежать в kernel CVS. В качестве образца можно посмотреть пакеты lm_sensors, fglrx_glx - там при сборке пакета с userspace-частью дополнительно собирается соответствующий пакет kernel-source-%module_name, содержащий исходники для сборки модулей ядра. Затем этот собранный пакет используется при сборке пакетов kernel-modules-%module_name-%flavour (для каждого варианта ядра собирается свой пакет). Пакет mpio в таком виде никуда не годится. Модуль, кстати, содержит множество ошибок, и к тому же его вообще не следовало писать - для такого обмена с устройством предназначена usbfs и использующая её библиотека libusb.