Archive for the 'OpenSource' Category

정태영

얼마 전부터 보이던 네이버에서 파이어폭스를 수정해서 배포할 계획이란 소식에 여러가지 루머들이 많았었는데, 다행히 걱정하던 방향으로의 수정이 아닌 것 같아 다행입니다. 원래는 Firefox 에 naver 익스텐션을 포함해서 배포할 계획이었으나, firefox 란 이름을 포함해서 배포를 하려면 모질라 재단과 협의가 되어야 한다는군요. 그 협의가 길어짐에 따라 우선 익스텐션만이 공개되었습니다.

http://t.lab.naver.com/firefox/

익스텐션의 역할은

  1. 네이버 테마
  2. 주소창에 검색어를 입력시 네이버를 통한 검색결과를 보여줌
  3. 네이버 서비스 바로가기 버튼 추가

이 정도인 것 같습니다. 들려오던 ‘activeX 를 지원하도록 만든다’ 같은 소식들은 루머로 밝혀졌네요. 설마 IE mode 를 기본으로 해서 배포하는게 아닐까 하는 걱정을 했었는데 말이죠. :)

이 익스텐션 개발과 관련된 뒷 얘기가 궁금하시다면 아래 링크도 한 번 방문해보세요.

http://kldp.org/node/97601

버그 리포트나 패치도 받는다고 하네요. 상품도 있다고 하니 관심있으신 분들은 한 번 도전해보시길…

http://kldp.org/node/97676

정태영

요번 학기에도 웍스테이션 실을 제가 관리하게 되었고, 2학기에는 리눅스 실습 수업이 있는 관계로 지난 일요일에 34대의 PC 에 우분투를 설치했습니다. 우분투 8.04 가 릴리즈될 때 32bit 용 우분투를 18장 신청했는데, 요번엔 군말없이 다 보내준 관계로 시디를 굽는 노가다를 안해도 됐네요. 휴~

우선 우분투 8.04 인스톨러는 7.10 의 인스톨러에 비해 훨씬 좋아진 느낌입니다. 처음에 어떤 언어로 설치를 진행할 지 선택할 수 있기 때문에 한글로도 인스톨을 진행할 수 있습니다. ‘다음’ 버튼만 클릭하다보니 설치가 끝나버리네요. 클릭 6번만으로 깔끔하게 설치 종료!

대부분의 하드웨어를 알아서 잡아주었지만, 보드에 내장된 nvidia 의 geforce6100 의 경우엔 약간의 문제가 있었습니다. 그나마도 ‘시스템/하드웨어 드라이버’ 메뉴를 통해 nvidia 의 바이너리 드라이버를 설치하기만 하면 되네요. 메인보드 시디를 넣고 드라이버를 설치하거나 인터넷에서 드라이버를 받아 설치해야하는 윈도우와 아주 대조적입니다. 조금 더 있으면 설치가 너무 어려워서 윈도우는 못쓰겠다는 말도 나올 거 같아요. 아쉬운 점은 nateon 이 아직도 메인 패키지 트리에 포함되지 않았다는 점 정도?

그런데 아무 말썽 없이 세팅이 끝날 리가 없지요! yellow page 를 설정하다 약간의 문제가 만났습니다. nfs 는 nfs-common 를 설치하는 것으로 간단히 끝났는데, nis 가 말썽! 초기 부팅시에 ypbind 가 실패하는 증상이 발견되었습니다. 아예 안되면 설정을 잘못했다고 생각할텐데, 신기하게도 nis 서비스를 재시작해줄 경우 아주 잘 동작한다는거죠. 타이밍 문제인가 싶어서 nis 서비스를 조금 더 늦게 시작하도록 고쳐봤지만 문제는 해결되지 않았습니다. 비굴하게 rc.local 에서 nis 서비스를 재시작하도록 해두는 것으로 문제는 해결됐지만 야매로 해결한 것이다보니 만족스럽지가 않네요.

2001년 처음 알짜 리눅스를 만나고, 레드햇, 한컴 등등을 거쳐 젠투에 안착해있다가 요근래 우분투도 여기저기 많이 적용해보고 있는데, 다들 각기 장단점이 있는 것 같습니다. 오라클같은 비오픈소스 상용 소프트웨어를 사용하려면 레드햇 혹은 CentOS 등이 좋은 선택일테고, 별 생각없이 간단한 데스크탑으로 사용하려면 우분투가 좋은 선택이 될 수 있을 거라 생각합니다. 물론 개인적인 패치들이라거나 실험적인 기능들(spf/srs 등과 같은)을 적극적으로 활용해보려면 젠투도 좋은 선택일테구요.

