Linus Torvalds, el dictador benévolo: Bronca a un colaborador

Hoy en Libre Soft World queremos relatar una anécdota de Linus Torvalds que nos hace ver su personalidad y el cuidado que tiene con el mantenimiento de Linux.

La respuesta de Linus puede leerse aquí: Respuesta Linus. En él, el creador del sistema operativo argumenta en contra de un commit hecho por uno de los desarrolladores del Kernel. Este commit rompía el funcionamiento de un par de programas de Linux, por lo que el desarrollador suponía que debía ser un Bug en estos programas, y no en los cambios que había hecho. Vayamos citando paso a paso lo que dice Linus:

Mauro, SHUT THE FUCK UP!

Vaya, Linus empieza fuerte…

It's a bug alright - in the kernel. How long have you
been a maintainer? And you *still* haven't learnt
the first rule of kernel maintenance?

If a change results in user programs breaking, it's
a bug in the kernel. We never EVER blame the user
programs. How hard can this be to understand?

Aquí Linus quiere dejar claro que el espacio de usuario es sagrado: nunca ha de romperse. Esta es la primera regla del Kernel. Por lo tanto, el Bug no está en aquellos programas que fallan, sino en los cambios producidos por el desarrollador en el Kernel.

To make matters worse, commit f0ed2ce840b3 is clearly
total and utter CRAP even if it didn't break
applications. ENOENT is not a valid error return
from an ioctl. Never has been, never will be.
ENOENT means  "No such file and directory",
and is for path operations. ioctl's are done on 
files that have already been opened, there's no
way in hell that ENOENT would ever be valid.

Aquí Linus regaña al desarrollador por usar código que no es válido en ese contexto. Eso si, usando unas formas un poco bruscas. La siguiente respuesta corresponde a cuando el desarrollador argumenta que su commit no es ninguna regresión, sino que descubre errores en aplicaciones que debido a su cambio ahora fallan:

Shut up, Mauro. And I don't _ever_ want to hear that
kind of obvious garbage and idiocy from a kernel
maintainer again. Seriously.
I'd wait for Rafael's patch to go through you, but I
have another error report in my mailbox of all KDE 
media applications being broken by v3.8-rc1, and I 
bet it's the same kernel bug. And you've shown 
yourself to not be competent in this issue, so 
I'll apply it directly and immediately myself.

Ahora Linus pone de manifiesto la incompetencia del desarrollador y dice que ya se encargará el mismo de arreglar un Bug que es probable que haya sido provocado por el mismo problema. Y por último:

WE DO NOT BREAK USERSPACE!

Seriously. How hard is this rule to understand? We 
particularly don't break user space with TOTAL CRAP. 
I'm angry, because your whole email was so _horribly_ 
wrong, and the patch that broke things was so 
obviously crap. The whole patch is incredibly 
broken shit. It adds an insane error code (ENOENT), 
and then because it's so insane, it adds a few 
places to fix it up ("ret == -ENOENT ? -EINVAL : 
ret"). The fact that you then try to make *excuses* 
for breaking user space, and blaming some external 
program that *used* to work, is just shameful. It's 
not how we work. Fix your f*cking "compliance tool", 
because it is obviously broken. And fix your 
approach to kernel programming.

               Linus

Termina resaltando la importancia de no romper el espacio de usuario de nuevo. Un programador del Kernel debe tener muy en cuenta que, cosas que funcionaban en el pasado, han de seguir funcionando a pesar de los cambios hechos es el código. Así es como funciona Linux.

Un saludo!

Fuentes:

1 comentario en “Linus Torvalds, el dictador benévolo: Bronca a un colaborador

Deja un comentario