Merge branch 'master' into test-ci

This commit is contained in:
Vladimir Dubrovin 2026-05-30 15:01:01 +03:00
commit 7e946fbc72
24 changed files with 209 additions and 233 deletions

View File

@ -56,7 +56,7 @@ jobs:
mkdir dist\3proxy\doc\html\plugins mkdir dist\3proxy\doc\html\plugins
mkdir dist\3proxy\doc\html\man5 mkdir dist\3proxy\doc\html\man5
mkdir dist\3proxy\doc\html\man8 mkdir dist\3proxy\doc\html\man8
mkdir dist\3proxy\doc\devel mkdir dist\3proxy\doc\html\devel
copy bin\3proxy.exe dist\3proxy\bin\ copy bin\3proxy.exe dist\3proxy\bin\
copy bin\*.dll dist\3proxy\bin\ copy bin\*.dll dist\3proxy\bin\
copy bin\3proxy_crypt.exe dist\3proxy\bin\ copy bin\3proxy_crypt.exe dist\3proxy\bin\
@ -67,10 +67,10 @@ jobs:
copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\ copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\
copy doc\html\man8\*.* dist\3proxy\doc\html\man8\ copy doc\html\man8\*.* dist\3proxy\doc\html\man8\
copy doc\html\man5\*.* dist\3proxy\doc\html\man5\ copy doc\html\man5\*.* dist\3proxy\doc\html\man5\
copy doc\devel\*.rtf dist\3proxy\doc\devel\ copy doc\html\devel\*.* dist\3proxy\doc\html\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6

View File

@ -62,7 +62,7 @@ jobs:
mkdir dist\3proxy\doc\html\plugins mkdir dist\3proxy\doc\html\plugins
mkdir dist\3proxy\doc\html\man5 mkdir dist\3proxy\doc\html\man5
mkdir dist\3proxy\doc\html\man8 mkdir dist\3proxy\doc\html\man8
mkdir dist\3proxy\doc\devel mkdir dist\3proxy\doc\html\devel
copy bin\3proxy.exe dist\3proxy\bin\ copy bin\3proxy.exe dist\3proxy\bin\
copy bin\*.dll dist\3proxy\bin\ copy bin\*.dll dist\3proxy\bin\
copy bin\3proxy_crypt.exe dist\3proxy\bin\ copy bin\3proxy_crypt.exe dist\3proxy\bin\
@ -73,10 +73,10 @@ jobs:
copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\ copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\
copy doc\html\man8\*.* dist\3proxy\doc\html\man8\ copy doc\html\man8\*.* dist\3proxy\doc\html\man8\
copy doc\html\man5\*.* dist\3proxy\doc\html\man5\ copy doc\html\man5\*.* dist\3proxy\doc\html\man5\
copy doc\devel\*.rtf dist\3proxy\doc\devel\ copy doc\html\devel\*.* dist\3proxy\doc\html\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6

View File

@ -63,7 +63,7 @@ jobs:
mkdir dist\3proxy\doc\html\plugins mkdir dist\3proxy\doc\html\plugins
mkdir dist\3proxy\doc\html\man5 mkdir dist\3proxy\doc\html\man5
mkdir dist\3proxy\doc\html\man8 mkdir dist\3proxy\doc\html\man8
mkdir dist\3proxy\doc\devel mkdir dist\3proxy\doc\html\devel
copy bin\3proxy.exe dist\3proxy\bin64\ copy bin\3proxy.exe dist\3proxy\bin64\
copy bin\*.dll dist\3proxy\bin64\ copy bin\*.dll dist\3proxy\bin64\
copy bin\3proxy_crypt.exe dist\3proxy\bin64\ copy bin\3proxy_crypt.exe dist\3proxy\bin64\
@ -74,10 +74,10 @@ jobs:
copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\ copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\
copy doc\html\man8\*.* dist\3proxy\doc\html\man8\ copy doc\html\man8\*.* dist\3proxy\doc\html\man8\
copy doc\html\man5\*.* dist\3proxy\doc\html\man5\ copy doc\html\man5\*.* dist\3proxy\doc\html\man5\
copy doc\devel\*.rtf dist\3proxy\doc\devel\ copy doc\html\devel\*.rtf dist\3proxy\doc\html\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6

View File

