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