XFree86-3.1에서의 Motif 1.2.4 와 Linux 1.1.62

고객지원 지식기반 (mb_12)
다음의 입문서는 덫을 지원하는 Motif의 연산에 의해 "태어났다".
PLASMOS GmbH의 Arno Unkrig 에게 그의 도움에 감사를 표하는 바이다.

어떻게 OSF/Motif 프로그램을 성공적으로 Linux 1.1.62에서 변형시킬 수 있는가? XFree86-3.1 와 Metrolink Motif 1.2.4?
1.)/usr/X11R6/lib 의 (기본적으로 링크 되어 있는)도서관은 부적절하다. 이것은 끔찍하게 놀라운 것은 아니다. 왜냐하면 Motif 1.2는 X1135를 위해 '설계되'었기 때문이다. 확실히 X11R6은 매우 잘 호환되지만 실험은 악마가 자세하게 여기에 쌓아 놓았다는 것과 (처음 의)`Motif 1.2 + X11R6' 와 같이 구성하면 동작하지 않을 것임을 이미 보여준다.

2.) 프로그램이 처음으로 실행됨으로 -L/usr/X11R5/lib로 링크 되지만, 다음의 결함이 알려져 있다 : 프로그램이 다음과 같은 메시지를 보이면서 부서졌기 때문에 하나 이상의 팝업 하위메뉴가 걸린 XmBulletinBoard-Dialog (나 하위클래스)를 다룰 수 없다, Error: Object "(null)" does not have windowed ancestor (때때로 core-dump로 나타나기도 한다).

3.) S.u.S.E. 지원에 따르면 Metrolink는 단지 XFree86-2.1.1만을 가지고 그것의 가능한 Motif's 함수를 약속한다. 사실상 XFree86-2.1.1 와 XFree86-3.1의 X11R5 라이브러리는 서로 다르다!

4.) XFree86-2.1.1 라이브러리들은 /cdrom/slackware-2.1.0/contrib/XFree86-2.1.1/x3/xf_lib.tgz의 94년 11월 CD에서 사용 할 수 있다. 그러나 그것을 알리기 위해 이 패킷은 pkgtool을 사용해서 일상적으로 설치할 수 없다. 왜 냐하면 이미 존재하는 XFree86-3.1의 X11R6 라이브러리가 덮어쓰게 되기 때문이다. 최 선책은 분리된 디렉토리의(DIR이라 명명된) XFree86-2.1.1 라이브러리들을 설치하는 것이 다. 프로그램은 이제 다음과 같이 링크될 수 있다. gcc -static ... -lXm -L(DIR) -lXt -lX11 -o ...

5.) '새로운' X11R5의 공유가능한 객체를 위한 파일이름은 구 버전을 위한 것과 동일하기 때문에 응용프로그램이 동적링크 되어있을 때 그것은 더욱 문제의 소지가 있다(즉, `lib{X11 Xt}.so.3'). 많은 X 프로그램들(DNDDemo cutpaste dogs fileview helloint hellomotif motifanim motifbur motifgif motifshell mwm periodic pict pixmap textedit uil uilsymdump xbmbrowser xfishtank xgrab xgrabsc xmapdef xmbind xmdialogs xmeditor xmfonts xmforc xmform xmgetres xmlist xmmap xmmore xmpiano xmprotocol xmter xmtravel ...)이 '새로운' X11R5 라이브러리를 보기를 원하기 때문에 구 버전에 의해 쉽게 바꿔치기될 수 없다. 반면에 자신의 Motif 응용프로그램이 작동하지만 구 버전의 라이브러리들만이 믿을만 하다.

유일한 가능한 해결방법은 프로그램이 시작하기 전에 즉시 구 버전의 라이브러리들의 `LD_LIBRARY_PATH'를 구부리는 것이다. 그리고 나서 다시 설정을 푼다. 이것은 물론 모두 우아한 것만은 아니다. 프로그램의 보안을 위해서 `LD_LIBRARY_PATH'를 설정하고 실제적으로 구 버전의 라이브 러리를 로드하는 `main ()' 함수를 처음으로 테스트 할 수 있다.

6.) 구버전 X11R5 라이브러리들이 고정적이거나 유동적인 링크인지가 다른 문제로 나타난 다 : `/usr/X386/lib/X11/nls/{nls.dir nls.alias ...}' 파일들은 사용할 수 없고 읽을 수 도 없다. 따라서 구간 위반으로 프로그램이 부서진다. Motif-FAQ에 따르면 이것은 `libX11'의 결함이다. 이 파일들은 `/cdrom/slackware-2.1.0/contrib/XFree86-2.1.1/x3/xf_lib.tgz'에 위치하고 설치된 것과 동일해야만 한다. 최상은 이 파일들이 사용가능한지를( 대안으로 $XNLSPATH 도 역시 효과가 있다) 다시 체크하고 동일한 메시지가 필요하다면 취소하는 것이다.


키워드: MOTIF, XFREE, X11, HOWTO

SDB-mb_12, Copyright SuSE Linux AG, Nrnberg, Germany - 버전: 06. Mr 2001
SuSE Linux AG - 최근에 만들어진 : 06. Mr 2001 에 의해 kmyoo (sdb_gen 1.40.0)