XFree86은 10년 전까지는 모든 리눅스/BSD 시스템에서 사용되던 프로그램이었지만 현재는 그 이름을 찾기조차 쉽지 않습니다. 그것도 소프트웨어가 사라진 것이 아니라 사람들이 원래 프로젝트를 버리고 fork했다는 점에서 더욱 안타깝죠. XFree86에 무슨 일이 있었던 것인지 정리해 보도록 하겠습니다.

XFree86의 시작

..시작하기에 앞서, 몇 가지 중요 X 역사를 정리하도록 하겠습니다.

  • X는 1984년 MIT에서 발표되었으며, 초기에는 W의 대체품으로 개발되었습니다. W는 V에서 쓸 예정이었고요..
  • X11R75 표기는 X 버전 11, 리비전 7.5라는 의미입니다. X가 처음 나온 이후로 여러 차례의 수정이 있었으며, X 버전 1(1984년)에서 버전 10(1985년)까지 약 1년이 걸렸습니다. 한편 현재 최신 버전은 X11R7.7입니다.
  • X10R3은 1986년 2월에 나왔습니다. 이 때 흔히 MIT/X11 License로 부르는 라이선스가 처음 적용됩니다.
  • X11은 1987년 9월에 공개되었습니다.
  • 1988년, X의 개발 방향을 결정하기 위한 MIT X Consortium이 설립되며 1993년에 X Consortium이 그 명맥을 이어받습니다. (아마 이 즈음에 x.org 도메인을 등록했을 것 같습니다. 한 글자 도메인은 1993년 말부터 등록이 불가능합니다.)

XFree86은 X386에서 시작했습니다. X386은 X11R4를 SYSTEM V/386에서 돌릴 수 있도록 수정한 프로그램으로, 1991년에 Thomas Roell이 버전 “1.1”을 공개했습니다. 이후 Roell은 SGSC 사에서 X386을 X11R5에 맞추어 업그레이드하였고, 이는 1991년 8월 29일 X11R5 릴리즈와 함께 정식 공개됩니다. 사람들은 이 버전을 X386 1.2로 불렀습니다.

X386은 이후 SGSC에서 버전 1.3부터 상업적 프로그램으로 개발되어 판매됩니다.

한편 David Dawes, Jim Tsillas, Glenn Lai, David Wexelblat은 1.2 코드를 발전시켜 1992년 5월에 이를 X386 1.2E 1.0로 발표합니다. E는 Enhanced의 의미입니다. 하지만 이는 판매용 프로그램인 1.3과 이름이 비슷해 혼란을 불러오기 쉬웠고, 이에 따라 이름을 XFree86으로 바꾸게 됩니다. 이름의 유래는 X386의 “3”(three)를 발음이 비슷한 “free”로 바꾼 것입니다. (이름 때문에 XFree86이 x86에서만 돌아가는 것 처럼 생각할 수 있는데, 이후 다른 CPU도 지원이 추가되었습니다.)

이후 XFree86은 활발하게 개발되어 데스크탑 리눅스/BSD 환경에 빼놓을 수 없는 기본 시스템이 되었고, 1994년에는 X Consortium의 멤버로 참여하여(당시 X 위원회는 기업만이 참여할 수 있었습니다) 표준 X 개발과의 격차를 더 빠르게 줄일 수 있게 됩니다.

XFree86의 주도자 네 명은 “Gang of Four”라고 불렸는데, 그 중 David Dawes가 이후 프로젝트를 주도하는 위치에 서게 됩니다.

X11R6.4

1997년에 X의 주도권은 X Consortium에서 The Open Group으로 넘어갑니다.

1998년 3월에 The Open Group이 X11 Release 6.4를 발표하면서 라이선스를 변경합니다. 이전까지 누구나 자유롭게 쓸 수 있는 자유로운 라이선스를 사용했던 것과 달리, 새로운 라이선스는 상업적 이용을 제한했고 필요한 경우 별도의 라이선스를 구매해야 했습니다.

이는 자유 소프트웨어 측에 큰 논란을 낳았고, XFree86는 R6.4 변경 사항을 반영하지 않기로 하며 The Open Group의 행동에 대한 성명서를 냅니다.

1998년 9월 The Open Group은 라이선스 변경을 취소하고, XFree86은 R6.4 변경 사항을 받아들이게 됩니다.

이후 1999년 5월에 X의 개발 주도권이 The Open Group의 세부 그룹인 X.Org(현재의 X.Org 재단과는 다른 단체입니다)로 넘어가며, 여기에 XFree86 프로젝트도 명예 멤버로 등록됩니다. X.Org는 2001년에 X11R66이 나온 이후로 공식 버전업 활동이 멈추게 됩니다.

내분

2003년 3월 20일에 XFree86에 공개 포럼 메일링이 열립니다. 이와 함께, Keith Packard가 XFree86 Core Team에서 추방됩니다. Keith는 X Consortium에 참여하기도 했던 X 개발에 있어 중요한 인물이었기에 파장이 컸습니다.

Keith는 이전에 독단적인 커밋으로 인해 CVS 커밋 권한을 잃은 상태였습니다. David Wexelblat에 의하면 Keith는 이후 XFree86을 fork하여 자신이 주도하려는 생각을 가지고 있었고, Core Team 몇몇을 꾀어내려고 시도했다고 합니다.

