윦위키
뭐든지 위키

wikiX

영문명wikiX
한글명위킥스
공식 사이트없어졌다 (Wayback Machine)
개발자조희대
개발 시작일2002년 8월 20일
라이선스BSD 2-조항 라이선스, 보드웨어
프로그래밍 언어PHP
소스코드https://github.com/HuidaeCho/wikix

조희대가 PHP로 만든 아마도 최초의 국산 위키 프로그램이다. MySQL과 PostgreSQL을 지원하며 나름대로 유연한 확장성을 제공하려고 노력했다. 이 프로그램을 아직도 기억하는 uskusi님께서 좋은 글을 남겨 주셨다.

아직 살아 있는 wikiX 사이트도 있었지만 2020년 들어 도메인이 만료되었다. forXtra님, 어디 계세요?라고 썼었는데 이 링크를 타고 해당 사이트의 방명록에 스팸이 줄줄이 달리는 듯하다. 죄송합니다! – hcho 2020-02-22

1   wikiX 소스 코드 GitHub으로 이전하기

SourceForge가 문 닫기 전에 wikiX의 소스 코드를 GitHub으로 이전하기로 결심했다. CVS를 Git으로 변환해 주는 툴로는 git에 기본으로 딸려 나오는 git cvsimport와 cvs2git, cvs-fast-export 등이 있다. 진짠지 거짓말인진 모르겠지만 cvs-fast-export의 man page에 따르면 cvs-fast-export가 메모리만 이용해서 한 번만 패스하기 때문에 빠르지만 메모리가 많아야 된다고 한다. 뭐 wikiX가 그렇게 큰 프로젝트는 아니니까 cvs-fast-export를 쓰기로 결정했다.

# cvs-fast-export를 설치한다.
mkdir -p ~/usr/local/src
cd ~/usr/local/src
git clone https://gitlab.com/esr/cvs-fast-export.git
cd cvs-fast-export
prefix=$HOME/usr/local make install

# wikiX의 CVS 저장소를 복사한다.
mkdir -p ~/tmp
cd ~/tmp
rsync -av rsync://a.cvs.sourceforge.net/cvsroot/wikix/\* cvs

# 개발자 정보를 작성한다. 이메일 주소는 각 개발자의 GitHub 계정에서 발췌했다.
# 여기서는 스팸을 방지하기 위해 @을 제거했다.
cat<<EOT>wikix-authors.txt
geni4u = Huidae Cho <grass4u gmail.com> KST
uskusi = Eunseok Eom <me eseom.org> KST
tokigun = Seonghoon Kang <public+git mearie.org> KST
EOT

# cvs-fast-export가 제공하는 cvsconvert를 이용해서 CVS를 Git으로 변환한다.
cvsconvert -A wikix-authors.txt cvs/wikix

# 확인해 보자. 간단하네!
# 그런데 man page대로라면 log에 시간대가 KST로 적용됐어야 하는데 그렇지 않다.
# 아마 내가 이 기능을 잘 못 이해하고 있는지도 모르겠다. 그렇게 큰 문제는 아니다.
cd cvs-wikix-git
git checkout master
git log

# 이제 git 디렉토리를 제자리로 옮긴다.
cd ..
mv cvs-wikix-git ~/usr/local/src/wikix

# GitHub에서 wikix 저장소를 만든 후 푸시한다.
cat<<EOT>README.md
# wikiX

wikiX is an extensible Wiki system written in PHP. It was first published on August 20, 2002 by Huidae Cho, but is currently not maintained. This repository is only for archiving purposes.
EOT
git add README.md
git commit -m 'Add README.md'
git remote add origin git@github.com:HuidaeCho/wikix.git
git push -u origin master

-- hcho 2020-01-14

2   참고문헌