@ -62,7 +62,7 @@ jobs:
mkdir dist\3proxy\doc\html\plugins mkdir dist\3proxy\doc\html\plugins
mkdir dist\3proxy\doc\html\man5 mkdir dist\3proxy\doc\html\man5
mkdir dist\3proxy\doc\html\man8 mkdir dist\3proxy\doc\html\man8
mkdir dist\3proxy\doc\devel mkdir dist\3proxy\doc\html\devel
copy bin\3proxy.exe dist\3proxy\bin64\ copy bin\3proxy.exe dist\3proxy\bin64\
copy bin\*.dll dist\3proxy\bin64\ copy bin\*.dll dist\3proxy\bin64\
copy bin\3proxy_crypt.exe dist\3proxy\bin64\ copy bin\3proxy_crypt.exe dist\3proxy\bin64\
@ -73,10 +73,10 @@ jobs:
copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\ copy doc\html\plugins\*.* dist\3proxy\doc\html\plugins\
copy doc\html\man8\*.* dist\3proxy\doc\html\man8\ copy doc\html\man8\*.* dist\3proxy\doc\html\man8\
copy doc\html\man5\*.* dist\3proxy\doc\html\man5\ copy doc\html\man5\*.* dist\3proxy\doc\html\man5\
copy doc\devel\*.rtf dist\3proxy\doc\devel\ copy doc\html\devel\*.rtf dist\3proxy\doc\html\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README dist\3proxy\ copy README.md dist\3proxy\
copy rus.3ps dist\3proxy\ copy rus.3ps dist\3proxy\
- name: Get artifact - name: Get artifact
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6

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,41 @@ 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/3proxy/conf
install scripts/add3proxyuser.sh /usr/local/3proxy/bin/ install -d $(DESTDIR)$(prefix)/etc/rc.d/
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 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 [ ! -d /var/log/3proxy/ ]; then mkdir /var/log/3proxy/; fi chmod 755 $(DESTDIR)$(prefix)/etc/rc.d/3proxy
touch /usr/local/3proxy/passwd 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/counters chmod 755 $(DESTDIR)$(BINPREFIX)/add3proxyuser
touch /usr/local/3proxy/bandlimiters 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
install -d $(MANDIR)/man8 if [ ! -d $(DESTDIR)/var/log/3proxy/ ]; then mkdir -p $(DESTDIR)/var/log/3proxy/; fi
install -m 644 man/3proxy.8 $(MANDIR)/man8/3proxy.8 mkdir -p $(DESTDIR)/opt/3proxy
touch $(DESTDIR)$(prefix)/etc/3proxy/conf/passwd
touch $(DESTDIR)$(prefix)/etc/3proxy/conf/counters
touch $(DESTDIR)$(prefix)/etc/3proxy/conf/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,41 @@ 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/3proxy/conf
install scripts/add3proxyuser.sh /usr/local/3proxy/bin/ install -d $(DESTDIR)$(prefix)/etc/rc.d/
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 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 [ ! -d /var/log/3proxy/ ]; then mkdir /var/log/3proxy/; fi chmod 755 $(DESTDIR)$(prefix)/etc/rc.d/3proxy
touch /usr/local/3proxy/passwd 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/counters chmod 755 $(DESTDIR)$(BINPREFIX)/add3proxyuser
touch /usr/local/3proxy/bandlimiters 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
install -d $(MANDIR)/man8 if [ ! -d $(DESTDIR)/var/log/3proxy/ ]; then mkdir -p $(DESTDIR)/var/log/3proxy/; fi
install -m 644 man/3proxy.8 $(MANDIR)/man8/3proxy.8 mkdir -p $(DESTDIR)/opt/3proxy
touch $(DESTDIR)$(prefix)/etc/3proxy/conf/passwd
touch $(DESTDIR)$(prefix)/etc/3proxy/conf/counters
touch $(DESTDIR)$(prefix)/etc/3proxy/conf/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 @@
[ -f /bin/add3proxyuser ] && 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; \
[ -f /etc/init.d/3proxy ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' /etc/init.d/3proxy; \
[ -f /usr/lib/systemd/system/3proxy.service ] && 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

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

@ -0,0 +1,33 @@
#!@CMAKE_INSTALL_FULL_BINDIR@/3proxy
# use standard syslog logging
log @3proxy
pidfile /var/run/3proxy/3proxy.pid
#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

@ -7,7 +7,7 @@
<key>ProgramArguments</key> <key>ProgramArguments</key>
<array> <array>
<string>@CMAKE_INSTALL_FULL_BINDIR@/3proxy</string> <string>@CMAKE_INSTALL_FULL_BINDIR@/3proxy</string>
<string>/etc/3proxy/3proxy.cfg</string> <string>@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg</string>
</array> </array>
<key>UserName</key> <key>UserName</key>
<string>proxy</string> <string>proxy</string>

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,12 @@ else
echo "Warning: Failed to create user 'proxy'" echo "Warning: Failed to create user 'proxy'"
fi fi
fi
if id proxy >/dev/null 2>&1 && [ -d "${PREFIX}/etc/3proxy" ]; then
chown -R proxy:proxy "${PREFIX}/etc/3proxy/"
fi
if id proxy >/dev/null 2>&1 && [ -d "/opt/3proxy" ]; then
chown -R proxy:proxy "/opt/3proxy/"
fi
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 [ -f /bin/add3proxyuser ] && 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/ [ -f /etc/init.d/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/ [ -f /usr/lib/systemd/system/3proxy.service ] && 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