Unify installation environment

This commit is contained in:
Vladimir Dubrovin 2026-05-29 20:29:25 +03:00
parent 01dad546b7
commit f0a672b16a
19 changed files with 185 additions and 220 deletions

View File

@ -676,8 +676,25 @@ endif()
# Install configuration files # Install configuration files
if(NOT WIN32) if(NOT WIN32)
install(FILES scripts/3proxy.cfg DESTINATION /etc/3proxy) set(CRYPT_PREFIX "${3PROXY_BINARY_PREFIX}")
install(FILES scripts/add3proxyuser.sh DESTINATION ${CMAKE_INSTALL_BINDIR}) set(3PROXY_CONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/3proxy/conf")
set(3PROXY_COUNTERDIR "/opt/3proxy")
install(DIRECTORY DESTINATION /opt/3proxy)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/scripts/3proxy.cfg.in
${CMAKE_CURRENT_BINARY_DIR}/3proxy.cfg
@ONLY
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/3proxy.cfg DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/3proxy)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/scripts/add3proxyuser.sh.in
${CMAKE_CURRENT_BINARY_DIR}/add3proxyuser
@ONLY
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/add3proxyuser
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endif() endif()
# Install service files (systemd, launchd, init.d, or rc.d) # Install service files (systemd, launchd, init.d, or rc.d)
@ -736,16 +753,6 @@ if(NOT WIN32)
DESTINATION ${SYSTEMD_UNIT_DIR} DESTINATION ${SYSTEMD_UNIT_DIR}
) )
# Install tmpfiles.d configuration for runtime directory
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/scripts/3proxy.tmpfiles.in
${CMAKE_CURRENT_BINARY_DIR}/3proxy.conf
@ONLY
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/3proxy.conf
DESTINATION /usr/lib/tmpfiles.d
)
message(STATUS " systemd: YES (${SYSTEMD_UNIT_DIR})") message(STATUS " systemd: YES (${SYSTEMD_UNIT_DIR})")
else() else()
# No systemd - install init.d script # No systemd - install init.d script
@ -778,16 +785,14 @@ if(NOT WIN32)
message(STATUS " init.d: YES (/etc/init.d)") message(STATUS " init.d: YES (/etc/init.d)")
endif() endif()
# Create proxy user and group during installation # Run postinstall only for direct installs (no DESTDIR)
install(FILES scripts/postinstall.sh
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
install(CODE " install(CODE "
if(\"\$ENV{DESTDIR}\" STREQUAL \"\")
execute_process( execute_process(
COMMAND ${CMAKE_INSTALL_FULL_BINDIR}/postinstall.sh COMMAND ${CMAKE_COMMAND} -E env sh ${CMAKE_CURRENT_SOURCE_DIR}/scripts/postinstall.sh ${CMAKE_INSTALL_PREFIX}
RESULT_VARIABLE POSTINSTALL_RESULT RESULT_VARIABLE POSTINSTALL_RESULT
) )
endif()
") ")
endif() endif()

View File

@ -68,29 +68,39 @@ endif
include Makefile.inc include Makefile.inc
DESTDIR ?=
prefix ?= /usr/local
BINPREFIX ?= $(prefix)/bin
install: all install: all
if [ ! -d "/usr/local/3proxy/bin" ]; then mkdir -p /usr/local/3proxy/bin/; fi if [ ! -d "$(DESTDIR)$(BINPREFIX)" ]; then mkdir -p $(DESTDIR)$(BINPREFIX)/; fi
install bin/3proxy /usr/local/3proxy/bin/3proxy install bin/3proxy $(DESTDIR)$(BINPREFIX)/3proxy
install bin/$(CRYPT_PREFIX)crypt /usr/local/3proxy/bin/$(CRYPT_PREFIX)crypt install bin/$(CRYPT_PREFIX)crypt $(DESTDIR)$(BINPREFIX)/$(CRYPT_PREFIX)crypt
for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \ for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \
if [ -f bin/$(PREFIX)$$f ]; then install bin/$(PREFIX)$$f /usr/local/3proxy/bin/$(PREFIX)$$f; fi; \ if [ -f bin/$(PREFIX)$$f ]; then install bin/$(PREFIX)$$f $(DESTDIR)$(BINPREFIX)/$(PREFIX)$$f; fi; \
done done
install scripts/rc.d/3proxy /usr/local/etc/rc.d/3proxy install -d $(DESTDIR)$(prefix)/etc/rc.d/
install scripts/add3proxyuser.sh /usr/local/3proxy/bin/ sed -e 's|@CMAKE_INSTALL_FULL_BINDIR@|$(BINPREFIX)|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|$(prefix)/etc|g' scripts/rc.d/3proxy.in > $(DESTDIR)$(prefix)/etc/rc.d/3proxy
if [ -s /usr/local/etc/3proxy/3proxy.cfg ]; then echo /usr/local/3proxy/3proxy.cfg already exists; else install scripts/3proxy.cfg /usr/local/etc/3proxy/; fi chmod 755 $(DESTDIR)$(prefix)/etc/rc.d/3proxy
if [ ! -d /var/log/3proxy/ ]; then mkdir /var/log/3proxy/; fi sed -e 's|@CMAKE_INSTALL_FULL_BINDIR@|$(BINPREFIX)|g' -e 's|@3PROXY_CONFDIR@|$(prefix)/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|$(CRYPT_PREFIX)|g' scripts/add3proxyuser.sh.in > $(DESTDIR)$(BINPREFIX)/add3proxyuser
touch /usr/local/3proxy/passwd if [ -s $(DESTDIR)$(prefix)/etc/3proxy/3proxy.cfg ]; then echo $(prefix)/etc/3proxy/3proxy.cfg already exists; else sed -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|$(prefix)/etc|g' -e 's|@3PROXY_CONFDIR@|$(prefix)/etc/3proxy/conf|g' -e 's|@3PROXY_COUNTERDIR@|/opt/3proxy|g' scripts/3proxy.cfg.in > $(DESTDIR)$(prefix)/etc/3proxy/3proxy.cfg; chmod 640 $(DESTDIR)$(prefix)/etc/3proxy/3proxy.cfg; fi
touch /usr/local/3proxy/counters if [ ! -d $(DESTDIR)/var/log/3proxy/ ]; then mkdir -p $(DESTDIR)/var/log/3proxy/; fi
touch /usr/local/3proxy/bandlimiters mkdir -p $(DESTDIR)/opt/3proxy
install -d $(MANDIR)/man8 touch $(DESTDIR)$(prefix)/3proxy/passwd
install -m 644 man/3proxy.8 $(MANDIR)/man8/3proxy.8 touch $(DESTDIR)$(prefix)/3proxy/counters
touch $(DESTDIR)$(prefix)/3proxy/bandlimiters
install -d $(DESTDIR)$(MANDIR)/man8
install -m 644 man/3proxy.8 $(DESTDIR)$(MANDIR)/man8/3proxy.8
for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \ for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \
if [ -f man/$$f.8 ]; then install -m 644 man/$$f.8 $(MANDIR)/man8/$(PREFIX)$$f.8; fi; \ if [ -f man/$$f.8 ]; then install -m 644 man/$$f.8 $(DESTDIR)$(MANDIR)/man8/$(PREFIX)$$f.8; fi; \
done done
install -m 644 man/3proxy_crypt.8 $(MANDIR)/man8 install -m 644 man/3proxy_crypt.8 $(DESTDIR)$(MANDIR)/man8/$(CRYPT_PREFIX)crypt.8
install -d $(MANDIR)/man5 install -d $(DESTDIR)$(MANDIR)/man5
install -m 644 man/3proxy.cfg.5 $(MANDIR)/man5/3proxy.cfg.5 install -m 644 man/3proxy.cfg.5 $(DESTDIR)$(MANDIR)/man5/3proxy.cfg.5
echo Run /usr/local/3proxy/bin/add3proxyuser.sh to add \'admin\' user @if [ "$(DESTDIR)" = "" ]; then \
sh scripts/postinstall.sh $(prefix); \
fi
echo Run $(BINPREFIX)/add3proxyuser to add \'admin\' user
allplugins: allplugins:
@list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done

View File

@ -74,13 +74,13 @@ include Makefile.inc
allplugins: allplugins:
@list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done
DESTDIR = DESTDIR ?=
prefix = prefix ?=
exec_prefix = $(prefix) exec_prefix ?= $(prefix)
man_prefix = /usr/share man_prefix ?= /usr/share
chroot_prefix = /usr/local chroot_prefix ?= /usr/local
INSTALL = /usr/bin/install INSTALL ?= /usr/bin/install
INSTALL_BIN = $(INSTALL) -m 755 INSTALL_BIN = $(INSTALL) -m 755
INSTALL_DATA = $(INSTALL) -m 644 INSTALL_DATA = $(INSTALL) -m 644
INSTALL_OBJS = bin/3proxy \ INSTALL_OBJS = bin/3proxy \
@ -97,12 +97,11 @@ INSTALL_OBJS = bin/3proxy \
INSTALL_CFG = scripts/3proxy.cfg.chroot INSTALL_CFG = scripts/3proxy.cfg.chroot
INSTALL_CFG_INCHROOT = scripts/3proxy.cfg.inchroot INSTALL_CFG_INCHROOT = scripts/3proxy.cfg.inchroot
INSTALL_CFG_OBJS = scripts/add3proxyuser.sh
INSTALL_CFG_OBJS2 = counters bandlimiters INSTALL_CFG_OBJS2 = counters bandlimiters
INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.in
INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service.in
CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy
CHROOTREL = ../..$(chroot_prefix)/3proxy CHROOTREL = ../..$(chroot_prefix)/3proxy
@ -111,8 +110,6 @@ MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8
BINDIR = $(DESTDIR)$(exec_prefix)/bin BINDIR = $(DESTDIR)$(exec_prefix)/bin
ETCDIR = $(DESTDIR)/etc/3proxy ETCDIR = $(DESTDIR)/etc/3proxy
INITDDIR = $(DESTDIR)/etc/init.d INITDDIR = $(DESTDIR)/etc/init.d
RUNBASE = $(DESTDIR)/var/run
RUNDIR = $(RUNBASE)/3proxy
LOGBASE = $(DESTDIR)/var/log LOGBASE = $(DESTDIR)/var/log
LOGDIR = $(LOGBASE)/3proxy LOGDIR = $(LOGBASE)/3proxy
INSTALL_CFG_DEST = $(ETCDIR)/conf INSTALL_CFG_DEST = $(ETCDIR)/conf
@ -122,6 +119,7 @@ install-bin:
$(INSTALL_BIN) -d $(BINDIR) $(INSTALL_BIN) -d $(BINDIR)
$(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR)
$(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec
$(INSTALL_BIN) scripts/add3proxyuser.sh.in $(BINDIR)/add3proxyuser
install-etc-dir: install-etc-dir:
$(INSTALL_BIN) -d $(ETCDIR) $(INSTALL_BIN) -d $(ETCDIR)
@ -132,13 +130,11 @@ install-chroot-dir:
$(INSTALL_BIN) -d $(CHROOTDIR)/logs $(INSTALL_BIN) -d $(CHROOTDIR)/logs
$(INSTALL_BIN) -d $(CHROOTDIR)/count $(INSTALL_BIN) -d $(CHROOTDIR)/count
$(INSTALL_BIN) -d $(CHROOTDIR)/libexec $(INSTALL_BIN) -d $(CHROOTDIR)/libexec
chmod -R o-rwx $(CHROOTDIR)
install-etc-default-config: install-chroot-dir install-etc-default-config: install-chroot-dir
if [ ! -d $(INSTALL_CFG_DEST) ]; then \ if [ ! -d $(INSTALL_CFG_DEST) ]; then \
ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \
$(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \
$(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \
$(INSTALL_BIN) $(INSTALL_CFG_INCHROOT) $(INSTALL_CFG_DEST)/3proxy.cfg; \ $(INSTALL_BIN) $(INSTALL_CFG_INCHROOT) $(INSTALL_CFG_DEST)/3proxy.cfg; \
fi fi
@ -156,16 +152,13 @@ install-man:
for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \ for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \
if [ -f man/$$f.8 ]; then $(INSTALL_DATA) man/$$f.8 $(MANDIR8)/$(PREFIX)$$f.8; fi; \ if [ -f man/$$f.8 ]; then $(INSTALL_DATA) man/$$f.8 $(MANDIR8)/$(PREFIX)$$f.8; fi; \
done done
$(INSTALL_DATA) man/3proxy_crypt.8 $(MANDIR8) $(INSTALL_DATA) man/3proxy_crypt.8 $(MANDIR8)/$(CRYPT_PREFIX)crypt.8
install-init: install-init:
$(INSTALL_BIN) -d $(SYSTEMDDIR)
sed -e 's|@CMAKE_INSTALL_FULL_BINDIR@|$(exec_prefix)/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' $(INSTALL_SYSTEMD_SCRIPT) > $(SYSTEMDDIR)/3proxy.service
$(INSTALL_BIN) -d $(INITDDIR) $(INSTALL_BIN) -d $(INITDDIR)
$(INSTALL_BIN) $(INSTALL_INITD_SCRIPT) $(INITDDIR)/3proxy $(INSTALL_BIN) $(INSTALL_INITD_SCRIPT) $(INITDDIR)/3proxy
$(INSTALL_BIN) -d $(SYSTEMDDIR)
$(INSTALL_DATA) $(INSTALL_SYSTEMD_SCRIPT) $(SYSTEMDDIR)
install-run:
$(INSTALL_BIN) -d $(RUNDIR)
install-log: install-log:
$(INSTALL_BIN) -d $(LOGBASE) $(INSTALL_BIN) -d $(LOGBASE)
@ -173,7 +166,7 @@ install-log:
ln -s $(CHROOTREL)/logs $(LOGDIR);\ ln -s $(CHROOTREL)/logs $(LOGDIR);\
fi fi
install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init install: install-chroot-dir install-bin install-etc install-log install-man install-init
@if [ "$(DESTDIR)" = "" ]; then \ @if [ "$(DESTDIR)" = "" ]; then \
sh debian/preinst; \ sh debian/preinst; \
sh debian/postinst; \ sh debian/postinst; \

View File

@ -70,29 +70,39 @@ endif
include Makefile.inc include Makefile.inc
DESTDIR ?=
prefix ?= /usr/local
BINPREFIX ?= $(prefix)/bin
install: all install: all
if [ ! -d "/usr/local/3proxy/bin" ]; then mkdir -p /usr/local/3proxy/bin/; fi if [ ! -d "$(DESTDIR)$(BINPREFIX)" ]; then mkdir -p $(DESTDIR)$(BINPREFIX)/; fi
install bin/3proxy /usr/local/3proxy/bin/3proxy install bin/3proxy $(DESTDIR)$(BINPREFIX)/3proxy
install bin/$(CRYPT_PREFIX)crypt /usr/local/3proxy/bin/$(CRYPT_PREFIX)crypt install bin/$(CRYPT_PREFIX)crypt $(DESTDIR)$(BINPREFIX)/$(CRYPT_PREFIX)crypt
for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \ for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \
if [ -f bin/$(PREFIX)$$f ]; then install bin/$(PREFIX)$$f /usr/local/3proxy/bin/$(PREFIX)$$f; fi; \ if [ -f bin/$(PREFIX)$$f ]; then install bin/$(PREFIX)$$f $(DESTDIR)$(BINPREFIX)/$(PREFIX)$$f; fi; \
done done
install scripts/rc.d/3proxy /usr/local/etc/rc.d/3proxy install -d $(DESTDIR)$(prefix)/etc/rc.d/
install scripts/add3proxyuser.sh /usr/local/3proxy/bin/ sed -e 's|@CMAKE_INSTALL_FULL_BINDIR@|$(BINPREFIX)|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|$(prefix)/etc|g' scripts/rc.d/3proxy.in > $(DESTDIR)$(prefix)/etc/rc.d/3proxy
if [ -s /usr/local/etc/3proxy/3proxy.cfg ]; then echo /usr/local/3proxy/3proxy.cfg already exists; else install scripts/3proxy.cfg /usr/local/etc/3proxy/; fi chmod 755 $(DESTDIR)$(prefix)/etc/rc.d/3proxy
if [ ! -d /var/log/3proxy/ ]; then mkdir /var/log/3proxy/; fi sed -e 's|@CMAKE_INSTALL_FULL_BINDIR@|$(BINPREFIX)|g' -e 's|@3PROXY_CONFDIR@|$(prefix)/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|$(CRYPT_PREFIX)|g' scripts/add3proxyuser.sh.in > $(DESTDIR)$(BINPREFIX)/add3proxyuser
touch /usr/local/3proxy/passwd if [ -s $(DESTDIR)$(prefix)/etc/3proxy/3proxy.cfg ]; then echo $(prefix)/etc/3proxy/3proxy.cfg already exists; else sed -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|$(prefix)/etc|g' -e 's|@3PROXY_CONFDIR@|$(prefix)/etc/3proxy/conf|g' -e 's|@3PROXY_COUNTERDIR@|/opt/3proxy|g' scripts/3proxy.cfg.in > $(DESTDIR)$(prefix)/etc/3proxy/3proxy.cfg; chmod 640 $(DESTDIR)$(prefix)/etc/3proxy/3proxy.cfg; fi
touch /usr/local/3proxy/counters if [ ! -d $(DESTDIR)/var/log/3proxy/ ]; then mkdir -p $(DESTDIR)/var/log/3proxy/; fi
touch /usr/local/3proxy/bandlimiters mkdir -p $(DESTDIR)/opt/3proxy
install -d $(MANDIR)/man8 touch $(DESTDIR)$(prefix)/3proxy/passwd
install -m 644 man/3proxy.8 $(MANDIR)/man8/3proxy.8 touch $(DESTDIR)$(prefix)/3proxy/counters
touch $(DESTDIR)$(prefix)/3proxy/bandlimiters
install -d $(DESTDIR)$(MANDIR)/man8
install -m 644 man/3proxy.8 $(DESTDIR)$(MANDIR)/man8/3proxy.8
for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \ for f in proxy socks pop3p smtpp ftppr tcppm udppm tlspr; do \
if [ -f man/$$f.8 ]; then install -m 644 man/$$f.8 $(MANDIR)/man8/$(PREFIX)$$f.8; fi; \ if [ -f man/$$f.8 ]; then install -m 644 man/$$f.8 $(DESTDIR)$(MANDIR)/man8/$(PREFIX)$$f.8; fi; \
done done
install -m 644 man/3proxy_crypt.8 $(MANDIR)/man8 install -m 644 man/3proxy_crypt.8 $(DESTDIR)$(MANDIR)/man8/$(CRYPT_PREFIX)crypt.8
install -d $(MANDIR)/man5 install -d $(DESTDIR)$(MANDIR)/man5
install -m 644 man/3proxy.cfg.5 $(MANDIR)/man5/3proxy.cfg.5 install -m 644 man/3proxy.cfg.5 $(DESTDIR)$(MANDIR)/man5/3proxy.cfg.5
echo Run /usr/local/3proxy/bin/add3proxyuser.sh to add \'admin\' user @if [ "$(DESTDIR)" = "" ]; then \
sh scripts/postinstall.sh $(prefix); \
fi
echo Run $(BINPREFIX)/add3proxyuser to add \'admin\' user
allplugins: allplugins:
@list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done

14
debian/postinst vendored
View File

@ -1,3 +1,17 @@
sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@3PROXY_CONFDIR@|/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|3proxy_|g' /bin/add3proxyuser; \
sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /etc/init.d/3proxy; \
sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /usr/lib/systemd/system/3proxy.service; \
if [ -d /etc/3proxy ]; then \
chmod -R o-rwx /etc/3proxy; \
chown -R proxy:proxy /etc/3proxy; \
fi
if [ -d /usr/local/3proxy ]; then \
chmod -R o-rwx /usr/local/3proxy; \
chown -R proxy:proxy /usr/local/3proxy; \
fi
if /bin/systemctl >/dev/null 2>&1; then \ if /bin/systemctl >/dev/null 2>&1; then \
/usr/sbin/update-rc.d 3proxy disable || true; \ /usr/sbin/update-rc.d 3proxy disable || true; \
/usr/sbin/chkconfig 3proxy off || true; \ /usr/sbin/chkconfig 3proxy off || true; \

View File

@ -1,4 +0,0 @@
#!/usr/local/bin/3proxy
#use standard syslog logging
log @3proxy

31
scripts/3proxy.cfg.in Normal file
View File

@ -0,0 +1,31 @@
# use standard syslog logging
log @3proxy
#log /logs/3proxy-%y%m%d.log D
#rotate 60
#nscache 65536
#nserver 8.8.8.8
#nserver 8.8.4.4
#config @CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
#monitor @CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
#monitor @3PROXY_CONFDIR@/passwd
#counter @3PROXY_COUNTERDIR@/3proxy.3cf
#users $@3PROXY_CONFDIR@/passwd
#include @3PROXY_CONFDIR@/counters
#include @3PROXY_CONFDIR@/bandlimiters
#auth strong
#deny * * 127.0.0.0/8
#allow *
#proxy -n
#socks
#flush
#allow admin
#admin -p8080

View File

@ -5,8 +5,10 @@ nserver 8.8.4.4
config /conf/3proxy.cfg config /conf/3proxy.cfg
monitor /conf/3proxy.cfg monitor /conf/3proxy.cfg
log /logs/3proxy-%y%m%d.log D log @3proxy
rotate 60 #log /logs/3proxy-%y%m%d.log D
#rotate 60
counter /count/3proxy.3cf counter /count/3proxy.3cf
users $/conf/passwd users $/conf/passwd

View File

@ -1,19 +0,0 @@
[Unit]
Description=3proxy tiny proxy server
Documentation=man:3proxy(1)
After=network.target
[Service]
Environment=CONFIGFILE=/etc/3proxy/3proxy.cfg
ExecStart=/bin/3proxy ${CONFIGFILE}
ExecReload=/bin/kill -SIGUSR1 $MAINPID
KillMode=process
Restart=on-failure
RestartSec=60s
LimitNOFILE=65536
LimitNPROC=32768
RuntimeDirectory=3proxy
[Install]
WantedBy=multi-user.target
Alias=3proxy.service

View File

@ -7,7 +7,7 @@ After=network.target
Type=simple Type=simple
User=proxy User=proxy
Group=proxy Group=proxy
Environment=CONFIGFILE=/etc/3proxy/3proxy.cfg Environment=CONFIGFILE=@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/3proxy ${CONFIGFILE} ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/3proxy ${CONFIGFILE}
ExecReload=/bin/kill -SIGUSR1 $MAINPID ExecReload=/bin/kill -SIGUSR1 $MAINPID
KillMode=process KillMode=process

View File

@ -1,3 +0,0 @@
# tmpfiles.d configuration for 3proxy
# This creates the runtime directory for 3proxy
d /run/3proxy 0755 proxy proxy -

View File

@ -1,15 +0,0 @@
#!/bin/sh
if [ $4 ]; then
echo bandlimin $4 $1 >> /etc/3proxy/conf/bandlimiters
fi
if [ $3 ]; then
echo countin \"`wc -l /etc/3proxy/conf/counters|awk '{print $1}'`/$1\" D $3 $1 >> /etc/3proxy/conf/counters
fi
if [ $2 ]; then
echo $1:`/bin/3proxy_crypt $$ $2` >> /etc/3proxy/conf/passwd
else
echo usage: $0 username password [day_limit] [bandwidth]
echo " "day_limit - traffic limit in MB per day
echo " "bandwidth - bandwidth in bits per second 1048576 = 1Mbps
fi

View File

@ -0,0 +1,14 @@
#!/bin/sh
if [ $4 ]; then
echo bandlimin $4 $1 >> @3PROXY_CONFDIR@/bandlimiters
fi
if [ $3 ]; then
echo countall \"`wc -l @3PROXY_CONFDIR@/counters|awk '{print $1}'`/$1\" D $3 $1 >> @3PROXY_CONFDIR@/counters
fi
if [ $2 ]; then
echo $1:`@CMAKE_INSTALL_FULL_BINDIR@/@CRYPT_PREFIX@crypt $$ $2` >> @3PROXY_CONFDIR@/passwd
else
echo usage: $0 username password [day_limit] [bandwidth]
echo " "day_limit - traffic limit in MB per day
echo " "bandwidth - bandwidth in bits per second 1048576 = 1Mbps
fi

View File

@ -14,7 +14,7 @@
# description: 3proxy tiny proxy server # description: 3proxy tiny proxy server
DAEMON=@CMAKE_INSTALL_FULL_BINDIR@/3proxy DAEMON=@CMAKE_INSTALL_FULL_BINDIR@/3proxy
CONFIGFILE=/etc/3proxy/3proxy.cfg CONFIGFILE=@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg
PIDFILE=/var/run/3proxy/3proxy.pid PIDFILE=/var/run/3proxy/3proxy.pid
USER=proxy USER=proxy
GROUP=proxy GROUP=proxy

View File

@ -1,56 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: 3proxy
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop 3proxy
# Description: Start/stop 3proxy, tiny proxy server
### END INIT INFO
# chkconfig: 2345 20 80
# description: 3proxy tiny proxy server
case "$1" in
start)
echo Starting 3Proxy
/bin/mkdir -p /var/run/3proxy
/bin/3proxy /etc/3proxy/3proxy.cfg &
RETVAL=$?
echo
[ $RETVAL ]
;;
stop)
echo Stopping 3Proxy
if [ -f /var/run/3proxy/3proxy.pid ]; then
/bin/kill `cat /var/run/3proxy/3proxy.pid`
else
/usr/bin/killall 3proxy
fi
RETVAL=$?
echo
[ $RETVAL ]
;;
restart|reload)
echo Reloading 3Proxy
if [ -f /var/run/3proxy/3proxy.pid ]; then
/bin/kill -s USR1 `cat /var/run/3proxy/3proxy.pid`
else
/usr/bin/killall -s USR1 3proxy
fi
;;
*)
echo Usage: $0 "{start|stop|restart}"
exit 1
esac
exit 0

View File

@ -4,11 +4,12 @@
set -e set -e
PREFIX="${1-/usr/local}"
# Check if user already exists # Check if user already exists
if id proxy >/dev/null 2>&1; then if id proxy >/dev/null 2>&1; then
echo "User 'proxy' already exists" echo "User 'proxy' already exists"
exit 0 else
fi
echo "Creating proxy user and group..." echo "Creating proxy user and group..."
@ -33,7 +34,6 @@ elif command -v dscl >/dev/null 2>&1; then
dscl . create /Users/proxy NFSHomeDirectory /var/run/3proxy 2>/dev/null || true dscl . create /Users/proxy NFSHomeDirectory /var/run/3proxy 2>/dev/null || true
else else
echo "Warning: Could not create proxy user - no suitable user management tool found" echo "Warning: Could not create proxy user - no suitable user management tool found"
exit 0
fi fi
if id proxy >/dev/null 2>&1; then if id proxy >/dev/null 2>&1; then
@ -42,4 +42,7 @@ else
echo "Warning: Failed to create user 'proxy'" echo "Warning: Failed to create user 'proxy'"
fi fi
fi
chown -R proxy:proxy ${PREFIX}/etc/3proxy/
exit 0 exit 0

View File

@ -1,27 +0,0 @@
#!/bin/sh
# PROVIDE: 3proxy
# REQUIRE: LOGIN DAEMON
# KEYWORD: shutdown
. /etc/rc.subr
name="3proxy"
rcvar="3proxy_enable"
command="/usr/local/3proxy/bin/3proxy"
pidfile="/var/run/3proxy/${name}.pid"
command_args="${3proxy_config:-/usr/local/etc/3proxy/3proxy.cfg}"
required_files="${3proxy_config:-/usr/local/etc/3proxy/3proxy.cfg}"
start_precmd="3proxy_precmd"
3proxy_precmd()
{
if [ ! -d /var/run/3proxy ]; then
mkdir -p /var/run/3proxy
fi
}
load_rc_config $name
run_rc_command "$1"

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# PROVIDE: 3proxy # PROVIDE: 3proxy
# REQUIRE: LOGIN DAEMON # REQUIRE: LOGIN DAEMON NETWORKING
# KEYWORD: shutdown # KEYWORD: shutdown
. /etc/rc.subr . /etc/rc.subr
@ -11,8 +11,8 @@ rcvar="3proxy_enable"
command="@CMAKE_INSTALL_FULL_BINDIR@/3proxy" command="@CMAKE_INSTALL_FULL_BINDIR@/3proxy"
pidfile="/var/run/3proxy/${name}.pid" pidfile="/var/run/3proxy/${name}.pid"
command_args="${3proxy_config:-/etc/3proxy/3proxy.cfg}" command_args="${3proxy_config:-@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg}"
required_files="${3proxy_config:-/etc/3proxy/3proxy.cfg}" required_files="${3proxy_config:-@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg}"
command_user="proxy:proxy" command_user="proxy:proxy"
start_precmd="3proxy_precmd" start_precmd="3proxy_precmd"

View File

@ -41,12 +41,12 @@ make clean
/bin/3proxy_tcppm /bin/3proxy_tcppm
/bin/3proxy_tlspr /bin/3proxy_tlspr
/bin/3proxy_udppm /bin/3proxy_udppm
/bin/add3proxyuser
%config(noreplace) /etc/3proxy/3proxy.cfg %config(noreplace) /etc/3proxy/3proxy.cfg
/etc/3proxy/conf /etc/3proxy/conf
/etc/init.d/3proxy /etc/init.d/3proxy
/usr/lib/systemd/system/3proxy.service /usr/lib/systemd/system/3proxy.service
%config(noreplace) /usr/local/3proxy/conf/3proxy.cfg %config(noreplace) /usr/local/3proxy/conf/3proxy.cfg
%config(noreplace) /usr/local/3proxy/conf/add3proxyuser.sh
%config(noreplace) /usr/local/3proxy/conf/bandlimiters %config(noreplace) /usr/local/3proxy/conf/bandlimiters
%config(noreplace) /usr/local/3proxy/conf/counters %config(noreplace) /usr/local/3proxy/conf/counters
/usr/local/3proxy/libexec/*.ld.so /usr/local/3proxy/libexec/*.ld.so
@ -66,10 +66,17 @@ fi
if [ ! -f /usr/local/3proxy/conf/passwd ]; then \ if [ ! -f /usr/local/3proxy/conf/passwd ]; then \
touch /usr/local/3proxy/conf/passwd;\ touch /usr/local/3proxy/conf/passwd;\
fi fi
chown -R proxy:proxy /usr/local/3proxy sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@3PROXY_CONFDIR@|/etc/3proxy/conf|g' -e 's|@CRYPT_PREFIX@|3proxy_|g' /bin/add3proxyuser; \
chmod 550 /usr/local/3proxy/ sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /etc/init.d/3proxy; \
chmod 550 /usr/local/3proxy/conf/ sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /usr/lib/systemd/system/3proxy.service; \
chmod 440 /usr/local/3proxy/conf/* if [ -d /etc/3proxy ]; then \
chown -R proxy:proxy /etc/3proxy; \
chmod -R o-rwx /etc/3proxy; \
fi
if [ -d /usr/local/3proxy ]; then \
chown -R proxy:proxy /usr/local/3proxy; \
chmod -R o-rwx /usr/local/3proxy; \
fi
if /bin/systemctl >/dev/null 2>&1; then \ if /bin/systemctl >/dev/null 2>&1; then \
/usr/sbin/update-rc.d 3proxy disable || true; \ /usr/sbin/update-rc.d 3proxy disable || true; \
/usr/sbin/chkconfig 3proxy off || true; \ /usr/sbin/chkconfig 3proxy off || true; \
@ -84,8 +91,8 @@ fi
echo "" echo ""
echo 3proxy installed. echo 3proxy installed.
if /bin/systemctl >/dev/null 2>&1; then \ if /bin/systemctl >/dev/null 2>&1; then \
/bin/systemctl stop 3proxy.service \ /bin/systemctl stop 3proxy.service ; \
/bin/systemctl start 3proxy.service \ /bin/systemctl start 3proxy.service ; \
echo use ;\ echo use ;\
echo " "systemctl start 3proxy.service ;\ echo " "systemctl start 3proxy.service ;\
echo to start proxy ;\ echo to start proxy ;\
@ -99,10 +106,10 @@ elif [ -x /usr/sbin/service ]; then \
echo " "service 3proxy stop ;\ echo " "service 3proxy stop ;\
echo to stop proxy ;\ echo to stop proxy ;\
fi fi
echo " "/usr/local/3proxy/conf/add3proxyuser.sh echo " "/bin/add3proxyuser
echo to add users echo to add users
echo "" echo ""
echo Default config uses Google\'s DNS. echo Default config uses Google\'s DNS.
echo It\'s recommended to use provider supplied DNS or install local recursor, e.g. pdns-recursor. echo It\'s recommended to use provider supplied DNS or install local recursor, e.g. pdns-recursor.
echo Configure preferred DNS in /usr/local/3proxy/conf/3proxy.cfg. echo Configure preferred DNS in /usr/local/3proxy/conf/3proxy.cfg.
echo run \'/usr/local/3proxy/conf/add3proxyuser.sh admin password\' to configure \'admin\' user echo run \'/bin/add3proxyuser admin password\' to configure \'admin\' user