On Sat, Oct 25, 2003 at 12:42:16AM +0600, Andrey Rahmatullin wrote: > Alex Yustasov пишет: > >Здравствуйте! > >В инкоминг/сизифус отправились > > > >4b48f41ed9d96f95fb4d1ad405b67c06 > >kernel-feat-swsusp-2003.10.16-alt2.src.rpm > [...] > > Общее впечатление от патча - он сломан. Весь. > > 1. kernel-feat-swsusp-2003.10.16-alt2 с инкрементным патчем внутри > (2.0rc1 against 2.4.22 + 2.0rc2 against 2.0rc1) в принципе не патчит > ванильное 2.4.22 ядро. А вот обычный (не инкрементный) патч 2.0-rc2 > (http://prdownloads.sourceforge.net/swsusp/swsusp-2.0-rc2-whole.bz2?download) > > патчит нормально. > 2. XFS-ные куски патча не прикладываются, если не приложен сам XFS-патч, > а video-splash-ные - без video-splash. Для таких случаев в kernel-build-tools уже предусмотрено условное приложение патчей. В данном случае, например, патчи 04_swsusp-xfs-option-patch и 05_swsusp-xfs-option-fix следует переложить в подкаталог 04_kernel-feat-fs-xfs, а патч 06_swsusp-1.1-rc10-bootsplash-option - в подкаталог 06_kernel-feat-drivers-video-splash. При этом одновременно будет обеспечен и правильный порядок приложения патчей - независимо от порядка %add_patch_list сначала будут применены патчи, на которые есть такие условные зависимости. > 3. Сам патч конфликтует по drivers/usb/host/usb-ohci.c с > kernel-fix-drivers-usb-2003.09.29-alt1. Конкретно с > 90_08_disable_all_usb.patch. Еще конкретнее - оба пытаются добавить пару > строчек в тело одной коротенькой функциии: > > static int __init ohci_hcd_init (void) > { > return pci_module_init (&ohci_pci_driver); > } > > С этим можно что-то сделать? Ведь либо придется делать один патч > зависящим от другого, либо склеивать их, либо делать их конфликтующими, > и в любом случае не будет выбора между прикладыванием одного из патчей > либо обоих. Или как-то можно? С этим несколько хуже - в частности, сейчас в kernel-build-tools нет средств для наложения патчей при условии _отсутствия_ какого-либо пакета с патчами с списке. Хотя можно извернуться - например, в 10_kernel-fix-drivers-usb/xxx отменить мешающий кусок, потом в 11_yyy наложить свой патч, а далее в 12_kernel-fix-drivers-usb/zzz вернуть отменённые изменения на место (уже объединённые с другими). Но это уж как-то совсем навороченно выглядит. Хотя на самом деле kernel-feat-swsusp-2003.10.16-alt2 как раз должен накладываться после kernel-fix-drivers-usb-2003.09.29-alt1 - а вот в обратном порядке уже не получится. Можно зафиксировать этот порядок - для этого в /usr/src/kernel/patches/kernel-feat-swsusp надо создать подкаталог kernel-fix-drivers-usb (фактически в действие вступит всё тот же механизм условного применения патчей - хотя каталог и пустой, но порядок применения всё равно меняется). Наконец, зависимость на kernel-fix-* не настолько неприятна - вот от жёстких зависимостей на другие kernel-feat-* желательно избавляться (если они не нужны по смыслу патча).