HP-UX 에서 subversion 컴파일하기
Pre-Requisite
- subversion 및 의존성 있는 library/app 는 /home/lesstif/local 폴더에 설치된다고 가정
- 아래의 순서대로 library 를 설치 & compile 해놓아야 함
- subversion 소스 압축 해제 (ex: tar zxvf subversion-1.7.13.tar.gz)
- cd subversion-1.7.13
- 의존성 있는 소스 download
- sh get-deps.sh
openssl
OpenSSL 빌드 참고
- wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
- tar zxvf openssl-1.0.1e.tar.gz
- cd openssl-1.0.1e
- ./Configure hpux-parisc2-cc --prefix=/home/lesstif/local/ssl32
- vi Makefile
- CFLAG 를 찾아서 맨뒤에 +z 추가
- make && make install
Serf
- cd serf
- ./configure --with-openssl=/home/lesstif/local/ssl32/ && make
- make && make install
Unzip
- http://sourceforge.net/projects/infozip/files/UnZip%206.x%20%28latest%29/UnZip%206.0/unzip60.tar.gz/download 에서 소스 다운로드
- 압축 해제 및 cd
- make -f unix/Makefile hpux
- cp unzip /usr/local/bin
zlib
- wget http://zlib.net/zlib-1.2.8.tar.gz
- ./configure --prefix=/home/lesstif/local && make install
apache httpd
필요한건 apr, apr-util 이므로 httpd 를 컴파일하지 않고 apr 과 apr-util 만 컴파일해도 된다.
- http://apache.mirror.cdnetworks.com//httpd/httpd-2.2.25.tar.gz 다운로드
- tar zxvf httpd-2.2.25.tar.gz
- cd httpd-2.2.25
- ./configure --enable-ssl --with-ssl=/home/lesstif/local/ssl32/ --prefix=/home/lesstif/local/apache-httpd && make
compile 하다가 다음 linker 에러가 발생할수 있음
libtool: link: warning: this platform does not like uninstalled shared libraries
libtool: link: `htpasswd’ will be relinked during installation
/usr/ccs/bin/ld: Unsatisfied symbols:
apr_generate_random_bytes (first referenced in .libs/htpasswd.o) (code)
collect2: ld returned 1 exit status
gmake[2]: *** [htpasswd] Error 1- HP-UX 버전이 낮거나 OS patch가 안 되어서 kernel random device(/dev/random or /dev/urandom) 를 사용할수 없어서 발생
다음 Workaround 로 해결 (임시로 htpasswd 파일을 생성해서 컴파일 단계를 통과)
cd support touch htpasswd cd .. make
- http://dino.ciuffetti.info/2011/11/how-to-compile-apache-hpux-11-11-parisc/ 참고
apr, apr-util
- cd apr
- ./configure --prefix=/home/lesstif/local/ && make
- make install
- cd ../apr-util
- ./configure --prefix=/home/lesstif/local/ --with-apr=/home/lesstif/local/bin/ && make (apr-util 은 apr 이 필요하므로 --with-apr 옵션 추가)
- make
- make install
Subversion compile
- svn source 다운로드
sqlite-amalgamation 소스 다운로드
- wget http://www.sqlite.org/2013/sqlite-amalgamation-3080002.zip
- unzip sqlite-amalgamation-3080002.zip
- mv sqlite-amalgamation-3080002 sqlite-amalgamation
configure
./configure --prefix=/home/lesstif/local --with-openssl=/home/lesstif/local/ssl32/ --with-apxs=/home/lesstif/local/bin/apxs --with-zlib=/home/lesstif/local/ --with-serf=serf
- make
다음 linker 에러가 발생할 경우 조치
/usr/ccs/bin/ld: Can't find library: "dl"
원인: 32bit shared library 는 libdld.sl 인데 libtool 이 libdl.sl 을 찾아서 발생
조치: linker 가 찾는 library directory 에 symbolic link 추가
- ln /usr/lib/libdld.sl /home/lesstif/local/lib/libdl.sl
- Makefile에 SVN_APR_LIBS 항목에 명시적으로 -ldl 을 추가해서 linker 가 찾을수 있게 설정
- make install
TroubleShoot
실행시 다음 에러 발생
/usr/lib/dld.sl: Can't find path for shared library: libdld.2
- subversion 소스로 이동
- make clean 하여 기존 소스 cleaning
vi Makefile
## Before LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir) ## After LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath /usr/lib $(libdir)
- -rpath 를 찾아서 /usr/lib 을 추가
- make && make install