Compare commits

..

3 Commits

Author SHA1 Message Date
Vladimir Dubrovin
41c120c527 Update build-win64.yml 2026-05-27 21:04:23 +03:00
Vladimir Dubrovin
cadf0e7909 Update build-win64.yml 2026-05-27 20:49:17 +03:00
Vladimir Dubrovin
867a26bfa3 Update build-win64.yml 2026-05-27 20:36:02 +03:00
31 changed files with 264 additions and 289 deletions

View File

@ -31,17 +31,6 @@ jobs:
run: | run: |
echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c
nmake /F Makefile.watcom nmake /F Makefile.watcom
- name: Decode Certificate
shell: pwsh
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.WINDOWS_CERTIFICATE }}")
[System.IO.File]::WriteAllBytes("${{ github.workspace }}\cert.pfx", $pfx_cert_byte)
- name: Sign
shell: pwsh
run: |
$signtool = (Get-ChildItem "C:\Program Files (x86)\Windows Kits\10\bin\*\x64\signtool.exe" | Sort-Object { [version]$_.Directory.Parent.Name } -Descending | Select-Object -First 1).FullName
& $signtool sign /f "${{ github.workspace }}\cert.pfx" /p "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "bin\3proxy.exe"
& $signtool sign /f "${{ github.workspace }}\cert.pfx" /p "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "bin\3proxy_crypt.exe"
- name: make dist dir - name: make dist dir
shell: cmd shell: cmd
run: | run: |
@ -56,10 +45,10 @@ 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\html\devel mkdir dist\3proxy\doc\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\mycrypt.exe dist\3proxy\bin\
copy cfg\*.* dist\3proxy\cfg\ copy cfg\*.* dist\3proxy\cfg\
copy cfg\sql\*.* dist\3proxy\cfg\sql\ copy cfg\sql\*.* dist\3proxy\cfg\sql\
copy doc\ru\*.* dist\3proxy\doc\ru\ copy doc\ru\*.* dist\3proxy\doc\ru\
@ -67,10 +56,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\html\devel\*.* dist\3proxy\doc\html\devel\ copy doc\devel\*.rtf dist\3proxy\doc\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README.md dist\3proxy\ copy README 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

@ -37,17 +37,6 @@ jobs:
set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/x86-windows-static/include" set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/x86-windows-static/include"
echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c
nmake /F Makefile.msvc nmake /F Makefile.msvc
- name: Decode Certificate
shell: pwsh
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.WINDOWS_CERTIFICATE }}")
[System.IO.File]::WriteAllBytes("${{ github.workspace }}\cert.pfx", $pfx_cert_byte)
- name: Sign
shell: pwsh
run: |
$signtool = (Get-ChildItem "C:\Program Files (x86)\Windows Kits\10\bin\*\x64\signtool.exe" | Sort-Object { [version]$_.Directory.Parent.Name } -Descending | Select-Object -First 1).FullName
& $signtool sign /f "${{ github.workspace }}\cert.pfx" /p "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "bin\3proxy.exe"
& $signtool sign /f "${{ github.workspace }}\cert.pfx" /p "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "bin\3proxy_crypt.exe"
- name: make dist dir - name: make dist dir
shell: cmd shell: cmd
run: | run: |
@ -62,10 +51,10 @@ 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\html\devel mkdir dist\3proxy\doc\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\mycrypt.exe dist\3proxy\bin\
copy cfg\*.* dist\3proxy\cfg\ copy cfg\*.* dist\3proxy\cfg\
copy cfg\sql\*.* dist\3proxy\cfg\sql\ copy cfg\sql\*.* dist\3proxy\cfg\sql\
copy doc\ru\*.* dist\3proxy\doc\ru\ copy doc\ru\*.* dist\3proxy\doc\ru\
@ -73,10 +62,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\html\devel\*.* dist\3proxy\doc\html\devel\ copy doc\devel\*.rtf dist\3proxy\doc\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README.md dist\3proxy\ copy README 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\html\devel mkdir dist\3proxy\doc\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\html\devel\*.rtf dist\3proxy\doc\html\devel\ copy doc\devel\*.rtf dist\3proxy\doc\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README.md dist\3proxy\ copy README 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