하여튼 gtk-2.0 이 발표되던 시점 이후로 리눅스 데스크탑은 정말 굉장한 속도로 발전하고 있네요. gnome-2.0 때만 해도 웹브라우져에선 동영상 하나 제대로 볼 수 없었고, (mplayer plug-in 은 그 당시 존재하지 않았습니다. vlc 의 모질라 플러그인도 마찬가지) 플래쉬 플러그인은 심심하면 브라우져를 폭발시켰었는데 말이죠. 정말 이런 속도로 발전해간다면 앞으로의 리눅스 데스크탑은 얼마나 더 멋져질지 너무나 기대되네요.

p.s) 오랫만에 다시 보는 제 예전 리눅스 데스크탑 스크린샷들~

http://mytears.org/resources/etc/screenshot/linux/

정태영

어쩌다가 몇 년전에 kldpcdk 의 포럼에서 제가 참여했던 쓰레드들을 다시 보게 되었습니다. 유니코드나 서체와 관련된 글들에서 가끔 흥분을 했던 기억이 있는데, 지금 다시 보니까 얼굴이 화끈화끈 거리는군요. 하여튼 ‘왜 공개 글꼴이 필요한가?’ 쓰레드를 보고 생각난 게 있어서 오랫만에 포스팅을 해보려 합니다.

현재 은글꼴, ttf-alee, 서울체, 남산체, 백묵 글꼴 등등 공개 글꼴들이 하나 둘 나타나기 시작하고 있지만, 아직도 화면용(On screen display)으로 특화된 서체는 없습니다. 그 때문에 웹에서는 IR(Image Replacement) 등의 방법을 통해 이미 렌더링된 이미지로 텍스트를 대체시키는 방법을 많이 사용하고 있는데, 왜 화면용 글꼴에는 다들 관심을 가지지 않는 것일지 조금 아쉽네요.

Microsoft 의 경우 화면 용으로 Webdings, Verdana, Georgia, Trebuchet MS, Comic Sans MS, Impact, Arial, Courier New, Times New Roman 등의 서체를 공개하고 있습니다. 다음 페이지를 참고해보시면 알겠지만 이 서체들은 대부분 IE 나 Microsoft Windows 에 기본으로 번들되어 있기 때문에 대부분 기본으로 설치되게 됩니다.

http://www.microsoft.com/typography/web/fonts/fonts02.htm

또한 다음 URL 을 참고해보시면 웹을 통해 다운로드 받은 뒤 매킨토시에서도 사용할 수 있다고 되어 있습니다. (Verdana, Trebuchet MS 등은 화면용으로는 불필요한 기능들을 제외시킨 화면용 글꼴입니다.) 게다가 Linux 에서도 흔히 Corefonts 란 이름으로 패키징되어 사용되고 있죠.

http://www.microsoft.com/typography/web/fonts/verdana/default.htm

물론 아무 제약 없이 사용할 수 있는 서체의 개발을 의뢰하는 데는 많은 비용이 드는 것으로 알고 있습니다. 그렇기 때문에 서울 남산체, 한강체 처럼 (서울시에서 주도했으니) 나라에서 주도해서 자유롭게 사용가능한 화면용 서체들이 좀 개발되었으면 하는 바램이 있네요. 뭐 조금 앞어나간다면 IE 서비스팩 등에 그 새로운 화면용 글꼴들이 포함되었으면 더 좋겠구요. (이런 건 정치적인 문제다보니…)

정태영

사실 저나 제 주위 사람들 말고는 쓰는 사람이 거의 없는거 같긴 하지만 하여튼 메모리 릭을 일으키는 몇 가지 버그를 잡았습니다.

  1. ::GetDC(hWnd) 후 ::ReleaseDC(hWnd,dc) 를 호출 하지 않아서 생기는 메모리 릭
  2. gdTexImage2D 를 반복 호출해서 생기게 되는 메모리 릭

정확하게 설명하면 위와 같구요. ::GetDC 로 받아온 Device Context 는 “꼭” ::ReleaseDC 를 호출해줘야 한다는 msdn 님의 가르침에 따라, 약간의 코드를 추가해줬습니다.

