일부 성의없는 GNU Open Source 그룹
연말과 연초를 서버 전용 리눅스 빌드 시스템을 만들면서 무척 화가 났다.
GNU의 초창기 시절은 잘모르지만 아무튼 대부분이 기본이 되는 라이브러리나
컴파일러등이 많이 있다.
이러한 소프트들은 정말로 많이 사용자와 개발자를 배려해아 한다.
이번에 화가 난 부분은 GPL라이센스인 GDBM이다.
버클리 DB와 함께 라이브러리로 많이 이용되기 때문에 시스템 어디에 숨어서
사용되고 있는지 헤더나 라이브러리 링크등을 세심히 조사하지 않으면 어디가
문제인지 난감할 때가 많다.
특히 NDBM, ODBM을 서포트한다고 이것 저것 추가해서 시스템에서 사용이
되도록 해놓고 이젠 나몰라라 하는 식으로도 느껴지기도 한다.
한번 GDBM으로 인터넷에서 검색을 해보라.
많은 버그 레포트가 올라가 있고 그 버그 레포트들이 얼마나 처리가 되고 있지
않다는 것을 알 수가 있을 것이다. 특히 이러한 라이브러리들은 개발자가
소스로 처리를 해야할 것이지만 메이크 파일 하나 똑바로 만들어 놓지 못해
세계의 프로그래머들이 해결하느라고 소비하는 시간적인 손실을 생각해보라.
아마도 신정 선물로 펄-5.10이 선보였을 지도 모른다.
그렇게 되지 못한 원인중의 하나가 GDBM 메이크파일 버그가 원인이라고도
생각이 된다. 이것은 대부분의 리눅스에는 NDBM라이브러리가 있고 루비나
파이선 리스프 등등 다른 언어에서도 사용되기도 해서 다른 언어에서도
같은 레포트들이 올라오곤한다. 그러나 GNU에서는 한 마디도 없고 다른
메일링 리스트의 내용들도 살펴보아도 나몰라라 한다. 누군가 해주겠지하는
그러한 인상마져 느낀다. 아니면 지금까지의 신용을 믿어서 문제가 없을
것이라고 굴똑같이 믿고 자신의 소스가 잘못되었다고 열심히 해결을 강구하고
있을 지도 모른다. 믿는 도끼에 발등 찍히는 지도 모르고.....,
NDBM라이브러리는 이젠 없어저가는 유물로 되어 가고 있는데 이럴 때일수록
더욱더 세심하게 새 시스템과의 융화와 조화를 위해서 더욱더 정성을 쏟아야
하리라고 생각된다.
"일부 성의없는 GNU Opensource Group" 에 대해 토론을
"일부 성의없는 GNU Opensource Group" 에 대해 토론을 하시려는건지요?
문장을 봐서는 BLOG성인것 같은데..
No Pain, No Gain.
http://gnome.or.kr/wiki/자유소프트웨어와한국인 의 3절
http://gnome.or.kr/wiki/자유소프트웨어와한국인 의 3절중에서 인용합니다:
한국 BSD 사용자 포럼
결국은 폴리시 문제라고 생각됩니다.
어떤 글인지 읽고 싶었지만 링크가 연결이 안되는군요.
저는 이러한 것들은 버그레포트를 많이 하는 편입니다.
그러나 프로그램이나 소프트등은 그나름대로 폴리시가 있습니다.
그러한 것에 해당이 되는 것을 바꾸어야한다라든가 버그레포트라고
해서 올려도 호학호락 받아 들여지지는 않습니다.
특히 GDBM과 같은 라이브러리는 파이선을 비롯해 펄등 기본 언어나
기본 시스템에 많이 사용이 되어 메이크파일이나 정의등의 기본치는
하나의 정책과도 같은 것이기 때문입니다.
여기에서 NDBM은 이전에 버클리DB라이브러리도 호환이 되기도 했고
해서 버클리DB의 구버전을 사용하면 되기는 합니다. 그러나 GDBM이
이 호환용 라이브러리를 추가함으로서 다른 소프트의 개발진들도 이전의
버클리DB를 사용하지 않고 GDBM을 사용하기 시작했죠. 그러나
최신 버전의 GDBM에서는 일방적으로 라이브러리의 이름을 변경하고
NDBM/ODBM의 서포트가 되지 못하도록 메이크파일을 변경시켰습니다.
이것으로 인해서 언어 쪽의 펄, 루비 파이선등의 진영에서는 지금도 고심을
하고 있는 것입니다. 사실 NDBM/ODBM은 구버전 버클리DB를 사용하는
것이 훨씬 빠르고 안정적입니다.
이것은 선마이크로시스템등에서 각종 언어를 컴파일해서 인스톨하고 할때는
아마 리눅스보다도 더 까다로와질 것입니다.
여기에서 문제가 되는 것이 이미 정책이 GDBM쪽을 사용하기 시작해 방대한
빌드 쉘스크립들이 작성이 되어 있는데 이러한 스크립들을 일일히 조사해서
각 언어 사이트에 모두 패치파일을 레포트해야하고 또 리눅스 벤더에도
이렇게 기본 GDBM라이브러리를 작성해야한다고 알려주어야만 이 문제가
근본적으로 해결이 되는 것입니다.
이런 것들을 일일히 할정도로 개인이 시간적인 여유는 없을 것입니다.
이럴때 개선할 수 있는 가장 빠른방법은 제작자에게 직접 메일을 써서
변경되여야한다고 설득하는 길밖에 없다고 생각이됩니다.
그래서 저는 가능한 위와 같은 방법으로 직접 제작자에게 메일을 보내는
방법으로 레포트를 합니다. 거의 대부분이 "It should be...."라든지
"It must be...."라는 내용으로 답변이 옵니다. 그래서 항상 느끼는
것이 정말 똥고집들..., 하면서 제자신의 길을 걷고 도움을 구하는 이에게는
제 방법이나 패치를 제공하는 것입니다.
이러한 이유로 올해에는 제 자신만의 리눅스를 만들려고 시작을 했습니다.
이전의 운영시스템 개발도 함께하면서 랑데브라는 코드네임으로 일본에있는
20여개 관련회사의 개발자들과 저의 회사가 산학헙동으로 출발한 회사이기
때문에 관련 대학교 대학원생들과 개인적으로 메일링리스트를 만들어서
시작을 했습니다. 이것을 시작한 이유도 위에서 이야기한 GDBM의 내용과
비슷한 것들을 여러 리눅스 디스트리뷰션에서도 느껴왔기 때문입니다.
[quote="gdbm NEWS"]CHANGES from 1.8 to
이걸 말씀하시는 건가요?
아니면, cvs스냅샷에는 완전히 빠져버렸나요?
ps.
이쪽으로는 지식이 거의 없어서...
상황이 잘 이해가 안가는군요.. 죄송합니다 (- -)(__)(^^)7
There is no spoon. Neo from the Matrix 1999.
[quote="지리즈"][quote="gdbm NEWS"]CHANGE
네 맞습니다.
그러나 libgdbm_compat을 사용해서 빌드해도 여러 문제에 직면할 것입니다.
이 부분에 대해서는 이미 많은 개발자들이 논의한 상황인데도 아직도 질질 끌고
있다는 것에 대해서 조금 불만을 가져왔고 개발자에게도 충분히 여러 언어들을
빌드하고 테스트해서 문제가 있다고는 알렸고 패치도 제공했습니다.
그리고 이부분은 현재 펄 새버전이나 파이선등의 빌드에서도 문제가 되고
테스트를 통과하지 못해서 걸림돌이 되기도 합니다. 그리고 이러한 언어를
개발하고 하는 사람들은 다른 라이브러등에 대해서 신경을 거의 안씁니다.
그것은 라이브러리를 개발한 개발자의 영역이라고 생각해서 인지 별로
타치를 하지 않으려고 하고 현재 이것에 대처하기 위해서 나온 하나의 방안이
펄에서의 NDBM/ODBM 을 이제는 제거하자는 단순한 해결책입니다.
버그 레포트만 뉴스그룹에서 계속해서 올러올 뿐입니다. 또 느끼는 것인데
많은 개발자들이 많이 말하는 것중에 자신의 시스템에서는 잘되다라고 하는
것입니다. 자신의 시스템에서는 잘된다고 하면 다른 것들은 별로 신경을
안쓰는 경향도 있습니다. 여러 라이브러리가 있고 버전별로 다른 결과가
있다고 해도 그러한 것들을 일일히 체크하고 그러는 개발자는 그렇게 많지
않다는 느낌입니다. 다만 버그가 올라오면 그러려니 아니면 라이브러리를
개발하는 사이트에서 수정을 하겠지 하는 생각을 가지는 것인지 그 사이트의
개발 폴리시를 존중해서인지 알길이 없습니다.
libgdbm_compat 부분에 NDBM/ODBM관련 함수들이 들어가 있습니다만
실질적으로는 libgdbm에도 필요한 함수들이 들어가 있습니다. 그래서 두개다
링크를 걸어서 작성을 해야되는데 이상하게도 libgdbm 하나에만 링크가
걸리게 되는 경우가 있기도 합니다. 시그윈에서는 아주 잘되는 모양인데
리눅스에서는 문제가 되고 있고 유닉스에서도 문제가 되는 모양입니다.
또 여기에서 기존 언어빌드 시스템이나 여러 시스템의 경우에는 그 스크립이
정확하게 잘 작동이 될 경우에는 수정을 않하는 경향이 있습니다. 뭐 단순히
이것을 수정해서 빌드하면 되겠지 하고 생각하는 사람들도 있을지 모르지만
그렇게 단순한 문제는 아닙니다. 아직도 일부 10년전의 빌드스트립이 그대로
펄에서 사용이 되고 있는 부분이 있다는 것을 보면 알 수가 있을 것입니다.
한번 수정하게 되면 이미 지금까지 배포되고 개발해온 모든 버전의 서포트를
포기해야만 하는 경우도 있기 때문입니다.
일방적으로 다른 여러 곳에서 사용되고 있는 라이브러리를 바꿔놓고 그것으로
인해 일어나는 수많은 버그레포트들이나 트러블에대해서 너무 방치하고
있다는 것이 조금 화가 난것입니다.
해결방법은 libgdbm과 libgdbm_compat를 하나로 통일해 libgdbm.so를
생성하고 이것을 libndbm.so파일로 시스템 링크를 걸면됩니다. 그러나
여기에서 또 문제가 되는 것이 라이브러리 파일경로는 하나 뿐인데 기존의
libndbm이 존재할 경우도 있다는 것입니다. 이전에는 libndbm 대신에
libgdbm을 링크를 걸어서 컴파일해라 이런식의 해결 팁이 많이 있었는데
변경이 된후로부터는 이 방법으로는 이제는 안됩니다. 패치해서 라이브러리를
다시 빌드하지 않으면 안됩니다. 그래도 여간한 리눅스 시스템의 컴파일과
GCC의 지식이 없으면 쉽게 해결되고 하는 문제도 아닙니다. 이유는 이미
기존의 라이브러리가 /usr/lib에 있기도 하고 헤더파일도 어느 것이 로드되어
컴파일 되는지 일반 사용자는 바로 알수가 없기 때문입니다.
아시다시피 이러한 기본적으로 시스템에 들아가는 라이브러리는 한번 정책이
바뀌고 이름이 바뀌게 되면 어마어마한 혼란을 가져옵니다. 버클리DB 역시
버전이 오라가고 하면서 이러한 문제가 많이 있었다고 생각합니다. 이 DB는
MySQL에서도 사용되는데 기존 DB3버전을 사용해야만 컴파일이 됩니다.
아마 리눅스를 인스톨하면 DB와 GDBM라이브러리가 없는 시스템은 없을
것입니다. 그리고 센드메일이나 아파치 펄 OpenLDAP등등 사용되는 곳이
한두군데도 아닙니다. 때에 따라서는 여기에서 스피드를 올릴때 GDBM아닌
NDBM/ODBM을 사용하는 엔지니어도 있습니다. 또 NDBM라이브러리에
DB1.8버전대 라이브러리를 사용해서 퍼포먼스를 내고 하는 자도 있습니다.
이 방법으로 하면 GDBM보다는 한참 빠른 성능을 내는 시스템을 구성하기도
하는가 봅니다.
이러한 문제가 계속 되고 있었고 다른 언어 사이트 메일링 리스트등등에서
제가 이야기 한 부분에 대한 내용을 검색해보면 많이 볼 수가 있을 것입니다.
일부 황당한 것은 이미 해결된 사항입니다 라고 완전히 종지부를 찍고
더이상 이 부분에 대히서 커미트를 부정하는 곳도 보게됩니다.
이러한 이유로 조금 더 신경을 써서 변경을 했다면 쓸떼없는 시간을 많이
줄이고 그 시간들이 다른 곳으로 쓰여져 더 유익하게 사용되지 않았았을까
하는 취지에서 글을 오린것입니다. 세계적으로 이 시간을 계산하게 된다면
어마어마한 시간이고 이러한 관건은 현재의 오픈 소스 개발에서 인류적인
막대한 손실이라고도 생각을 하기때문입니다.
개발자의 성격이나 능력에 따라 오픈소스 프로젝트의 결과물의 질이 판가름
개발자의 성격이나 능력에 따라 오픈소스 프로젝트의 결과물의 질이 판가름 난다고 봅니다. 수만 수십만의 사용자가 생기고 계속 발전하는 프로젝트가 있기도 하고 어느 순간 중단되거나 사라지는 프로젝트들이 훨씬 많습니다.
자신이 만든 소스를 공개한다는 것이 힘든 일이고, 사람들이 많이 사용하게 되기 시작하면 개발자로서의 책임감도 들겁니다.
모든 오픈 소스 개발자들이 생계 걱정없이 산다고 보지는 않습니다. 시간이 지나면서 개발자의 사회적인 위치 - 학생, 사회인 -와 재정상태도 바뀝니다. 문제는 한 오픈소스의 개발자가 자신의 변하는 환경과 오픈 소스 프로젝트 일을 어떻게 조합하는 걸 겁니다.
개발자가 자신의 오픈소스 프로그램을 정상적으로 유지할 능력이 안되면 다른 개발자에게 넘기거나 프로젝트 중단을 공개적으로 알려야죠.
Devuan 1.0 (Debian without systemd)
amd64 station: AMD FX(tm)-6100 Six-Core Processor, 8 GB memory, 1 TB HDD
amd64 laptop: HP Touchsmart
글쇠판: 세벌 최종식, 콜맥 (Colemak)
모든 피드백을 그대로 반영할 수는 없습니다. 읽어보니 기술적인 문제라기
모든 피드백을 그대로 반영할 수는 없습니다. 읽어보니 기술적인 문제라기 보다는 정책 결정의 문제인 것 같군요. 모든 사람을 만족시킬 수 있는 뾰족한 해결방법도 아닌데 무조건 패치를 적용할 수는 없습니다.
버그의 양은 그 프로그램이 얼마나 유명하고 많이 쓰이느냐와도 상관이 있습니다. 숫자가 많다고 무조건 buggy한 건 아니죠. (데비안은 수만가지의 버그가 미해결 상태입니다.)
그래서요?
지금 그걸 "여기" 에서 왜 언급을 하시는건데요? 그게 더욱 궁금합니다.
외국 애들은 이러지만 kldp.net 사람들은 이러지 말아라? 아니면 어떤 뜻이죠? 이게 과연 "토의" 를 할 대상인지... gdbm 개발진을 잡고 해야할 이야기이지 그야말로 바다건너 한국인이 한글로 봐야 할 이유가 있는 글인지 궁금하네요.
단순히 gdbm 개발진에 대한 불평이시라면 그야말로 위키로 가는게 나을듯 합니다만.
from bzImage
It's blue paper
Re: 그래서요?
음... 받아들이기에 따라 나름대로의 소득이 있을것 같은데요. 이런글에도 불만이 있으시면, 읽을글이 몇개나 될런지...
--
Life is short. damn short...
Re: 그래서요?
저도 딴 곳에서 어떻게 돌아가고 있는지 알 수 있어서 토론 자체에 참여할 수는
없어도 유익하다고 생각합니다. 저같은 중생들은 이런 이야기들 조차 없으면
저 나라(..)에서는 다들 이상적인 세계처럼 진행하는 것으로 알테니까요. :oops:
"왜 그런걸 여기서 하냐, 무슨 의미가 있냐, 해서 무슨 소용있냐"고 하는 식의
접근은 대부분의 경우에서 적절치 못하다고 생각합니다.
예산 삭감에 대해서 이야기하는 것이 아니지 않습니까 :wink:
간다.
멈출까 나아갈까
망설이고 있을 때에는
나아가라고 배웠다.