@ -37,17 +37,6 @@ jobs:
set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/arm64-windows-static/include" set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/arm64-windows-static/include"
echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c echo "volatile char VerSion[]=^"3APA3A-3proxy-Internal-Build: 3proxy-%RELEASE%-%NOW%\r\nCode certificate: https://3proxy.org/3proxy.cer\r\n^";" >>src/3proxy.c
nmake /F Makefile.msvc nmake /F Makefile.msvc
- name: Decode Certificate
shell: pwsh
run: |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.WINDOWS_CERTIFICATE }}")
[System.IO.File]::WriteAllBytes("${{ github.workspace }}\cert.pfx", $pfx_cert_byte)
- name: Sign
shell: pwsh
run: |
$signtool = (Get-ChildItem "C:\Program Files (x86)\Windows Kits\10\bin\*\x64\signtool.exe" | Sort-Object { [version]$_.Directory.Parent.Name } -Descending | Select-Object -First 1).FullName
& $signtool sign /f "${{ github.workspace }}\cert.pfx" /p "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "bin\3proxy.exe"
& $signtool sign /f "${{ github.workspace }}\cert.pfx" /p "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}" /tr http://timestamp.digicert.com /td sha256 /fd sha256 "bin\3proxy_crypt.exe"
- name: make dist dir - name: make dist dir
shell: cmd shell: cmd
run: | run: |
@ -62,10 +51,10 @@ 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\html\devel mkdir dist\3proxy\doc\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\mycrypt.exe dist\3proxy\bin64\
copy cfg\*.* dist\3proxy\cfg\ copy cfg\*.* dist\3proxy\cfg\
copy cfg\sql\*.* dist\3proxy\cfg\sql\ copy cfg\sql\*.* dist\3proxy\cfg\sql\
copy doc\ru\*.* dist\3proxy\doc\ru\ copy doc\ru\*.* dist\3proxy\doc\ru\
@ -73,10 +62,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\html\devel\*.rtf dist\3proxy\doc\html\devel\ copy doc\devel\*.rtf dist\3proxy\doc\devel\
copy copying dist\3proxy\ copy copying dist\3proxy\
copy authors dist\3proxy\ copy authors dist\3proxy\
copy README.md dist\3proxy\ copy README 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

