Como aplicar patches no linux

1

Estou tentando construir um kernel usando o comando make . Eu preciso aplicar patches. Todas as correções estão presentes no diretório SOURCES e eu extraí linux-3.8.0 em outro diretório. Eu tenho cerca de 900 arquivos de patch. Os arquivos *.c na pasta linux-3.8.0 têm os nomes abc.c , mas em seus arquivos de correção correspondentes têm os nomes 001abc.c no diretório SOURCES .

Estou construindo no Fedora 16. Como aplico patches?

    
por Hemanth 08.10.2015 / 11:42

2 respostas

2

Os nomes dos arquivos de correção não devem importar. O que (geralmente) importa é o nome do arquivo a ser corrigido, conforme definido nas duas primeiras linhas do próprio arquivo de patch.

Como exemplo

--- /tmp/file.original  2015-10-08 13:02:28.171436259 +0100
+++ /tmp/file   2015-10-08 13:02:31.167408397 +0100
@@ -1,3 +1,3 @@
 This is the file
-This is the original file
+This is the patched version of the file
 This is the file

Isso mostra que o arquivo a ser corrigido é /tmp/file e o patch pode ser aplicado com patch -p0 < patch_file .

    
por 08.10.2015 / 14:08
0

Você pode criar um patch fazendo diff nas duas pastas e aplicá-lo usando o comando patch . Pode ser uma boa ideia ter os mesmos nomes de arquivos nas duas pastas, para facilitar a comparação.

Você também pode usar uma ferramenta como meld para comparar as pastas e escolher as alterações que deseja corrigir / alterar na outra pasta.

    
por 08.10.2015 / 11:53