또한 gdTexImage2D 를 반복해서 호출하면 이전 텍스쳐 데이타가 사용하던 메모리 영역은 해제가 될 줄 알았는데, 실제로는 그렇지가 않네요. 텍스쳐 사이즈가 달라지는 경우엔 glDestroyTexture 후 glGenTexture, glBindTexture, glTexImage2D 를 차례로 호출해줘야 하고, 사이즈가 달라질 필요가 없는 경우라면 gdTexSubImage2D 를 사용하면 된답니다. 어려운 openGL 세상이에요.

자세한 수정 사항은 제 trac 페이지에서 확인하심 될 듯~
http://trac.unfix.net/browser/yuvplayer/win/yuvplayer/OpenGLView.cpp

p.s) trac 이 ajax 를 활용하도록 업데이트 되었네요.

정태영

오랫만에 그놈 코리아 http://gnome.or.kr/ 에 접속했더니 히야! 대게 이뻐졌네요!!!

정태영

왠지 모르게 점점 마이너 한 것들만 사용하게 되네요. postfix 나 exim 을 사용해보니 여러가지 장점이 눈에 보이는데 막상 how to 문서같은게 그리 잘 나와있질 않다보니 사람들이 사용하기를 꺼리는 것 같아 처음으로 howto 문서를 하나 작성해려 합니다.

이 문서는 젠투에서 exim 을 사용하는 방법을 기준으로 설명하고 있습니다.

Table of Contents

  1. 기본 구성
  2. 필요한 소프트웨어 설치하기
  3. 가상호스트 설정하기
  4. 바이러스 필터 설정
  5. 스팸 필터 설정
  6. dovecot 설정하기
  7. smtp 인증 설정하기
  8. 다른 배포판을 사용할 때 유의점

기본 구성

Mail Transfer Agent 로는 exim, 스팸 필터로는 bogofilter, 바이러스 필터는 clamav, pop3/imap server 로는 dovecot 을 사용하기로 하겠습니다. dovecot 이나 exim 이나 기본 적으로 실행하는 프로세스들이 많지 않기 때문에 프로세스 리스트를 확인할 때 깔끔해서 좋더군요.

필요한 소프트웨어 설치하기

저 같은 경우는 대강 다음과 같은 USE 플래그를 이용해서 설치를 진행했습니다.

# emerge -pv exim bogofilter clamav dovecot procmail   These are the packages that would be merged, in order:   Calculating dependencies... done! [ebuild R ] mail-mta/exim-4.69 USE=”domainkeys dovecot-sasl exiscan exiscan-acl gnutls ipv6 pam perl sasl spf sqlite srs ssl syslog tcpd -X -dnsdb -ldap -lmtp -mailwrapper -mbox -mbx -mysql -nis -postgres -radius” 0 kB [ebuild R ] mail-filter/bogofilter-1.1.6 USE=”berkdb sqlite -gsl” 0 kB [ebuild R ] app-antivirus/clamav-0.92.1-r1 USE=”bzip2 crypt milter nls -mailwrapper (-selinux)” 14,927 kB [ebuild R ] net-mail/dovecot-1.0.13-r1 USE=”ipv6 pam pop3d ssl -debug -doc -kerberos -ldap -managesieve -mbox -mysql -postgres -sieve -suid -vpopmail” 0 kB [ebuild R ] mail-filter/procmail-3.22-r7 USE=”-mbox (-selinux)” 222 kB   Total: 5 packages (5 reinstalls), Size of downloads: 15,149 kB

domainkeys 는 야후나 구글에서 사용하고 있는 domain key 를 제대로 검증하기 위한 USE 플래그가 되겠구요, dovecot-sasl 은 smtp 인증에 dovecot 을 이용하기 위한 플래그입니다.

spf, srs, domainkey 같은 플래그는 해당 기능을 사용하지 않겠다면 빼주셔도 무방합니다. CentOS 등에서는 dovecot-sasl 도 기본으로 지원이 안되더라구요. 하튼 관련해서 자세한 건 뒤에서 설명하도록 하겠습니다.

살펴보니 별로 특이한 플래그를 사용하지는 않네요. -_;; 젠투 유져라면 다들 아시겠지만 실제 설치는 위의 예제에서 -pv 를 제거하고 실행시키시면 됩니다.

