Не могу собрать vsFTPd.ext под OpenBSD 5.7
(http://vsftpd.devnet.ru/rus/)
Оригинальный (vsFTPd.ext) MakeFile
Код: Выделить всё
# Makefile for systems with GNU tools
CC = gcc
INSTALL = install
IFLAGS = -idirafter dummyinc
#CFLAGS = -g
CFLAGS = -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \
-Wall -W -Wshadow -Werror -Wformat-security \
-D_FORTIFY_SOURCE=2 \
#-pedantic -Wconversion
LIBS = -lcap -ldl -lcrypt -lpam -lwrap -lnsl -lssl -lcrypto
# | | + VSF_BUILD_SSL
# | + VSF_BUILD_TCPWRAPPERS
# + VSF_BUILD_PAM
LINK = -Wl,-s
LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
#OBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
# tunables.o ftpdataio.o secbuf.o ls.o \
# postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o \
# banner.o filestr.o parseconf.o secutil.o \
# ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \
# tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o \
# ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o \
# seccompsandbox.o \
# charconv.o pasvrules.o usersip.o http.o http_msg.o http_str.o
.c.o:
$(CC) -c $*.c $(CFLAGS) $(IFLAGS)
vsftpd: $(OBJS)
$(CC) -o vsftpd $(LDFLAGS) $(OBJS) $(LINK) $(LIBS)
install:
if [ -x /usr/local/sbin ]; then \
$(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; \
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; \
else \
$(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
$(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
$(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
clean:
rm -f *.o *.swp vsftpd
Код: Выделить всё
# Makefile for systems with GNU tools
CC = gcc
INSTALL = install
IFLAGS = -idirafter dummyinc
#CFLAGS = -g
CFLAGS = -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \
-Wall -W -Wshadow -Werror -Wformat-security \
-D_FORTIFY_SOURCE=2 \
#-pedantic -Wconversion
#LIBS = `./vsf_findlibs.sh`
LIBS = -lssl -lcrypto
#LIBS = -lcap -ldl -lcrypt -lpam -lwrap -lnsl -lssl -lcrypto
# | | + VSF_BUILD_SSL
# | + VSF_BUILD_TCPWRAPPERS
# + VSF_BUILD_PAM
LINK = -Wl,-s
LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now
#OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
OBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
tunables.o ftpdataio.o secbuf.o ls.o \
postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o \
banner.o filestr.o parseconf.o secutil.o \
ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \
tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o \
ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o \
seccompsandbox.o \
charconv.o pasvrules.o usersip.o http.o http_msg.o http_str.o
.c.o:
$(CC) -c $*.c $(CFLAGS) $(IFLAGS)
vsftpd: $(OBJS)
# $(CC) -o vsftpd $(LDFLAGS) $(OBJS) $(LINK) $(LIBS)
$(CC) -o vsftpd $(OBJS) $(LINK) $(LDFLAGS) $(LIBS)
install:
if [ -x /usr/local/sbin ]; then \
$(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; \
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; \
else \
$(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
$(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
$(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
clean:
rm -f *.o *.swp vsftpd
Make
Код: Выделить всё
/home/work/vsFTPd-3.0.2-ext.1 >>make
gcc -c sysutil.c -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wall -W -Wshadow -Werror -Wformat-security -D_FORTIFY_SOURCE=2 -idirafter dummyinc
cc1: warnings being treated as errors
sysutil.c: In function 'vsf_sysutil_get_datetimefmt':
sysutil.c:2828: warning: passing argument 1 of 'gmtime' from incompatible pointer type
sysutil.c:2830: warning: passing argument 1 of 'localtime' from incompatible pointer type
*** Error 1 in /home/work/vsFTPd-3.0.2-ext.1 (Makefile:34 'sysutil.o')
/home/work/vsFTPd-3.0.2-ext.1 >>
Код: Выделить всё
const char*
vsf_sysutil_get_datetimefmt(int use_localtime, long curr_time, const char* fmt)
{
static char datebuf[64];
const struct tm* p_tm;
int i = 0;
if (!use_localtime) {
p_tm = gmtime(&curr_time);
} else {
p_tm = localtime(&curr_time);
}
if (strftime(datebuf, sizeof(datebuf), fmt, p_tm) == 0)
{
die("strftime");
}
datebuf[sizeof(datebuf) - 1] = '\0';
/* This hack is because %e in strftime() isn't so portable */
while (datebuf[i] != '!' && datebuf[i] != '\0')
{
++i;
}
if (datebuf[i] == '!')
{
datebuf[i] = ' ';
if (datebuf[i+1] == '0')
{
datebuf[i+1] = ' ';
}
}
return datebuf;
}