[질문]페도라6에서 wine사용이 않됩니다.

kuyzer의 이미지

질문 그대로 페도라 리눅스 6을 사용하고 있는데...

wine 프로그램이 작동이 않되고 멈추는 문제가 있습니다.

wine는 패키지 관리자에서 내려받은 wine-0.9.29-1.fc6.i386을 사용하고 있습니다.

초보라 자세하게 설명드리지 못해 죄송합니다.

atango의 이미지

여기 여러번 올라오고 있는 최근 wine과 scim의 충돌때문인것 같습니다. 아직도 해결되지 않고 있더군요. 유저상태에서

ps x |grep scim

하면 4개의 프로세스가 나오는데, 맨마지막 놈을 kill로 죽이면 와인이 실행되더군요. 누가 좀 더 나은 방법을 알고 계시면 알려주세요.

snowboard975의 이미지

wine과 scim이 충돌하는 이유는 wine이나 scim에 문제가 있는 것이 아니라 libX11에 버그가 있기 때문이라고 합니다.

http://www.ubuntuforums.org/showthread.php?t=306635&highlight=wine+scim
에서 퍼왔습니다.

다음 방법과 같이 libX11 소스를 수정해서 다시 컴파일하면 된다는데요. 저는 컴파일 도중에 에러가 워낙 많이 생겨서 어떻게 하는질 모르겠네요. 아시는 분은 좀 가르쳐 주세요~

Quote:
On the known issues page in the wine wiki url (http://wiki.winehq.org/KnownIssues), there is bug 6547 (http://bugs.winehq.org/show_bug.cgi?id=6547). On comment #17, it links you back to bug 1182 on freedesktop.org (https://bugs.freedesktop.org/show_bug.cgi?id=1182). On comment #8, someone posts a patch to this issue. So, now we got the patch...

1. Make sure your sources.list is set to get the edgy source packages
2. create a temp dir and change directory to it
2. apt-get source libx11 (downloads libx11 source)
3. go to libx11-1.0.3/src and find the FilterEv.c file
4. edit FilterEv.c. Cut line 101 and add it to line 99:

Before:

if (win == p->window) {
if ((mask & p->event_mask) ||
(ev->type >= p->start_type && ev->type <= p->end_type)) {
ret = (*(p->filter))(ev->xany.display, p->window, ev,
p->client_data);
UnlockDisplay(ev->xany.display);
return(ret);
}

After:

if (win == p->window) {
if ((mask & p->event_mask) ||
(ev->type >= p->start_type && ev->type <= p->end_type)) {
UnlockDisplay(ev->xany.display);
ret = (*(p->filter))(ev->xany.display, p->window, ev,
p->client_data);
return(ret);
}

5. save the file
6. jump out to the libx11-1.0.3 dir and run dpkg-buildpackage -rfakeroot -uc -b (this will build the deb packag)
7. install the libx11-6_1.0.3-0ubuntu4_i386.deb package (no need to the install the other ones).