가상호스트 설정하기

설치가 무사히 끝났다면 가상호스트를 설정해봅시다. 젠투에서는 기본으로 설정파일을 만들어주지 않습니다. 그렇기 때문에 우선 /etc/exim/exim.conf.dist 를 복사해서 exim.conf 를 만들어줍니다.

# cp /etc/exim/exim.conf.dist /etc/exim/exim.conf

그런 다음 자신이 좋아하는 편집기를 이용해서 exim.conf 파일을 열고, 아래와 같은 부분을 찾아서 자신의 환경에 맞게 수정을 한 뒤

primary_hostname = unfix.net   domainlist local_domains = @ : localhost : dsearch;/etc/exim/virtual domainlist relay_to_domains = hostlist relay_from_hosts = 127.0.0.1

router 부분에서 system_alias 바로 아래에 다음 코드를 추가해줍니다.

virtual: driver = redirect allow_fail allow_defer domains = dsearch;/etc/exim/virtual data = ${expand:${lookup{$local_part}lsearch*@{/etc/exim/virtual/$domain}}} retry_use_local_part file_transport = address_file pipe_transport = address_pipe

주 도메인이 있는 경우 localhost 대신 unfix.net 같은 도메인을 사용해도 무방합니다. 만약 위의 예제에서 localhost 대신 unfix.net 을 설정해주면 로컬에 있는 모든 계정은 id@unfix.net 형태의 메일계정으로 사용이 가능해집니다. 주 도메인이 여러개라면 @ : localhost : mydomain1 : mydomain2 식으로 콜론(:) 을 이용해서 여러 개를 모두 적어주면 되겠습니다.

이젠 가상 호스트를 설정해봅시다. 만약 test.com 과 test.net 을 위한 가상호스트를 설정하려 한다면 다음과 같이 하면 됩니다.

# mkdir /etc/exim/virtual # vi /etc/exim/virtual/test.com # vi /etc/exim/virtual/test.net

위에서 dsearch; … 으로 설정해놓은 디렉토리 안에다가 호스트 이름을 이용해서 alias 파일을 만들어주면 되니까 간단하죠? 각 파일에 들어가는 내용은 다음과 같습니다.

# test.com
test: aqua@localhost
melong: test@gmail.com

# test.net
aqua: test@localhost

test.com 파일에 들어가 있는 test: aqua@localhosttest@test.com 으로 온 메일을 aqua@localhost 로 포워드를 시키라는 거에요. 워낙 간단하니 다른 것들은 따로 설명 안해도 될 것 같네요. 단 위에서 localhost 대신 myhost.net 을 사용했다면 aqua@myhost.net 처럼 설정해줘야 합니다.

여기까지 따라하셨다면 가상 호스트 설정은 끝! 가상 호스트 파일을 수정했을 때는 alias 를 수정했을 때와 달리 newalias 를 실행시키실 필요가 없습니다.

바이러스 필터 설정

바이러스 필터로는 clamav 를 사용할 건데, USE 플래그로 exiscan 과 exiscan-acl 을 사용해서 설치했다면 clamd 와 연동하는건 아주 간단합니다.

exim.conf 에서 다음과 같은 줄을 찾아서 주석을 해제시키세요.

av_scanner = clamd:/var/run/clamav/clamd.sock

끝! clamd.sock 위치는 배포판에 따라 다를 수 있습니다. 자세한건 /etc/clamd.conf 를 참조하세요.

스팸 필터 설정

스팸 필터로는 bogofilter 를 사용할건데 이건 예전에 써놨던 다른 글을 참고해주세요.

dovecot 설정하기

우선 /etc/dovecot.conf 파일을 열어서 서비스할 프로토콜 리스트를 적어주세요. 그 다음에 plaintext 로 로그인할 수 있도록 설정해주고, pop3 나 imaps 를 위해 ssl 을 사용할거라고 명시해주고, 마지막으로 dovecot-sasl 을 사용할 수 있도록 auth-client 를 활성화시켜주세요.

이를 종합해보면 다음과 같은 설정파일이 만들어집니다. 볼드로 표시한 부분이 제가 수정한 부분이에요. 주석을 제거하고 보니 정말 간단하네요. -_-;

