builddefs.hの変更
--- builddefs.h.orig Sat May 30 06:58:11 2009 +++ builddefs.h Tue Jul 7 12:45:57 2009 @@ -1,9 +1,9 @@ #ifndef VSF_BUILDDEFS_H #define VSF_BUILDDEFS_H -#undef VSF_BUILD_TCPWRAPPERS +#define VSF_BUILD_TCPWRAPPERS #define VSF_BUILD_PAM -#undef VSF_BUILD_SSL +#define VSF_BUILD_SSL #endif /* VSF_BUILDDEFS_H */
Makefileの修正
--- Makefile.orig Sat May 23 04:44:52 2009 +++ Makefile Tue Jul 7 13:53:04 2009 @@ -1,9 +1,11 @@ # Makefile for systems with GNU tools CC = gcc -INSTALL = install +INSTALL = /usr/ucb/install IFLAGS = -idirafter dummyinc #CFLAGS = -g CFLAGS = -O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion +CPPFLAGS = -I/usr/sfw/include -DSOLARIS +LDFLAGS = -L/usr/sfw/lib -R/usr/sfw/lib LIBS = `./vsf_findlibs.sh` LINK = -Wl,-s @@ -18,7 +20,7 @@ .c.o: - $(CC) -c $*.c $(CFLAGS) $(IFLAGS) + $(CC) -c $*.c $(CFLAGS) $(CPPFLAGS) $(IFLAGS) vsftpd: $(OBJS) $(CC) -o vsftpd $(OBJS) $(LINK) $(LIBS) $(LDFLAGS) @@ -28,9 +30,9 @@ $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \ else \ $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi - if [ -x /usr/local/man ]; then \ - $(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \ - $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \ + if [ -x /usr/local/share/man ]; then \ + $(INSTALL) -m 644 vsftpd.8 /usr/local/share/man/man8/vsftpd.8; \ + $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/share/man/man5/vsftpd.conf.5; \ elif [ -x /usr/share/man ]; then \ $(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \ $(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
vsf_findlibs.shはGNU grepでないとうまく動かないので修正します。
--- vsf_findlibs.sh.orig Fri May 22 05:43:11 2009 +++ vsf_findlibs.sh Tue Jul 7 12:59:09 2009 @@ -2,7 +2,7 @@ # Cheesy hacky location of additional link libraries. locate_library() { [ ! "$1*" = "`echo $1*`" ]; } -find_func() { egrep $1 $2 >/dev/null; } +find_func() { ggrep $1 $2 >/dev/null; } if find_func hosts_access tcpwrap.o; then echo "-lwrap";
OSバンドルのopenssl 0.9.7ではsha256をサポートしていないので、 ssl.cを修正します。
--- ssl.c.orig Sat Jan 10 05:47:05 2009 +++ ssl.c Tue Jul 7 13:48:53 2009 @@ -593,7 +593,11 @@ str_reserve(p_str, EVP_MAX_MD_SIZE); str_empty(p_str); str_rpad(p_str, EVP_MAX_MD_SIZE); +#ifdef SOLARIS + if (!X509_digest(p_cert, EVP_sha1(), (unsigned char*) str_getbuf(p_str), +#else if (!X509_digest(p_cert, EVP_sha256(), (unsigned char*) str_getbuf(p_str), +#endif &num_bytes)) { die("X509_digest failed");
Solarisのsetrlimit()はRLIMIT_NPROCを実装していないので 何もしないように修正します。
--- sysutil.c.orig Wed May 27 15:14:59 2009 +++ sysutil.c Tue Jul 7 12:33:26 2009 @@ -2779,6 +2779,7 @@ void vsf_sysutil_set_no_procs() { +#ifdef RLIMIT_NPROC int ret; struct rlimit rlim; rlim.rlim_cur = 0; @@ -2788,6 +2789,7 @@ { die("setrlimit NPROC"); } +#endif /* not implemented on Solaris */ } void
% gmake # gmake install