OVH Cloud OVH Cloud

[Kernel] Appliquer un patch ...

8 réponses
Avatar
Eric Leconte
J'en suis a ma premiere compilation du kernel 2.6.12-10 pour y inclure
ce patch :

http://www.lambda-computing.com/projects/dnotify/dnotify-0.1.patch

Par contre je ne sais pas comment faire :)
J'ai decompresse les sources, genere le lien symbolique ... et apres ? ;)

8 réponses

Avatar
FrekoDing
Eric Leconte ecrivait le 10/02/2006 19:08:

Par contre je ne sais pas comment faire :)
J'ai decompresse les sources, genere le lien symbolique ... et apres ? ;)


http://www.labo-linux.org/index.php?page=lumieres&id45

Bon courage. @+

Avatar
ericb
Bonjour,

Eric Leconte ecrivait le 10/02/2006 19:08:


http://www.labo-linux.org/index.php?page=lumieres&id45


C'est très intéressant, merci pour le lien :-)

Je me permets d'ajouter un truc très pratique : l'option "--dry-run"

Cette option simule l'application d'un patch. Très pratique quand le
patch est foireux ;-)



--
ericb

Avatar
Eric Leconte
Bonjour,


Eric Leconte ecrivait le 10/02/2006 19:08:




http://www.labo-linux.org/index.php?page=lumieres&id45



C'est très intéressant, merci pour le lien :-)

Je me permets d'ajouter un truc très pratique : l'option "--dry-run"

Cette option simule l'application d'un patch. Très pratique quand le
patch est foireux ;-)





MErci bien .... Je vais essayer et on verra bien ;)


Avatar
Eric Leconte
Eric Leconte ecrivait le 10/02/2006 19:08:

Par contre je ne sais pas comment faire :)
J'ai decompresse les sources, genere le lien symbolique ... et apres ? ;)



http://www.labo-linux.org/index.php?page=lumieres&id45

Bon courage. @+


Juste une petite precision: J'ai des lignes de ce type en retour de
fonction :

patching file linux/include/linux/dnotify.h
Hunk #1 FAILED at 6.
1 out of 1 hunk FAILED -- saving rejects to file
linux/include/linux/dnotify.h.rej


Cela signifie que le patch a foiré ?


Avatar
ericb
Juste une petite precision: J'ai des lignes de ce type en retour de
fonction :

patching file linux/include/linux/dnotify.h
Hunk #1 FAILED at 6.
1 out of 1 hunk FAILED -- saving rejects to file
linux/include/linux/dnotify.h.rej

Cela signifie que le patch a foiré ?


Oui. Et ce qui n'a pas été appliqué a été enregistré dans dnotify.h.rej
(et dnotify.h.orig a été créé aussi).

Il n'y a que ce problème ou il y a d'autres hunks qui ont foiré ? Parce
que j'ai regardé le patch original, et il a l'air assez important.



--
ericb

Avatar
Eric Leconte

Juste une petite precision: J'ai des lignes de ce type en retour de
fonction :

patching file linux/include/linux/dnotify.h
Hunk #1 FAILED at 6.
1 out of 1 hunk FAILED -- saving rejects to file
linux/include/linux/dnotify.h.rej

Cela signifie que le patch a foiré ?



Oui. Et ce qui n'a pas été appliqué a été enregistré dans dnotify.h.rej
(et dnotify.h.orig a été créé aussi).

Il n'y a que ce problème ou il y a d'autres hunks qui ont foiré ? Parce
que j'ai regardé le patch original, et il a l'air assez important.





Ben non .. il y en a plusieurs :/
C'ets pour ca que je trouve ca assez embetant :/

Dans ces cas ... on peut faire quoi ? attendre et prier pour qu'un
prochain marche ? :p


Avatar
Eric Leconte

Juste une petite precision: J'ai des lignes de ce type en retour de
fonction :

patching file linux/include/linux/dnotify.h
Hunk #1 FAILED at 6.
1 out of 1 hunk FAILED -- saving rejects to file
linux/include/linux/dnotify.h.rej

Cela signifie que le patch a foiré ?



Oui. Et ce qui n'a pas été appliqué a été enregistré dans dnotify.h.rej
(et dnotify.h.orig a été créé aussi).

Il n'y a que ce problème ou il y a d'autres hunks qui ont foiré ? Parce
que j'ai regardé le patch original, et il a l'air assez important.






Voici en fait le resultat exact de la fonction patch :
J'ai noté dans le fichier patch l'acces a un repertoire "vanilla" en
doublon avec "linux".
Peut etre que ca a un interet... je n'ai pas ce repertoire. Je crois que
que vanilla est present dans une distrib debian pure ... moi je suis
sous Ubuntu et je tente de patcher un kernel 2.6.12 (linux-source-2.6.12)



