vsftpd 2.1.0

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

hiraga@next-hop.net
Last modified: $Date: 2009/07/07 05:00:51 $
Apache