OVH Cloud OVH Cloud

Utiliser dpatch pour appliquer un diff

5 réponses
Avatar
Julien Valroff
re-salut !

Je suis en train d'essayer de comprendre le fonctionnement de
l'empaquetage en créant quelques paquets simples, mais je butte
fortement sur l'utilisation de dpatch pour appliquer un patch au moment
de la construction du paquet.
Le "Debian new maintainers' guide" en parle assez brièvement au
[1]paragraphe 6.4 mais je ne suis pas certain de bien comprendre le
passage suivant :
"Edit patch to make it a -p1 patch to the source tree"

Dans mon cas, j'ai fait moi même les modifications, et obtiens le patch
avec :
$ diff -urN file.orig file.new > patch
En l'appliquant manuellement avec patch -p0, ça fonctionne; mais comment
modifier le patch pour en faire un patch de niveau 1 ?

Lorsque j'essaye tout de même de construire mon paquet avec debuild,
j'ai l'avertissement :
"mon_patch.diff not applied to ./ ."

Quelqu'un aurait-il une explication plus claire, car le manuel de dpatch
ne parle pas de cette transformation, et Google semble rester muet à mes
requêtes...

Merci par avance
Julien

[1] http://www.debian.org/doc/maint-guide/ch-build.en.html#s-dpatch



--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

5 réponses

Avatar
Florent Bayle
--nextPart2574485.oAAe6vQnnD
Content-Type: text/plain;
charset="iso-8859-15"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Le Lundi 18 Avril 2005 19:34, Julien Valroff a écrit :
re-salut !

Je suis en train d'essayer de comprendre le fonctionnement de
l'empaquetage en créant quelques paquets simples, mais je butte
fortement sur l'utilisation de dpatch pour appliquer un patch au moment
de la construction du paquet.
Le "Debian new maintainers' guide" en parle assez brièvement au
[1]paragraphe 6.4 mais je ne suis pas certain de bien comprendre le
passage suivant :
"Edit patch to make it a -p1 patch to the source tree"

Dans mon cas, j'ai fait moi même les modifications, et obtiens le patch
avec :
$ diff -urN file.orig file.new > patch
En l'appliquant manuellement avec patch -p0, ça fonctionne; mais comment
modifier le patch pour en faire un patch de niveau 1 ?

Lorsque j'essaye tout de même de construire mon paquet avec debuild,
j'ai l'avertissement :
"mon_patch.diff not applied to ./ ."

Quelqu'un aurait-il une explication plus claire, car le manuel de dpatch
ne parle pas de cette transformation, et Google semble rester muet à mes
requêtes...

Merci par avance
Julien

[1] http://www.debian.org/doc/maint-guide/ch-build.en.html#s-dpatch



Voilà ce que dit le man de patch :
-pnum or --strip=num
Strip the smallest prefix containing num leading slashes from e ach
file name found in the patch file. A sequence of one or more ad ja-
cent slashes is counted as a single slash. This controls how f ile
names found in the patch file are treated, in case you keep y our
files in a different directory than the person who sent out the
patch. For example, supposing the file name in the patch file was

/u/howard/src/blurfl/blurfl.c

setting -p0 gives the entire file name unmodified, -p1 gives

u/howard/src/blurfl/blurfl.c

without the leading slash, -p4 gives

blurfl/blurfl.c

and not specifying -p at all just gives you blurfl.c. Whatever you
end up with is looked for either in the current directory, or the
directory specified by the -d option.

Si tu préfère, -p1 vas enlever tout ce qui se trouve avant le premier s lash,
plus le premier slash.
Tu peut donc modifier ton fichier de patch (avec un éditeur de texte), po ur
rajouter devant chaque chemin de fichier un "/" ou un "./", ou
"cequetuveut/".

--
Florent

-- Citation aléatoire --
Mieux vaut mentir comme un arracheur de dents
que dire la vérité à travers un dentier.
-+- Pierre Perret -+-

--nextPart2574485.oAAe6vQnnD
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQBCY/XJM+Ix3/RCm3gRAuXPAKC48Fnn8pq3LJzKWxJvnUhQ4sETNgCfQBSm
EdwFyzp5zBV88Zfsii0D2Ks =CVsM
-----END PGP SIGNATURE-----