@ -64,20 +64,20 @@ endif()
# For crypt: if prefix is empty, "my" is used instead ( mycrypt) # For crypt: if prefix is empty, "my" is used instead ( mycrypt)
set(3PROXY_BINARY_PREFIX "3proxy_" CACHE STRING "Prefix for standalone module and crypt binary names") set(3PROXY_BINARY_PREFIX "3proxy_" CACHE STRING "Prefix for standalone module and crypt binary names")
# Standalone module build options (ON by default) # Standalone module build options (OFF by default)
option(3PROXY_BUILD_NONE "Do not build standalone binaries" OFF) option(3PROXY_BUILD_ALL "Build all standalone binaries" OFF)
option(3PROXY_BUILD_PROXY "Build standalone proxy binary" ON) option(3PROXY_BUILD_PROXY "Build standalone proxy binary" OFF)
option(3PROXY_BUILD_SOCKS "Build standalone socks binary" ON) option(3PROXY_BUILD_SOCKS "Build standalone socks binary" OFF)
option(3PROXY_BUILD_POP3P "Build standalone pop3p binary" ON) option(3PROXY_BUILD_POP3P "Build standalone pop3p binary" OFF)
option(3PROXY_BUILD_SMTPP "Build standalone smtpp binary" ON) option(3PROXY_BUILD_SMTPP "Build standalone smtpp binary" OFF)
option(3PROXY_BUILD_FTPPR "Build standalone ftppr binary" ON) option(3PROXY_BUILD_FTPPR "Build standalone ftppr binary" OFF)
option(3PROXY_BUILD_TCPPM "Build standalone tcppm binary" ON) option(3PROXY_BUILD_TCPPM "Build standalone tcppm binary" OFF)
option(3PROXY_BUILD_UDPPM "Build standalone udppm binary" ON) option(3PROXY_BUILD_UDPPM "Build standalone udppm binary" OFF)
option(3PROXY_BUILD_TLSPR "Build standalone tlspr binary" ON) option(3PROXY_BUILD_TLSPR "Build standalone tlspr binary" OFF)
if(3PROXY_BUILD_NONE) if(3PROXY_BUILD_ALL)
foreach(_M PROXY SOCKS POP3P SMTPP FTPPR TCPPM UDPPM TLSPR) foreach(_M PROXY SOCKS POP3P SMTPP FTPPR TCPPM UDPPM TLSPR)
set(3PROXY_BUILD_${_M} OFF) set(3PROXY_BUILD_${_M} ON)
endforeach() endforeach()
endif() endif()
@ -676,25 +676,8 @@ endif()
# Install configuration files # Install configuration files
if(NOT WIN32) if(NOT WIN32)
set(CRYPT_PREFIX "${3PROXY_BINARY_PREFIX}") install(FILES scripts/3proxy.cfg DESTINATION /etc/3proxy)
set(3PROXY_CONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/3proxy/conf") install(FILES scripts/add3proxyuser.sh DESTINATION ${CMAKE_INSTALL_BINDIR})
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)
@ -753,6 +736,16 @@ 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
@ -785,14 +778,16 @@ if(NOT WIN32)
message(STATUS " init.d: YES (/etc/init.d)") message(STATUS " init.d: YES (/etc/init.d)")
endif() endif()
# Run postinstall only for direct installs (no DESTDIR) # Create proxy user and group during installation
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_COMMAND} -E env sh ${CMAKE_CURRENT_SOURCE_DIR}/scripts/postinstall.sh ${CMAKE_INSTALL_PREFIX} COMMAND ${CMAKE_INSTALL_FULL_BINDIR}/postinstall.sh
RESULT_VARIABLE POSTINSTALL_RESULT RESULT_VARIABLE POSTINSTALL_RESULT
) )
endif()
") ")
endif() endif()

View File

@ -68,41 +68,29 @@ endif
include Makefile.inc include Makefile.inc
DESTDIR ?=
prefix ?= /usr/local
BINPREFIX ?= $(prefix)/bin
install: all install: all
if [ ! -d "$(DESTDIR)$(BINPREFIX)" ]; then mkdir -p $(DESTDIR)$(BINPREFIX)/; fi if [ ! -d "/usr/local/3proxy/bin" ]; then mkdir -p /usr/local/3proxy/bin/; fi
install bin/3proxy $(DESTDIR)$(BINPREFIX)/3proxy install bin/3proxy /usr/local/3proxy/bin/3proxy
install bin/$(CRYPT_PREFIX)crypt $(DESTDIR)$(BINPREFIX)/$(CRYPT_PREFIX)crypt install bin/$(CRYPT_PREFIX)crypt /usr/local/3proxy/bin/$(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 $(DESTDIR)$(BINPREFIX)/$(PREFIX)$$f; fi; \ if [ -f bin/$(PREFIX)$$f ]; then install bin/$(PREFIX)$$f /usr/local/3proxy/bin/$(PREFIX)$$f; fi; \
done done
install -d $(DESTDIR)$(prefix)/etc/3proxy/conf 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
chmod 755 $(DESTDIR)$(BINPREFIX)/add3proxyuser touch /usr/local/3proxy/counters
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/bandlimiters
if [ ! -d $(DESTDIR)/var/log/3proxy/ ]; then mkdir -p $(DESTDIR)/var/log/3proxy/; fi install -d $(MANDIR)/man8
mkdir -p $(DESTDIR)/opt/3proxy install -m 644 man/3proxy.8 $(MANDIR)/man8/3proxy.8
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 $(DESTDIR)$(MANDIR)/man8/$(PREFIX)$$f.8; fi; \ if [ -f man/$$f.8 ]; then install -m 644 man/$$f.8 $(MANDIR)/man8/$(PREFIX)$$f.8; fi; \
done done
install -m 644 man/3proxy_crypt.8 $(DESTDIR)$(MANDIR)/man8/$(CRYPT_PREFIX)crypt.8 install -m 644 man/3proxy_crypt.8 $(MANDIR)/man8
install -d $(DESTDIR)$(MANDIR)/man5 install -d $(MANDIR)/man5
install -m 644 man/3proxy.cfg.5 $(DESTDIR)$(MANDIR)/man5/3proxy.cfg.5 install -m 644 man/3proxy.cfg.5 $(MANDIR)/man5/3proxy.cfg.5
@if [ "$(DESTDIR)" = "" ]; then \ echo Run /usr/local/3proxy/bin/add3proxyuser.sh to add \'admin\' user
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,11 +97,12 @@ 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.in INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh
INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service.in INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service
CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy
CHROOTREL = ../..$(chroot_prefix)/3proxy CHROOTREL = ../..$(chroot_prefix)/3proxy
@ -110,6 +111,8 @@ 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
@ -119,7 +122,6 @@ 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)
@ -130,11 +132,13 @@ 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
@ -152,13 +156,16 @@ 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)/$(CRYPT_PREFIX)crypt.8 $(INSTALL_DATA) man/3proxy_crypt.8 $(MANDIR8)
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)
@ -166,10 +173,8 @@ 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-init install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init
@if [ "$(DESTDIR)" = "" ]; then \ @if [ "$(DESTDIR)" = "" ]; then \
sh debian/preinst; \ sh debian/preinst; \
sh debian/postinst; \ sh debian/postinst; \
else \
ls -lR $(DESTDIR); \
fi fi

