Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Philippe Merlin
Bonjour,
J'essaie d'appliquer ce patch au noyau standard debian, je sèche 
lamentablement, j'ai essayé patch -p1 fichier
sans succès .
https://www.linuxhq.com/kernel/v2.6/26-git17/sound/core/init.c
Es ce qu'il y aura une bonne âme pour éclairer mon incompétence.
Philippe

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet steve
 Bonjour,
 J'essaie d'appliquer ce patch au noyau standard debian, je sèche 
 lamentablement, j'ai essayé patch -p1 fichier
 sans succès .
 https://www.linuxhq.com/kernel/v2.6/26-git17/sound/core/init.c
 Es ce qu'il y aura une bonne âme pour éclairer mon incompétence.
 Philippe

Si les sources sont dans /usr/src/linux et le patch dans /usr/src/

cd /usr/src/linux

bzcat ../patch.bz2 | patch -p1 --dry-run

Enlever le --dry-run une fois qu'on est sûr que le patch est bien
appliqué.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Pascal Hambourg

Salut,

Philippe Merlin a écrit :
J'essaie d'appliquer ce patch au noyau standard debian, je sèche 
lamentablement, j'ai essayé patch -p1 fichier

sans succès .


Mais encore (message d'erreur détaillé) ?


https://www.linuxhq.com/kernel/v2.6/26-git17/sound/core/init.c


Si tu as copié/collé le patch depuis cette page, le problème pourrait 
être que la conversion en HTML a transformé les tabulations en espaces, 
et donc patch ne s'y retrouve pas. Il faudrait trouver le patch sous 
forme de fichier brut.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Philippe Merlin
Le mardi 12 mai 2009, Pascal Hambourg a écrit :
 Salut,

 Philippe Merlin a écrit :
  J'essaie d'appliquer ce patch au noyau standard debian, je sèche
  lamentablement, j'ai essayé patch -p1 fichier
  sans succès .

 Mais encore (message d'erreur détaillé) ?

  https://www.linuxhq.com/kernel/v2.6/26-git17/sound/core/init.c

 Si tu as copié/collé le patch depuis cette page, le problème pourrait
 être que la conversion en HTML a transformé les tabulations en espaces,
 et donc patch ne s'y retrouve pas. Il faudrait trouver le patch sous
 forme de fichier brut.

merci pour ta réponse, effectivement j'ai fait un copier coller, si c'est le 
problème alors ou trouver ce patch
Les erreurs 5 Hunks rejected.
Je joins le fichier du patch que je veux appliquer, si vous pouviez donner 
votre avis.
J'ai essayé avec Kompare  il semble bien faire les modifs mais je n'arrive pas 
à sauvegarder ces modifs.
Merci.
Philipppe

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Philippe Merlin
e mardi 12 mai 2009, Pascal Hambourg a écrit :
 Salut,

 Philippe Merlin a écrit :
  J'essaie d'appliquer ce patch au noyau standard debian, je sèche
  lamentablement, j'ai essayé patch -p1 fichier
  sans succès .

 Mais encore (message d'erreur détaillé) ?

  https://www.linuxhq.com/kernel/v2.6/26-git17/sound/core/init.c

 Si tu as copié/collé le patch depuis cette page, le problème pourrait
 être que la conversion en HTML a transformé les tabulations en espaces,
 et donc patch ne s'y retrouve pas. Il faudrait trouver le patch sous
 forme de fichier brut.
(Tète de linotte j'ai oublié de joindre le fichier je renvoie le message)
merci pour ta réponse, effectivement j'ai fait un copier coller, si c'est le 
problème alors ou trouver ce patch
Les erreurs 5 Hunks rejected.
Je joins le fichier du patch que je veux appliquer, si vous pouviez donner 
votre avis.
J'ai essayé avec Kompare  il semble bien faire les modifs mais je n'arrive pas 
à sauvegarder ces modifs.
Merci.
Philipppe
diff --git a/sound/core/init.c b/sound/core/init.c
index ac05734..df46bbc 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -46,17 +46,24 @@ static char *slots[SNDRV_CARDS];
 module_param_array(slots, charp, NULL, 0444);
 MODULE_PARM_DESC(slots, Module names assigned to the slots.);
 
-/* return non-zero if the given index is already reserved for another
+/* return non-zero if the given index is reserved for the given
  * module via slots option
  */
-static int module_slot_mismatch(struct module *module, int idx)
+static int module_slot_match(struct module *module, int idx)
 {
+   int match = 1;
 #ifdef MODULE
-   char *s1, *s2;
+   const char *s1, *s2;
+
if (!module || !module-name || !slots[idx])
   return 0;
-   s1 = slots[idx];
-   s2 = module-name;
+
+   s1 = module-name;
+   s2 = slots[idx];
+   if (*s2 == '!') {
+  match = 0; /* negative match */
+  s2++;
+   }
/* compare module name strings
 * hyphens are handled as equivalent with underscore
 */
@@ -68,12 +75,12 @@ static int module_slot_mismatch(struct module *module, int idx)
   if (c2 == '-')
  c2 = '_';
   if (c1 != c2)
- return 1;
+ return !match;
   if (!c1)
  break;
}
-#endif
-   return 0;
+#endif /* MODULE */
+   return match;
 }
 
 #if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE)
@@ -129,7 +136,7 @@ struct snd_card *snd_card_new(int idx, const char *xid,
   struct module *module, int extra_size)
 {
struct snd_card *card;
-   int err;
+   int err, idx2;
 
if (extra_size  0)
   extra_size = 0;
@@ -144,35 +151,41 @@ struct snd_card *snd_card_new(int idx, const char *xid,
err = 0;
mutex_lock(snd_card_mutex);
if (idx  0) {
-  int idx2;
   for (idx2 = 0; idx2  SNDRV_CARDS; idx2++)
  /* idx == -1 == 0x means: take any free slot */
  if (~snd_cards_lock  idx  1idx2) {
-if (module_slot_mismatch(module, idx2))
-   continue;
-idx = idx2;
-if (idx = snd_ecards_limit)
-   snd_ecards_limit = idx + 1;
-break;
+if (module_slot_match(module, idx2)) {
+   idx = idx2;
+   break;
+}
+ }
+   }
+   if (idx  0) {
+  for (idx2 = 0; idx2  SNDRV_CARDS; idx2++)
+ /* idx == -1 == 0x means: take any free slot */
+ if (~snd_cards_lock  idx  1idx2) {
+if (!slots[idx2] || !*slots[idx2]) {
+   idx = idx2;
+   break;
+}
  }
-   } else {
-   if (idx  snd_ecards_limit) {
- if (snd_cards_lock  (1  idx))
-err = -EBUSY;   /* invalid */
-  } else {
- if (idx  SNDRV_CARDS)
-snd_ecards_limit = idx + 1; /* increase the limit */
- else
-err = -ENODEV;
-  }
}
-   if (idx  0 || err  0) {
+   if (idx  0)
+  err = -ENODEV;
+   else if (idx  snd_ecards_limit) {
+  if (snd_cards_lock  (1  idx))
+ err = -EBUSY;   /* invalid */
+   } else if (idx = SNDRV_CARDS)
+  err = -ENODEV;
+   if (err  0) {
   mutex_unlock(snd_card_mutex);
   snd_printk(KERN_ERR cannot find the slot for index %d (range 0-%i), error: %d\n,
   idx, snd_ecards_limit - 1, err);
   goto __error;
}
snd_cards_lock |= 1  idx;  /* lock it */
+   if (idx = snd_ecards_limit)
+  snd_ecards_limit = idx + 1; /* increase the limit */
mutex_unlock(snd_card_mutex);
card-number = idx;
card-module = module;
@@ -535,8 +548,9 @@ int snd_card_register(struct snd_card *card)
snd_assert(card != NULL, return -EINVAL);
 #ifndef CONFIG_SYSFS_DEPRECATED
if (!card-card_dev) {
-  card-card_dev = device_create(sound_class, card-dev, 0,
-  card%i, card-number);
+  card-card_dev = device_create_drvdata(sound_class, card-dev,
+ MKDEV(0, 0), NULL,
+ card%i, card-number);
   if 

Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Yves Rutschle
On Tue, May 12, 2009 at 12:17:01PM +0200, Philippe Merlin wrote:
 merci pour ta réponse, effectivement j'ai fait un copier coller, si c'est le 
 problème alors ou trouver ce patch

Le patch est OK. Tu dois sans doute être dans le mauvais
répertoire et/ou utiliser un mauvais paramètre -p. Cf
courrier de Steve.

 Les erreurs 5 Hunks rejected.

Le mieux est toujours de faire un copier/coller de la
commande que l'on tape, et de sa sortie. Sinon, ceux qui
lisent ne sont pas sûr de ce que tu as fait, ni de l'erreur.

Y.

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Philippe Merlin
Le mardi 12 mai 2009, Yves Rutschle a écrit :
 On Tue, May 12, 2009 at 12:17:01PM +0200, Philippe Merlin wrote:
  merci pour ta réponse, effectivement j'ai fait un copier coller, si c'est
  le problème alors ou trouver ce patch

 Le patch est OK. Tu dois sans doute être dans le mauvais
 répertoire et/ou utiliser un mauvais paramètre -p. Cf
 courrier de Steve.

  Les erreurs 5 Hunks rejected.

 Le mieux est toujours de faire un copier/coller de la
 commande que l'on tape, et de sa sortie. Sinon, ceux qui
 lisent ne sont pas sûr de ce que tu as fait, ni de l'erreur.

 Y.

Merci pour ta réponse, voilà le copier coller de la commande et des messages :
francois:/usr/src/linux-source-2.6.26#
 patch -p1/usr/src/modif 26/diff-sound-core-init.diff
patching file sound/core/init.c
Hunk #1 FAILED at 46.
Hunk #2 FAILED at 75.
Hunk #3 FAILED at 136.
Hunk #4 FAILED at 151.
Hunk #5 FAILED at 548.
5 out of 5 hunks FAILED -- saving rejects to file sound/core/init.c.rej

Votre aide sera précieuse.
Philippe

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Pascal Hambourg

Yves Rutschle a écrit :

On Tue, May 12, 2009 at 12:17:01PM +0200, Philippe Merlin wrote:
merci pour ta réponse, effectivement j'ai fait un copier coller, si c'est le 
problème alors ou trouver ce patch


Après recherche dans git.kernel.org, il semble que ce patch 2.6.26-git17 
corresponde en fait à deux commits distincts lors du développement de la 
version 2.6.27 du noyau :


[ALSA] Improve the slots option handling
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.27.y.git;a=commit;h=a93bbaa77ea61c6bad684263a65f812b31bf9791
et
device create: sound: convert device_create to device_create_drvdata
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.27.y.git;a=commit;h=89409211ff97bf82295d1fb98ab18302a03e9199

Mais il est important de bien comprendre que :

1) Un commit et son patch peuvent modifier plusieurs fichiers sources, 
c'est le cas ici. Si tu ne modifies qu'un fichier, tu peux te retrouver 
avec un noyau qui ne compile pas ou pire ne marche pas. Pour le premier 
commit, a93bbaa77ea61c6bad684263a65f812b31bf9791, l'autre fichier 
modifié est juste un fichier de documentation, donc pas de souci. En 
revanche l'autre commit, 89409211ff97bf82295d1fb98ab18302a03e9199, 
modifie deux autres fichiers sources, et fait partie d'un ensemble plus 
large de patches qui modifient d'autres sous-systèmes que le son.


2) Un commit peut s'appuyer sur des patches précédents, et ne pas 
s'appliquer ou ne pas fonctionner seul sur une version trop ancienne 
sans avoir appliqué ces patches précédents.


Je suppose que c'est surtout le premier commit qui t'intéresse.
A partir de l'URL que j'ai indiqué, tu pourras avoir accès au patch 
intégral (diff), aux patches individuels pour chaque fichier modifié 
(diff), ou à la nouvelle version de chaque fichier modifié (blob), en 
format brut (par les liens 'raw', il faut effacer le début du fichier 
avant le premier 'diff ...' avant de l'appliquer).



Le patch est OK.


Non, il n'est pas ok : les tabulations originelles sont remplacées par 
des espaces alors que le fichier source contient des tabulations. patch 
a peut-être des options pour ignorer les différences entre espaces et 
tabulations, on ne sait jamais.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org



Re: Appliquer un patch mode d'emploi ?

2009-05-12 Par sujet Pascal Hambourg

Pascal Hambourg a écrit :


Mais il est important de bien comprendre que :

[...]
Et pour finir, un patch prévu pour les sources du noyau standard peut ne 
pas s'appliquer aux sources du noyau Debian (paquet linux-source-*) à 
cause des modifications apportées par les patches Debian.


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs From et Reply-To:

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org