--nextPart2574485.oAAe6vQnnD--


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jean-Christophe Dubois
Florent Bayle
Le Lundi 18 Avril 2005 19:34, Julien Valroff a écrit :
re-salut !

Je suis en train d'essayer de comprendre le fonctionnement de
l'empaquetage en créant quelques paquets simples, mais je butte
fortement sur l'utilisation de dpatch pour appliquer un patch au moment
de la construction du paquet.
Le "Debian new maintainers' guide" en parle assez brièvement au
[1]paragraphe 6.4 mais je ne suis pas certain de bien comprendre le
passage suivant :
"Edit patch to make it a -p1 patch to the source tree"

Dans mon cas, j'ai fait moi même les modifications, et obtiens le patch
avec :
$ diff -urN file.orig file.new > patch
En l'appliquant manuellement avec patch -p0, ça fonctionne; mais comment
modifier le patch pour en faire un patch de niveau 1 ?

Lorsque j'essaye tout de même de construire mon paquet avec debuild,
j'ai l'avertissement :
"mon_patch.diff not applied to ./ ."

Quelqu'un aurait-il une explication plus claire, car le manuel de dpatch
ne parle pas de cette transformation, et Google semble rester muet à mes
requêtes...

Merci par avance
Julien

[1] http://www.debian.org/doc/maint-guide/ch-build.en.html#s-dpatch



Voilà ce que dit le man de patch :
-pnum or --strip=num
Strip the smallest prefix containing num leading slashes from
each
file name found in the patch file. A sequence of one or more
adja-
cent slashes is counted as a single slash. This controls how
file
names found in the patch file are treated, in case you keep
your
files in a different directory than the person who sent out
the
patch. For example, supposing the file name in the patch file
was

/u/howard/src/blurfl/blurfl.c

setting -p0 gives the entire file name unmodified, -p1 gives

u/howard/src/blurfl/blurfl.c

without the leading slash, -p4 gives

blurfl/blurfl.c

and not specifying -p at all just gives you blurfl.c. Whatever
you
end up with is looked for either in the current directory, or
the
directory specified by the -d option.

Si tu préfère, -p1 vas enlever tout ce qui se trouve avant le premier
slash,
plus le premier slash.
Tu peut donc modifier ton fichier de patch (avec un éditeur de texte),
pour
rajouter devant chaque chemin de fichier un "/" ou un "./", ou
"cequetuveut/".

--
Florent



Perso je trouve ta réponse un peu osée.. parce que des fichiers de patch
j'en ai déjà crée un paquet et quand tu te retrouve avec un fichier de
sortie qui fait 2500 lignes bah faut etre motivé :s ...
Sinon ton aide n'etait pas mauvaise. Mais je pense que c'est une solution
limitée dans le cadre d'un "petit patch". Je refléchis sur le sujet afin
d'apporter un autre point de vu.
Amicalement


!DSPAM:4263f5ef183877966912745!




--
Jean-Christophe Dubois -
Freelance WebDesigner and Linux Networking Administrator
http://www.jicer-design.net


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Florent Bayle
--nextPart5662068.Tg0cr2WLVU
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Le Lundi 18 Avril 2005 20:09, Jean-Christophe Dubois a écrit :
Florent Bayle