View File

@ -6,8 +6,6 @@
# library support. Add -DSAFESQL for poorely written ODBC library / drivers. # library support. Add -DSAFESQL for poorely written ODBC library / drivers.
BUILDDIR = ../bin/ BUILDDIR = ../bin/
PREFIX ?= 3proxy_
CRYPT_PREFIX ?= $(PREFIX)
CC ?= cc CC ?= cc
CFLAGS = -xO3 -c -D_SOLARIS -D_THREAD_SAFE -DGETHOSTBYNAME_R -D_REENTRANT -DFD_SETSIZE=4096 -DWITH_POLL CFLAGS = -xO3 -c -D_SOLARIS -D_THREAD_SAFE -DGETHOSTBYNAME_R -D_REENTRANT -DFD_SETSIZE=4096 -DWITH_POLL
COUT = -o ./ COUT = -o ./

View File

@ -6,8 +6,6 @@
# Add /DSAFESQL to CFLAGS if you are using poorely written/tested ODBC driver # Add /DSAFESQL to CFLAGS if you are using poorely written/tested ODBC driver
BUILDDIR = ../bin/ BUILDDIR = ../bin/
PREFIX = 3proxy_
CRYPT_PREFIX = 3proxy_
CC = cl CC = cl
VERSION = $(VERSION) VERSION = $(VERSION)
BUILDDATE = $(BUILDDATE) BUILDDATE = $(BUILDDATE)

View File