한편 XFree86은 과거부터 폐쇄적인 커뮤니티를 유지하고 있었습니다. 개발자 메일링 리스트도 이전에는 아무나 참여할 수 없었으며, CVS도 공개되지 않았고, 버그질라도 없었습니다. Keith의 fork 시도 덕택에 이러한 것들이 바뀌기 시작했고, XFree86의 포럼 메일링 역시 그러한 맥락에서 볼 수 있었을 겁니다.

4월, Keith는 XWin이라는 X fork를 위한 포럼을 엽니다. 이 포럼은 초기에는 활발한 토론이 오갔지만, 몇 달 후 갱신이 뜸해지고 이후 freedesktop.orgredirect됩니다. Keith는 이후 freedesktop.org과 함께 X를 발전시키기 위한 작업을 합니다.

2003년 12월에 Core Team은 자체적인 투표를 거쳐 해산합니다. (이 때문에 XFree86이 해체된 것으로 착각한 경우도 많았습니다. 당시의 공지)

License 1.1

2004년 1월 29일, David Dawes는 XFree86의 기본 라이선스를 1.0에서 1.1로 변경한다고 공지합니다. 라이선스 1.1에 추가된 중요한 사항은 다음과 같습니다.

3. The end-user documentation included with the redistribution, if
   any, must include the following acknowledgment: "This product
   includes software developed by The XFree86 Project, Inc
   (http://www.xfree86.org/) and its contributors", in the same place
    and form as other third-party acknowledgments. Alternately, this
   acknowledgment may appear in the software itself, in the same form
   and location as other such third-party acknowledgments.

이 부분은 초창기 BSD의 credit 광고 조건과 유사하며, 따라서 GPL 2와 호환되지 않습니다 (3과는 호환됩니다).

2004년 2월, 변경된 라이선스가 적용된 XFree86 4.4가 발표되지만, 레드햇, 데비안, 젠투, SuSE 등 대부분의 리눅스 배포판은 GPL 비호환의 이유로 4.4를 거부했으며, OpenBSD 역시 라이선스가 제한적이라는 이유로 거부했습니다. NetBSD, FreeBSD 등 몇몇 배포판은 4.4를 받아들였습니다(지원 distro 목록).

X.Org Foundation

시간을 앞으로 돌려서, 2004년 1월 22일에 X.Org Foundation이 탄생하고 The Open Group은 X.Org Foundation에게 X의 주도권을 넘겨줍니다. 이 그룹은 이전의 X Consortium이나 The Open Group과 다르게, 기업이 아닌 foss 개발자들이 직접 참여한다는 점에서 큰 차이를 가집니다.

XFree86 라이선스 문제가 발생함에 따라, X.Org Foundation은 freedesktop.org와 협력하여 라이선스 문제가 없는 XFree86 4.4 RC2 코드를 fork하여 Keith 주도로 X.Org Server라는 프로젝트를 시작합니다. (RC2와 정식 버전 사이의 차이는 별로 없었다고 합니다.) XFree86에 참여하던 대부분의 개발자도 이쪽으로 옮기게 되고요. 2004년 4월에 X.Org Server X11R6.7가 릴리즈되고, XFree86 4.4를 사용하지 않던 배포판들은 이쪽 프로그램을 채택하게 됩니다.

X.Org Server는 이후 2005년에 monolithic하게 개발되던 시스템을 모듈 단위로 쪼갰습니다. 2013년 1월 현재 X11R77가 나와 있습니다.

이후

2005년에 XFree86 4.5, 2007년에 4.6과 4.7, 그리고 2008년에 4.8이 발표되었으며 그 이후의 릴리즈는 아직 없습니다.

XFree86 사용 현황 페이지는 4.4 이후로 변하지 않았습니다. (4.8 쓰는 배포판이 있을까요?) 가령 4.4를 사용했던 NetBSD도 현재는 주 아키텍처에 X.Org을 쓰고 있고, FreeBSD도 마찬가지입니다.

devel 메일링 리스트에는 아직 간간히 패치가 올라오는 것 같은데.. (xterm 개발자의 패치가 계속 올라오는군요) 정작 CVS는 2009년 이후로 멈춰 있습니다. 사용자 메일링도 1년에 한두건 정도이고요. 이 정도면 프로젝트는 이미 죽었다고 해도 될 것 같습니다.

사실 저는 XFree86이 이렇게 ‘한순간에’ 사라지게 된 건 단순히 라이선스 변덕 때문만은 아니라고 생각합니다. 요새는 Github 같은 모델 덕에 fork가 일상화되었지만, 예전에는 fork라는 건 의사소통의 붕괴를 의미했습니다. 개발자들 간에 무언가 마음에 안 드는 게 있으니 쪼개진다는 거죠. 그리고 fork가 이기는 경우는 본가에 무슨 일이 생기지 않는 이상 거의 불가능합니다. XFree86의 경우 이전부터 개발자들 간의 충돌이 외부에 불안한 느낌을 주었을 것이고, 그러던 차에 라이선스 문제가 터져서 급격한 전환이 일어난 것이겠죠.

(이 글을 작성하는 데에 Slashdot의 도움을 많이 받았습니다. 정작 저는 요새 Slashdot 뉴스를 거의 안 보는데.. XFree86이나 Slashdot이나 시대가 변했다는 걸 느끼게 하네요.)

참고 링크