Gnome-terminal에서 GLib-WARNING ** 라는 메세지가...?

친구의 권유로 우분투 리눅스를 깔고
매력에 푹 빠져… 사용하는 초보입니다.
게시판 보고 이것저것 깔면서 신기한걸 많이 배우고 있습니다 ^^

근데…
제가 주로 emacs를 많이 사용하는데요
커널 업데이트 후에 항상 emacs를 실행시키면
gnome-terminal에서

(emacs:3624): GLib-WARNING **: g_set_prgname() called multiple times

라는 메세지와 함께 실행되던데
에러는 아니고 warning이라 그냥 그냥… 무시하고 지나가려 했지만
계속 신경이 쓰여서…

아직 좀 모자란 구글링 솜씨로 emacs 패키지를 삭제 후 재부팅 한다음에
다시 패키지 설치하면 없어진다는 글을 보고 그대로 했지만 앞에 번호만 살짝 바뀐듯하고
그대로더라구요

뭘 어찌해야 저 문제가 없어질까요? 고수님들 도와주십시오… (‘’)(…)(‘’)꾸벅…

말씀하신 g_set_prgname() called multiple times 경고 메시지는
libglib2.0을 2.22.2-0ubuntu1 에서 2.22.3-0ubuntu1으로 업데이트하면서
부터 적용된 Sven Herzberg의 패치
([url:1i46373w]http://git.gnome.org/browse/glib/commit/?id=3dab24828edd8ebfd6d6c8bb20c181fc0d5650a1[/url:1i46373w])
에서 생긴것으로 말 그대로 경고일뿐 프로그램 실행에 지장을 주진 않습니다.
따라서

alias emacs="emacs 2>/dev/null"

하셔서 그냥 쓰셔도 됩니다.
고쳐야겠다 하시는 분은 glib 소스를 받아서 고친후 재컴파일하셔야죠.
실제로 적용됐던 Sven Herzberg의 패치는 여러 기술적 이유
([url:1i46373w]https://bugzilla.gnome.org/show_bug.cgi?id=563627[/url:1i46373w])로
최신 git glib 소스에서는 제거됐습니다.

$ apt-get source libglib2.0-0
$ cd glib2.0-2.22.3
$ gedit glib/gutils.c

1968 라인의

[code:1i46373w]void
g_set_prgname (const gchar *prgname)
{
gboolean already_set = FALSE;

G_LOCK (g_prgname);
if (g_prgname)
already_set = TRUE;
else
g_prgname = g_strdup (prgname);
G_UNLOCK (g_prgname);

if (already_set)
g_warning ("g_set_prgname() called multiple times");
}[/code:1i46373w]

[code:1i46373w] void
g_set_prgname (const gchar *prgname)
{
G_LOCK (g_prgname);
g_free (g_prgname);
g_prgname = g_strdup (prgname);
G_UNLOCK (g_prgname);
}[/code:1i46373w]
로 바꿔줍니다.

$ gedit glib/tests/option-context.c

1773 라인의

[code:1i46373w]#if 0
/* This test relies on being able to call g_set_prgname() more

  • than once.
    */
    g_test_add_func ("/context/empty1", empty_test1);
    #endif[/code:1i46373w]

[code:1i46373w] /* This test relies on being able to call g_set_prgname() more

  • than once.
    */
    g_test_add_func ("/context/empty1", empty_test1);[/code:1i46373w]

로 바꿔 줍니다.

$ debuild -us -uc
해서 만들어진 deb패키지들을 설치해주고 필요하면 hold 시켜주면 되지요.

감사합니다!!

alias emacs="emacs 2>/dev/null"

알려주신 방법대로 했더니 메세지가 더이상 안보이네요^^

다른 수정방법도 시도해봐야겠네요 ㅎㅎ