@ -70,41 +70,29 @@ endif
include Makefile.inc include Makefile.inc
DESTDIR ?=
prefix ?= /usr/local
BINPREFIX ?= $(prefix)/bin
install: all install: all
if [ ! -d "$(DESTDIR)$(BINPREFIX)" ]; then mkdir -p $(DESTDIR)$(BINPREFIX)/; fi if [ ! -d "/usr/local/3proxy/bin" ]; then mkdir -p /usr/local/3proxy/bin/; fi
install bin/3proxy $(DESTDIR)$(BINPREFIX)/3proxy install bin/3proxy /usr/local/3proxy/bin/3proxy
install bin/$(CRYPT_PREFIX)crypt $(DESTDIR)$(BINPREFIX)/$(CRYPT_PREFIX)crypt install bin/$(CRYPT_PREFIX)crypt /usr/local/3proxy/bin/$(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 $(DESTDIR)$(BINPREFIX)/$(PREFIX)$$f; fi; \ if [ -f bin/$(PREFIX)$$f ]; then install bin/$(PREFIX)$$f /usr/local/3proxy/bin/$(PREFIX)$$f; fi; \
done done
install -d $(DESTDIR)$(prefix)/etc/3proxy/conf 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
chmod 755 $(DESTDIR)$(BINPREFIX)/add3proxyuser touch /usr/local/3proxy/counters
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/bandlimiters
if [ ! -d $(DESTDIR)/var/log/3proxy/ ]; then mkdir -p $(DESTDIR)/var/log/3proxy/; fi install -d $(MANDIR)/man8
mkdir -p $(DESTDIR)/opt/3proxy install -m 644 man/3proxy.8 $(MANDIR)/man8/3proxy.8
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 $(DESTDIR)$(MANDIR)/man8/$(PREFIX)$$f.8; fi; \ if [ -f man/$$f.8 ]; then install -m 644 man/$$f.8 $(MANDIR)/man8/$(PREFIX)$$f.8; fi; \
done done
install -m 644 man/3proxy_crypt.8 $(DESTDIR)$(MANDIR)/man8/$(CRYPT_PREFIX)crypt.8 install -m 644 man/3proxy_crypt.8 $(MANDIR)/man8
install -d $(DESTDIR)$(MANDIR)/man5 install -d $(MANDIR)/man5
install -m 644 man/3proxy.cfg.5 $(DESTDIR)$(MANDIR)/man5/3proxy.cfg.5 install -m 644 man/3proxy.cfg.5 $(MANDIR)/man5/3proxy.cfg.5
@if [ "$(DESTDIR)" = "" ]; then \ echo Run /usr/local/3proxy/bin/add3proxyuser.sh to add \'admin\' user
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

@ -5,8 +5,6 @@
# Add /DSAFESQL to CFLAGS if you are using poorely written/tested ODBC driver # Add /DSAFESQL to CFLAGS if you are using poorely written/tested ODBC driver
BUILDDIR = ../bin/ BUILDDIR = ../bin/
PREFIX = 3proxy_
CRYPT_PREFIX = 3proxy_
CC = cl CC = cl
CFLAGS = /nologo /Ox /MT /D "NOIPV6" /D "NODEBUG" /D "NORADIUS" /D"WATCOM" /D "MSVC" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRId64=\"I64d\"" /D "PRIu64=\"I64u\"" /D "SCNu64=\"I64u\"" /D "SCNx64=\"I64x\"" /D "SCNd64=\"I64d\"" /D "PRIx64=\"I64x\"" /c $(VERSION) $(BUILDDATE) CFLAGS = /nologo /Ox /MT /D "NOIPV6" /D "NODEBUG" /D "NORADIUS" /D"WATCOM" /D "MSVC" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRId64=\"I64d\"" /D "PRIu64=\"I64u\"" /D "SCNu64=\"I64u\"" /D "SCNx64=\"I64x\"" /D "SCNd64=\"I64d\"" /D "PRIx64=\"I64x\"" /c $(VERSION) $(BUILDDATE)
COUT = /Fo COUT = /Fo

View File

@ -6,8 +6,6 @@
BUILDDIR = ../bin/ BUILDDIR = ../bin/
PREFIX ?= 3proxy_
CRYPT_PREFIX ?= $(PREFIX)
CC ?= gcc CC ?= gcc
CFLAGS ?= -O3 -flto CFLAGS ?= -O3 -flto
CFLAGS += -fno-strict-aliasing -c -mthreads -DWITH_WSAPOLL -DWITH_ODBC CFLAGS += -fno-strict-aliasing -c -mthreads -DWITH_WSAPOLL -DWITH_ODBC

View File

@ -0,0 +1,11 @@
man/3proxy.8
man/3proxy.cfg.5
man/3proxy_ftppr.8
man/3proxy_pop3p.8
man/3proxy_tlspr.8
man/3proxy_proxy.8
man/3proxy_smtpp.8
man/3proxy_socks.8
man/3proxy_tcppm.8
man/3proxy_udppm.8
man/3proxy_crypt.8

4
debian/conffiles vendored
View File

@ -1,4 +0,0 @@
/etc/3proxy/3proxy.cfg
/usr/local/3proxy/conf/3proxy.cfg
/usr/local/3proxy/conf/bandlimiters
/usr/local/3proxy/conf/counters

14
debian/postinst vendored
View File

@ -1,17 +1,3 @@
[ -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; \

15
debian/rules vendored
View File

@ -3,21 +3,8 @@
%: %:
dh $@ dh $@
override_dh_auto_configure:
ln -sf Makefile.Linux Makefile
override_dh_auto_build:
$(MAKE)
override_dh_auto_install:
$(MAKE) DESTDIR=debian/3proxy install
override_dh_installman:
override_dh_usrlocal:
override_dh_auto_clean: override_dh_auto_clean:
find src/ -type f -name "*.o" -delete find src/ -type f -name "*.o" -delete
find src/ -type f -name "Makefile.var" -delete find src/ -type f -name "Makefile.var" -delete
find bin/ -type f -executable -delete find bin/ -type f -executable -delete
rm -f Makefile

4
scripts/3proxy.cfg Normal file
View File

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

View File

@ -1,33 +0,0 @@
#!@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,10 +5,8 @@ nserver 8.8.4.4
config /conf/3proxy.cfg config /conf/3proxy.cfg
monitor /conf/3proxy.cfg monitor /conf/3proxy.cfg
log @3proxy log /logs/3proxy-%y%m%d.log D
#log /logs/3proxy-%y%m%d.log D rotate 60
#rotate 60
counter /count/3proxy.3cf counter /count/3proxy.3cf
users $/conf/passwd users $/conf/passwd

19
scripts/3proxy.service Normal file
View File

@ -0,0 +1,19 @@
[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=@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg Environment=CONFIGFILE=/etc/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

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

15
scripts/add3proxyuser.sh Normal file
View File

@ -0,0 +1,15 @@
#!/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

@ -1,14 +0,0 @@
#!/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=@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg CONFIGFILE=/etc/3proxy/3proxy.cfg
PIDFILE=/var/run/3proxy/3proxy.pid PIDFILE=/var/run/3proxy/3proxy.pid
USER=proxy USER=proxy
GROUP=proxy GROUP=proxy

56
scripts/init.d/3proxy.sh Normal file
View File

@ -0,0 +1,56 @@
#!/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>@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg</string> <string>/etc/3proxy/3proxy.cfg</string>
</array> </array>
<key>UserName</key> <key>UserName</key>
<string>proxy</string> <string>proxy</string>

View File

@ -4,12 +4,11 @@
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"
else exit 0
fi
echo "Creating proxy user and group..." echo "Creating proxy user and group..."
@ -34,6 +33,7 @@ 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,12 +42,4 @@ 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

27
scripts/rc.d/3proxy Normal file
View File

@ -0,0 +1,27 @@
#!/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 NETWORKING # REQUIRE: LOGIN DAEMON
# 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:-@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg}" command_args="${3proxy_config:-/etc/3proxy/3proxy.cfg}"
required_files="${3proxy_config:-@CMAKE_INSTALL_FULL_SYSCONFDIR@/3proxy/3proxy.cfg}" required_files="${3proxy_config:-/etc/3proxy/3proxy.cfg}"
command_user="proxy:proxy" command_user="proxy:proxy"
start_precmd="3proxy_precmd" start_precmd="3proxy_precmd"

View File

@ -41,16 +41,16 @@ 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
/usr/share/man/man5/3proxy.cfg.5* /usr/share/man/man5/3proxy.cfg.5
/usr/share/man/man8/* /usr/share/man/man8/*
/var/log/3proxy /var/log/3proxy
@ -66,17 +66,10 @@ 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
[ -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; \ chown -R proxy:proxy /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/
[ -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 550 /usr/local/3proxy/conf/
if [ -d /etc/3proxy ]; then \ chmod 440 /usr/local/3proxy/conf/*
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; \
@ -91,8 +84,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 ;\
@ -106,10 +99,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 " "/bin/add3proxyuser echo " "/usr/local/3proxy/conf/add3proxyuser.sh
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 \'/bin/add3proxyuser admin password\' to configure \'admin\' user echo run \'/usr/local/3proxy/conf/add3proxyuser.sh admin password\' to configure \'admin\' user