------------------------------------------------------------------------------------------
:/usr/src$ patch -p0 < dnotify-0.1.patch
patching file linux/fs/attr.c
Reversed (or previously applied) patch detected! Assume -R? [n] o
Apply anyway? [n] o
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file linux/fs/attr.c.rej
patching file linux/fs/dcache.c
Hunk #1 FAILED at 21.
Hunk #2 succeeded at 85 with fuzz 1 (offset 8 lines).
Hunk #3 succeeded at 765 (offset 34 lines).
Hunk #4 succeeded at 1352 (offset 108 lines).
1 out of 4 hunks FAILED -- saving rejects to file linux/fs/dcache.c.rej
patching file linux/fs/dnotify.c
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file linux/fs/dnotify.c.rej
patching file linux/fs/fcntl.c
Hunk #1 succeeded at 378 with fuzz 2 (offset 32 lines).
patching file linux/fs/namei.c
Hunk #1 FAILED at 1145.
Hunk #2 FAILED at 1446.
Hunk #3 FAILED at 1519.
Hunk #4 FAILED at 1614.
Hunk #5 FAILED at 1687.
Hunk #6 FAILED at 1764.
Hunk #7 FAILED at 1837.
Hunk #8 FAILED at 2027.
8 out of 8 hunks FAILED -- saving rejects to file linux/fs/namei.c.rej
patching file linux/fs/namespace.c
Hunk #1 FAILED at 22.
Hunk #2 succeeded at 367 with fuzz 1 (offset 73 lines).
Hunk #3 succeeded at 431 (offset 92 lines).
Hunk #4 succeeded at 457 (offset 92 lines).
Hunk #5 succeeded at 1061 with fuzz 2 (offset 268 lines).
1 out of 5 hunks FAILED -- saving rejects to file linux/fs/namespace.c.rej
patching file linux/fs/nfsd/vfs.c
Hunk #1 FAILED at 681.
Hunk #2 FAILED at 750.
2 out of 2 hunks FAILED -- saving rejects to file linux/fs/nfsd/vfs.c.rej
patching file linux/fs/read_write.c
Hunk #1 succeeded at 207 with fuzz 2 (offset 8 lines).
Hunk #2 FAILED at 223.
Hunk #3 succeeded at 256 with fuzz 2 (offset 12 lines).
Hunk #4 FAILED at 271.
Hunk #5 FAILED at 386.
Hunk #6 FAILED at 440.
Hunk #7 FAILED at 486.
5 out of 7 hunks FAILED -- saving rejects to file linux/fs/read_write.c.rej
patching file linux/fs/sysfs/file.c
Hunk #1 FAILED at 401.
1 out of 1 hunk FAILED -- saving rejects to file linux/fs/sysfs/file.c.rej
patching file linux/include/linux/changeinfo.h
patching file linux/include/linux/dcache.h
Hunk #1 FAILED at 101.
1 out of 1 hunk FAILED -- saving rejects to file
linux/include/linux/dcache.h.rej
patching file linux/include/linux/dnotify.h
Hunk #1 FAILED at 6.
1 out of 1 hunk FAILED -- saving rejects to file
linux/include/linux/dnotify.h.rej
patching file linux/include/linux/fcntl.h
patching file linux/include/linux/fs.h
Reversed (or previously applied) patch detected! Assume -R? [n] o
Apply anyway? [n] o
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file
linux/include/linux/fs.h.rej
patching file linux/mm/mmap.c
Hunk #1 FAILED at 20.
Hunk #2 succeeded at 1125 (offset 430 lines).
Hunk #3 FAILED at 1728.
2 out of 3 hunks FAILED -- saving rejects to file linux/mm/mmap.c.rej
patching file linux/net/sunrpc/rpc_pipe.c
Hunk #1 succeeded at 561 (offset -8 lines).
Hunk #2 succeeded at 583 (offset -8 lines).
Hunk #3 succeeded at 699 (offset -8 lines).
:/usr/src$
------------------------------------------------------------------------------------------


Avatar
ericb
Bonjour,



Voici en fait le resultat exact de la fonction patch :
J'ai noté dans le fichier patch l'acces a un repertoire "vanilla" en
doublon avec "linux".


Donc tu n'appliques pas le patch à la bonne arborescence => marchera jamais

Peut etre que ca a un interet... je n'ai pas ce repertoire. Je crois que
que vanilla est present dans une distrib debian pure ... moi je suis
sous Ubuntu et je tente de patcher un kernel 2.6.12 (linux-source-2.6.12)


Mon humble avis : il faut recréer un patch complet car ce qui suit n'est
pas propre du tout, et correspond à une application partielle du patch
-> comportement indéfini

J'ai écrit un petit texte de TP ( créer un patch) avec des compléments
(sur diff et patch) expliquant comment on fait. Contacte moi en privé,
et je t'enverrai tout ça.

eric point bachard
at
free point fr


------------------------------------------------------------------------------------------

:/usr/src$ patch -p0 < dnotify-0.1.patch
patching file linux/fs/attr.c
Reversed (or previously applied) patch detected! Assume -R? [n] o
Apply anyway? [n] o
Skipping patch.
2 out of 2 hunks ignored -- saving rejects to file linux/fs/attr.c.rej
patching file linux/fs/dcache.c
Hunk #1 FAILED at 21.


[ ... cut ... ]

patching file linux/net/sunrpc/rpc_pipe.c
Hunk #1 succeeded at 561 (offset -8 lines).
Hunk #2 succeeded at 583 (offset -8 lines).
Hunk #3 succeeded at 699 (offset -8 lines).
:/usr/src$



Cordialement,

--
ericb