> Le Lundi 18 Avril 2005 19:34, Julien Valroff a écrit :
>> re-salut !
>>
>> Je suis en train d'essayer de comprendre le fonctionnement de
>> l'empaquetage en créant quelques paquets simples, mais je butte
>> fortement sur l'utilisation de dpatch pour appliquer un patch au moment
>> de la construction du paquet.
>> Le "Debian new maintainers' guide" en parle assez brièvement au
>> [1]paragraphe 6.4 mais je ne suis pas certain de bien comprendre le
>> passage suivant :
>> "Edit patch to make it a -p1 patch to the source tree"
>>
>> Dans mon cas, j'ai fait moi même les modifications, et obtiens le pa tch
>> avec :
>> $ diff -urN file.orig file.new > patch
>> En l'appliquant manuellement avec patch -p0, ça fonctionne; mais com ment
>> modifier le patch pour en faire un patch de niveau 1 ?
>>
>> Lorsque j'essaye tout de même de construire mon paquet avec debuild,
>> j'ai l'avertissement :
>> "mon_patch.diff not applied to ./ ."
>>
>> Quelqu'un aurait-il une explication plus claire, car le manuel de dpat ch
>> ne parle pas de cette transformation, et Google semble rester muet à mes
>> requêtes...
>>
>> Merci par avance
>> Julien
>>
>> [1] http://www.debian.org/doc/maint-guide/ch-build.en.html#s-dpatch
>
> Voilà ce que dit le man de patch :
> -pnum or --strip=num
> Strip the smallest prefix containing num leading slashes from
> each
> file name found in the patch file. A sequence of one or more
> adja-
> cent slashes is counted as a single slash. This controls how
> file
> names found in the patch file are treated, in case you ke ep
> your
> files in a different directory than the person who sent o ut
> the
> patch. For example, supposing the file name in the patch file
> was
>
> /u/howard/src/blurfl/blurfl.c
>
> setting -p0 gives the entire file name unmodified, -p1 gives
>
> u/howard/src/blurfl/blurfl.c
>
> without the leading slash, -p4 gives
>
> blurfl/blurfl.c
>
> and not specifying -p at all just gives you blurfl.c.
> Whatever you
> end up with is looked for either in the current directory, or
> the
> directory specified by the -d option.
>
> Si tu préfère, -p1 vas enlever tout ce qui se trouve avant le premi er
> slash,
> plus le premier slash.
> Tu peut donc modifier ton fichier de patch (avec un éditeur de texte),
> pour
> rajouter devant chaque chemin de fichier un "/" ou un "./", ou
> "cequetuveut/".
>
> --
> Florent

Perso je trouve ta réponse un peu osée.. parce que des fichiers de pa tch
j'en ai déjà crée un paquet et quand tu te retrouve avec un fichier de
sortie qui fait 2500 lignes bah faut etre motivé :s ...
Sinon ton aide n'etait pas mauvaise. Mais je pense que c'est une solution
limitée dans le cadre d'un "petit patch". Je refléchis sur le sujet a fin
d'apporter un autre point de vu.
Amicalement



Bah, dans ce cas là tu te met dans le dossier parent quand tu fait ton di ff...
mais bon, un petit sed, ou s/// dans vi te fait ça très vite.

--
Florent

-- Citation aléatoire --
T U T
U B U
T U T Corne de citrouille! Une voiture!
-- Breton, J.C.

--nextPart5662068.Tg0cr2WLVU
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)

iD8DBQBCY/lsM+Ix3/RCm3gRAoFaAJ0fwDFM96y3lsivwB85OdG4uBgmhwCdFC6A
UxkrCqP0tfMg+e2X1aFuzwM =WqEF
-----END PGP SIGNATURE-----

--nextPart5662068.Tg0cr2WLVU--


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jean-Christophe Dubois
Florent Bayle
Le Lundi 18 Avril 2005 20:09, Jean-Christophe Dubois a écrit :
Florent Bayle

