
Hemos notado que algunas de nuestras pruebas automáticas fallan cuando se ejecutan a las 00:30 pero funcionan bien el resto del día. Fallan con el mensaje
gimme gimme gimme
en stderr
, lo cual no se esperaba. ¿Por qué obtenemos este resultado?
Respuesta1
Estimado@colmmacuait, Creo que si escribes "hombre" a las 0001 horas debería imprimir "dame, dame, dame".#abba
@marnanel- 3 de noviembre de 2011
Eh, eso fue mi culpa, lo sugerí. Lo siento.
Prácticamente toda la historia está en el compromiso. El mantenedor del hombre es un buen amigo mío, y un día hace seis años le dije en broma que si invocas al hombre después de medianoche debería imprimir "dame dame dame", por la canción de Abba llamada "Dame, Dame, Dame! (Un hombre despues de medianoche":
Bueno, en realidad lo hizo.Ponlo en. Algunas personas se divirtieron al descubrirlo, y la mayoría de nosotros lo olvidamos hasta hoy.
No puedo hablar por Col, obviamente, pero no esperaba que esto alguna vez causara ningún problema: ¿qué tipo de prueba se interrumpiría al analizar la salida de man sin ninguna página especificada? Supongo que no debería sorprenderme que finalmente apareciera uno, pero tomó seis años.
(Elmensaje de confirmaciónme llama Thomas, que es mi nombre legal, aunque no lo uso mucho en línea).
Este problema se ha solucionado con el compromiso.84bde8:Correr con un hombre man -w
ya no activará este huevo de Pascua.
Respuesta2
Este es un huevo de pascua en man
. Cuando ejecuta man
sin especificar la página o con -w
, genera "dame dame dame" a stderr, pero solo a las 00:30:
# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man
El código de salida es siempre 0.
La salida correcta siempre debe ser:
# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1
La cadena "dame dame dame" se puede encontrar en RHEL, OpenSUSE, Fedora, Debian y probablemente más, por lo que en realidad no es específica de una distribución. Puedes verificar grep
tu binario.man
Este código es responsable de la salida., añadido poreste compromiso:
src/man.c-1167- if (first_arg == argc) {
src/man.c-1168- /*
http://twitter.com/#!/marnanel/status/132280557190119424 */
src/man.c-1169- time_t now = time (NULL);
src/man.c-1170- struct tm *localnow = localtime (&now);
src/man.c-1171- if (localnow &&
src/man.c-1172- localnow->tm_hour == 0 && localnow->tm_min == 30)
src/man.c:1173: fprintf (stderr, "gimme gimme gimme\n");
Me comuniqué con el soporte de RHEL sobre este problema.
La cuerda proviene de un conocidoCanción de ABBA ¡Dame! ¡Dame! ¡Dame! (Un hombre después de medianoche).
El desarrollador de man-db, Colin Watson, decidió que ya había suficiente diversión y que la historia no caería en el olvido yeliminó el huevo de pascua por completo.
¡Gracias Colin!
Respuesta3
Después de reflexionar un poco, heeliminó este huevo de Pascua. Desaparecerá en el próximo man-db 2.8.0.
Me alegro de que haya hecho sonreír a algunas personas, que después de todo era el propósito, y mis notificaciones de Twitter y demás de hoy sugieren que la mayoría de la gente pensó que era más divertido que molesto. Aun así, a algunas personas les resultó molesto, y seis años parece un período bastante bueno para ese tipo de cosas; Probablemente no obtendrá una exposición significativamente mejor de la que ya tiene inesperadamente a través de esta pregunta. Es hora de acostarlo.