protocols = imap imaps pop3 pop3s   listen = [::] disable_plaintext_auth = no   ssl_disable = no ssl_cert_file = /etc/ssl/private/unfix.net.crt ssl_key_file = /etc/ssl/private/unfix.net.key   mail_location = maildir:~/.maildir   protocol imap { }   protocol pop3 { pop3_uidl_format = %08Xu%08Xv }   protocol lda { postmaster_address = postmaster@example.com }   auth default { mechanisms = plain login passdb pam { args = “*” } userdb passwd { } user = root socket listen { client { path = /var/run/dovecot/auth-client mode = 0666 } } }

그리고 /etc/pam.d 로 가서 smtp 파일이 있는지를 체크해보시고 만약 없다면 system-login 이나 pop 등을 복사해서 smtp 파일을 만들어주세요. 이것 때문에 어제 혈압이 올랐던걸 생각하면 …!!!

여기까지 설정하셨음 90% 는 끝난겁니다.

smtp 인증 설정하기

자 다시 exim.conf 로 돌아와서 smtp 인증을 설정해봅시다. exim.conf 에서 authenticators 파트를 찾아서 아래와 같은 내용을 추가해줍시다.

plain: driver = dovecot public_name = PLAIN server_socket = /var/run/dovecot/auth-client server_set_id = $1 server_advertise_condition = 1   login: driver = dovecot public_name = LOGIN server_socket = /var/run/dovecot/auth-client server_set_id = $1 server_advertise_condition = 1

이걸로 설정은 끝! 다음엔 데몬들을 띄워서 제대로 되나 확인을 해보세요.

# /etc/init.d/dovecot start # /etc/init.d/exim start

다른 배포판을 사용할 때 유의점

제가 이것저것 확인해본 건 아니라 정확하게 알려드릴 순 없지만 CentOS 에서는 spf, srs, dovecot-sasl, domainkeys 등을 사용할 수가 없습니다. 그렇기 때문에 dovecot-auth 대신 saslauthd 를 사용해야 해요. saslauthd 를 사용할 때의 authenticator 파트는 다음과 같습니다.

PLAIN: driver = plaintext public_name = PLAIN server_condition = ${if saslauthd{{$1}{$2}{smtp}}{1}{0}} server_set_id = $1 server_advertise_condition = true   LOGIN: driver = plaintext public_name = LOGIN server_condition = ${if saslauthd{{$1}{$2}{smtp}}{1}{0}} server_set_id = $1 server_advertise_condition = true

server_condition 을 다음처럼 해서 pam 만으로도 인증을 할 수 있을지도 모르겠는데, 테스트하기가 귀찮네요. -_-; 혹시나 시도해보신분 있으면 결과를 좀 알려주세요.

server_condition = "${if pam{$2:$3}{1}{0}}"

참고로 인증을 saslauthd 를 통해서 하려는 경우 saslauthd 가 실행 중에 있어야 합니다.

정태영

하도 좋다는 얘기가 여기저기서 들려오길래 파워북에 firefox3 beta 를 한 번 설치해봤습니다. 대대로 ppc powerbook 에서는 firefox 의 반응이 그리 좋지 못했는데 firefox3 는 굉장히 만족스럽네요.

firefox3 for mac

우선 위의 이미지에서 볼 수 있다시피 메탈 룩으로 바뀌었고, 가짜로 볼드를 만들어내는 기능이 없어졌습니다. 또 주소 창 옆에 RSS 아이콘과 북마크 아이콘이 함께 들어가있어서 맘에 드는 페이지를 북마크 하는게 더 쉬워질 것 같습니다.

url auto completion of firefox3 for mac

그리고 url 자동 완성 기능이 그 글자로 시작하는 것만이 아니라 그 글자를 포함하는 것으로 바뀌었고, title 정보까지 같이 보여주도록 바뀌었네요. 이쁘긴 한데 실용적일지에 대해선 아직 노코멘트…

zoom function of firefox3 for mac

또 이렇게 페이지 자체를 확대하는 기능이 들어갔습니다. 왼쪽 위에 꽃 모양은 이미지인데, 이미지도 함께 확대가 되고 있는 것을 확인해볼 수 있네요.

스크롤도 자연스러워졌고, 세로로 긴 이미지가 들어가있는 경우 브라우져가 이상해지는 현상도 해결한 것 같습니다. 이제는 맥에서도 사파리가 아닌 firefox 를 주 브라우져로 사용하게 될 지도 모르겠네요.