> Le Lundi 18 Avril 2005 19:34, Julien Valroff a écrit :
>> re-salut !
>>
>> Je suis en train d'essayer de comprendre le fonctionnement de
>> l'empaquetage en créant quelques paquets simples, mais je butte
>> fortement sur l'utilisation de dpatch pour appliquer un patch au
moment
>> de la construction du paquet.
>> Le "Debian new maintainers' guide" en parle assez brièvement au
>> [1]paragraphe 6.4 mais je ne suis pas certain de bien comprendre le
>> passage suivant :
>> "Edit patch to make it a -p1 patch to the source tree"
>>
>> Dans mon cas, j'ai fait moi même les modifications, et obtiens le
patch
>> avec :
>> $ diff -urN file.orig file.new > patch
>> En l'appliquant manuellement avec patch -p0, ça fonctionne; mais
comment
>> modifier le patch pour en faire un patch de niveau 1 ?
>>
>> Lorsque j'essaye tout de même de construire mon paquet avec debuild,
>> j'ai l'avertissement :
>> "mon_patch.diff not applied to ./ ."
>>
>> Quelqu'un aurait-il une explication plus claire, car le manuel de
dpatch
>> ne parle pas de cette transformation, et Google semble rester muet à
mes
>> requêtes...
>>
>> Merci par avance
>> Julien
>>
>> [1] http://www.debian.org/doc/maint-guide/ch-build.en.html#s-dpatch
>
> Voilà ce que dit le man de patch :
> -pnum or --strip=num
> Strip the smallest prefix containing num leading slashes
from
> each
> file name found in the patch file. A sequence of one or
more
> adja-
> cent slashes is counted as a single slash. This controls
how
> file
> names found in the patch file are treated, in case you
keep
> your
> files in a different directory than the person who sent
out
> the
> patch. For example, supposing the file name in the patch
file
> was
>
> /u/howard/src/blurfl/blurfl.c
>
> setting -p0 gives the entire file name unmodified, -p1 gives
>
> u/howard/src/blurfl/blurfl.c
>
> without the leading slash, -p4 gives
>
> blurfl/blurfl.c
>
> and not specifying -p at all just gives you blurfl.c.
> Whatever you
> end up with is looked for either in the current directory,
or
> the
> directory specified by the -d option.
>
> Si tu préfère, -p1 vas enlever tout ce qui se trouve avant le premier
> slash,
> plus le premier slash.
> Tu peut donc modifier ton fichier de patch (avec un éditeur de texte),
> pour
> rajouter devant chaque chemin de fichier un "/" ou un "./", ou
> "cequetuveut/".
>
> --
> Florent

Perso je trouve ta réponse un peu osée.. parce que des fichiers de patch
j'en ai déjà crée un paquet et quand tu te retrouve avec un fichier de
sortie qui fait 2500 lignes bah faut etre motivé :s ...
Sinon ton aide n'etait pas mauvaise. Mais je pense que c'est une
solution
limitée dans le cadre d'un "petit patch". Je refléchis sur le sujet afin
d'apporter un autre point de vu.
Amicalement



Bah, dans ce cas là tu te met dans le dossier parent quand tu fait ton
diff...
mais bon, un petit sed, ou s/// dans vi te fait ça très vite.



Oui aussi ... à voir apres en fonction des connaissances de chacun sur
bash ...
Amicalement

--
Jean-Christophe Dubois -
Freelance WebDesigner and Linux Networking Administrator
http://www.jicer-design.net


--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Julien Valroff
Le lundi 18 avril 2005 à 20:00 +0200, Florent Bayle a écrit :
Le Lundi 18 Avril 2005 19:34, Julien Valroff a écrit :
> re-salut !
>
> Je suis en train d'essayer de comprendre le fonctionnement de
> l'empaquetage en créant quelques paquets simples, mais je butte
> fortement sur l'utilisation de dpatch pour appliquer un patch au moment
> de la construction du paquet.
> Le "Debian new maintainers' guide" en parle assez brièvement au
> [1]paragraphe 6.4 mais je ne suis pas certain de bien comprendre le
> passage suivant :
> "Edit patch to make it a -p1 patch to the source tree"

Voilà ce que dit le man de patch :


[...]

Si tu préfère, -p1 vas enlever tout ce qui se trouve avant le premier slash,
plus le premier slash.
Tu peut donc modifier ton fichier de patch (avec un éditeur de texte), pour
rajouter devant chaque chemin de fichier un "/" ou un "./", ou
"cequetuveut/".



Merci à tous pour vos réponses !
Je viens de comprendre la façon de procéder, ne nécessitant aucune
modification manuelle du diff : il faut raisonner au niveau du
répertoire contenant les sources, et non au niveau de fichiers source
individuels.
En clair : diff -urN paquet-0.n/ paquet-0.n.NEW/ > mon_diff.patch
Et là, après un petit coup de dpatch patch-template et de modification
du fichier debian/rules pour prendre en compte le patch, tout roule ...

Merci encore pour votre aide
Julien




--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench

Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact