URL: https://linuxfr.org/users/djojo/journaux/la-revanche-du-cochon-chien Title: La revanche du cochon/chien Authors: Joris Dedieu Date: 2012年09月10日T16:30:10+02:00 License: CC By-SA Tags: Score: 44 Traditionnellement sous *BSD, le nom fonction qui termine l’exécution de l'OS est une boutade : ```die_you_gravy_sucking_pig_dog(void).``` C'est le cas par exemple sous NetBSD[1], OpenBSD[2], DragonFlyBSD[3] mais également pour FreeBSD jusqu'à ce qu'au détour d'un commit[4] la fonction disparaisse au profit de quelque chose de soit disant moins crétin (```perform_shutdown(void);```) ```diff --- head/sbin/shutdown/shutdown.c 2009年12月29日 08:45:50 201179 +++ head/sbin/shutdown/shutdown.c 2009年12月29日 08:49:43 201180 @@ -93,7 +93,7 @@ static const char *nosync, *whom; static void badtime(void); -static void die_you_gravy_sucking_pig_dog(void); +static void perform_shutdown(void); static void finish(int); static void getoffset(char *); static void loop(void); @@ -258,7 +258,7 @@ if (!tp->timeleft) break; } - die_you_gravy_sucking_pig_dog(); + perform_shutdown(); } static jmp_buf alarmbuf; @@ -325,7 +325,7 @@ } static void -die_you_gravy_sucking_pig_dog() +perform_shutdown(void) { char *empty_environ[] = { NULL }; @@ -499,7 +499,7 @@ } static void -badtime() +badtime(void) { errx(1, "bad time format"); } ``` C'en était fait du cochon/chien. Au grand plaisir d'Apple sans doute qui s'était déjà permis un petit pincement de nez[5] humoristique. ```c #ifdef __APPLE__ void log_and_exec_reboot_or_halt(void); #else void die_you_gravy_sucking_pig_dog(void); #endif ``` Mais la vie continuait son cours malgré la disparition depuis près de 3 ans de ce brave et regretté cochon/chien jusqu'à ce que Ruben de Groot poste un PR référencé sous le numéro bin/169127 qui disait en substance, qu'il aimait bien cette vanne, que ça le faisait bien marrer, que ce n'était pas crétin et qu'il faudrait peut-être faire preuve d'un peu d'humour[6]. Le premier Aout à 09:10:21 UTC, son patch a été accepté et mergé[7]. Vous retrouvez donc votre cher cochon/chien en mettant à jour vers FreeBSD 9.1 qui est testable en version rc1[8] Enjoy [1] http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/shutdown/shutdown.c?annotate=1.55&only_with_tag=MAIN (ligne 357) [2] http://www.openbsd.org/cgi-bin/cvsweb/src/sbin/shutdown/shutdown.c?annotate=1.36 (ligne 331) [3] http://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/sbin/shutdown/shutdown.c (ligne 324) [4] http://svnweb.freebsd.org/base?view=revision&revision=201180 [5] http://opensource.apple.com/source/system_cmds/system_cmds-550.6/shutdown.tproj/shutdown.c [6] http://www.freebsd.org/cgi/query-pr.cgi?pr=169127&cat= [7] http://svnweb.freebsd.org/base?view=revision&revision=238968 [8] http://lists.freebsd.org/pipermail/freebsd-stable/2012-August/069233.html