Por que o homem imprime “gimme gimme gimme” às 00:30?

1565

Notamos que alguns dos nossos testes automáticos falham quando são executados às 00:30, mas funcionam bem o resto do dia. Eles falham com a mensagem "gimme gimme gimme" em stderr, o que não era esperado. Por que estamos recebendo essa saída?

    
por Jaroslav Kucera 20.11.2017 / 15:19

3 respostas

405

Este é um ovo de páscoa em man . Quando você executa man sem especificar a página ou com -w , ele gera "gimme gimme gimme" para stderr, mas apenas às 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

O código de saída é sempre 0.

A saída correta deve ser sempre:

# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1

A string "gimme gimme gimme" pode ser encontrada no RHEL, no OpenSUSE, no Fedora, no Debian e provavelmente mais, então não é muito específico da distribuição. Você pode grep your man binary para verificar.

Este código é responsável pela saída , adicionado por este commit :

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");

Eu entrei em contato com o suporte do RHEL sobre esse problema.

A string vem de uma conhecida canção do ABBA Gimme! Me dê! Me dê! (Um homem depois da meia-noite) .

O criador do man-db, Colin Watson, decidiu que havia bastante diversão e que a história não seria esquecida e removeu completamente o ovo da páscoa .

Obrigado Colin!

    
por 20.11.2017 / 15:19
2074

Dear @colmmacuait, I think that if you type "man" at 0001 hours it should print "gimme gimme gimme". #abba
@marnanel - 3 November 2011

er, isso foi minha culpa, eu sugeri isso. Desculpe.

Praticamente toda a história está no commit. O mantenedor do homem é um bom amigo meu, e um dia, seis anos atrás, eu disse brincando que se você invocar o homem depois da meia-noite, ele deveria imprimir " me dê, me dê", por causa da música do Abba. chamado " Me dê, me dê um homem depois da meia-noite ":

Bem, ele realmente colocou a> em . Algumas pessoas se divertiram ao descobri-lo, e nós nos esquecemos disso até hoje.

Não posso falar para Col , obviamente, mas eu não esperava que isso causasse algum problema: que tipo de teste iria quebrar na análise da saída do homem sem nenhuma página especificada? Eu suponho que eu não deveria ficar surpreso com o fato de que alguém apareceu eventualmente, mas levou seis anos.

As chamadas enviar mensagens me Thomas, que é o meu primeiro nome legal embora eu não use muito online.)

Este problema foi corrigido com o commit 84bde8 : Executar o homem com man -w não ativará mais esse ovo de páscoa.

    
por 21.11.2017 / 01:20
348

Depois de alguma reflexão, eu removi este ovo de Páscoa . Ele será eliminado no próximo homem-db 2.8.0.

Fico feliz que algumas pessoas tenham sorrido, o que, afinal de contas, era o propósito dela, e minhas notificações no Twitter e assim por diante sugerem que a maioria das pessoas achava que era mais divertido do que irritante. Ainda assim, algumas pessoas acharam isso irritante, e seis anos parece ser uma boa corrida para esse tipo de coisa; provavelmente não terá uma exposição significativamente melhor do que já é inesperada por causa dessa questão. Hora de colocá-lo na cama.

    
por 22.11.2017 / 02:47

Tags