diff --git a/Makefile.FreeBSD b/Makefile.FreeBSD index 0d004f4..8142bdf 100644 --- a/Makefile.FreeBSD +++ b/Makefile.FreeBSD @@ -35,23 +35,105 @@ PLUGINS = StringsPlugin TrafficPlugin PCREPlugin PamAuth TransparentPlugin include Makefile.inc -install: all - if [ ! -d /usr/local/3proxy/bin ]; then mkdir -p /usr/local/3proxy/bin/; fi - install bin/3proxy /usr/local/3proxy/bin/3proxy - install bin/mycrypt /usr/local/3proxy/bin/mycrypt - install scripts/add3proxyuser.sh /usr/local/3proxy/bin/ - 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/ - if [ ! -d /var/log/3proxy/ ]; then - mkdir /var/log/3proxy/ - fi - touch /usr/local/3proxy/passwd - touch /usr/local/3proxy/counters - touch /usr/local/3proxy/bandlimiters - echo Run /usr/local/3proxy/bin/add3proxyuser.sh to add \'admin\' user - fi allplugins: @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done + +DESTDIR = +prefix = +exec_prefix = $(prefix) +man_prefix = /usr/share +chroot_prefix = /usr/local + +INSTALL = /usr/bin/install +INSTALL_BIN = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_OBJS = bin/3proxy \ + bin/ftppr \ + bin/mycrypt \ + bin/pop3p \ + bin/proxy \ + bin/socks \ + bin/tcppm \ + bin/udppm + + +INSTALL_CFG = scripts/3proxy.cfg.chroot +INSTALL_CFG_OBJS = scripts/3proxy.cfg \ + scripts/add3proxyuser.sh + +INSTALL_CFG_OBJS2 = counters bandlimiters + +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service + +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy +MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 +MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 +MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 +BINDIR = $(DESTDIR)$(exec_prefix)/bin +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run +RUNDIR = $(RUNBASE)/3proxy +LOGBASE = $(DESTDIR)/var/log +LOGDIR = $(LOGBASE)/3proxy +INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ + +install-bin: + $(INSTALL_BIN) -d $(BINDIR) + $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) + $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec + chmod -R a-w $(CHROOTDIR)/libexec + +install-etc-dir: + $(INSTALL_BIN) -d $(ETCDIR) + +install-chroot-dir: + $(INSTALL_BIN) -d $(CHROOTDIR) + $(INSTALL_BIN) -d $(CHROOTDIR)/conf + $(INSTALL_BIN) -d $(CHROOTDIR)/logs + $(INSTALL_BIN) -d $(CHROOTDIR)/count + $(INSTALL_BIN) -d $(CHROOTDIR)/libexec + chmod -R o-rwx $(CHROOTDIR) + +install-etc-default-config: + if [ ! -d $(INSTALL_CFG_DEST) ]; then \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ + $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ + fi + +install-etc: install-etc-dir install-etc-default-config + for file in $(INSTALL_CFG_OBJS2); \ + do \ + touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \ + done; + +install-man: + $(INSTALL_BIN) -d $(MANDIR3) + $(INSTALL_BIN) -d $(MANDIR8) + $(INSTALL_DATA) man/*.3 $(MANDIR3) + $(INSTALL_DATA) man/*.8 $(MANDIR8) + +install-init: + $(INSTALL_BIN) -d $(INITDDIR) + $(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_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ + fi + +install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ + fi diff --git a/Makefile.Linux b/Makefile.Linux index 45e4295..5713276 100644 --- a/Makefile.Linux +++ b/Makefile.Linux @@ -45,6 +45,7 @@ DESTDIR = prefix = exec_prefix = $(prefix) man_prefix = /usr/share +chroot_prefix = /usr/local INSTALL = /usr/bin/install INSTALL_BIN = $(INSTALL) -m 755 @@ -66,19 +67,22 @@ INSTALL_CFG_OBJS = scripts/3proxy.cfg \ INSTALL_CFG_OBJS2 = counters bandlimiters INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service -CHROOTDIR = $(DESTDIR)/usr/local/3proxy +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 BINDIR = $(DESTDIR)$(exec_prefix)/bin -ETCDIR = $(DESTDIR)$(prefix)/etc/3proxy -INITDDIR = $(DESTDIR)$(prefix)/etc/init.d -RUNBASE = $(DESTDIR)$(prefix)/var/run +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run RUNDIR = $(RUNBASE)/3proxy -LOGBASE = $(DESTDIR)$(prefix)/var/log +LOGBASE = $(DESTDIR)/var/log LOGDIR = $(LOGBASE)/3proxy INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ install-bin: $(INSTALL_BIN) -d $(BINDIR) @@ -99,7 +103,7 @@ install-chroot-dir: install-etc-default-config: if [ ! -d $(INSTALL_CFG_DEST) ]; then \ - ln -s $(CHROOTDIR)/conf $(INSTALL_CFG_DEST); \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ fi @@ -117,46 +121,21 @@ install-man: $(INSTALL_DATA) man/*.8 $(MANDIR8) install-init: - if [ -d $(INITDIR) ]; then \ - $(INSTALL_BIN) $(INSTALL_INITD_SCRIPT) $(INITDDIR)/3proxy; \ - fi - if [ -f /usr/sbin/update-rc.d ]; then \ - /usr/sbin/update-rc.d 3proxy defaults; \ - /usr/sbin/update-rc.d 3proxy enable; \ - fi + $(INSTALL_BIN) -d $(INITDDIR) + $(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: - @if [ -d $(LOGBASE) ] && [ ! -d $(LOGDIR) ]; then \ - ln -s $(CHROOTDIR)/logs $(LOGDIR);\ + $(INSTALL_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ fi install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init - @getent passwd proxy || useradd -UMr -s /bin/false -c 3proxy proxy - @if [ ! -f $(INSTALL_CFG_DEST)/passwd ]; then \ - touch $(INSTALL_CFG_DEST)/passwd;\ - fi - @chown -R proxy:proxy $(CHROOTDIR) - @chmod 550 $(CHROOTDIR)/ - @chmod 550 $(CHROOTDIR)/conf/ - @chmod 440 $(CHROOTDIR)/conf/* - @echo "" - @echo 3proxy installed. - @echo use - @echo " "service 3proxy start - @echo to start proxy - @echo " "service 3proxy stop - @echo to stop proxy - @echo " "$(INSTALL_CFG_DEST)/add3proxyuser.sh - @echo to add users - @echo "" - @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 Configure preferred DNS in $(INSTALL_CFG_DEST)/3proxy.cfg. - @echo run \'$(INSTALL_CFG_DEST)/add3proxyuser.sh admin password\' to configure \'admin\' user - @if [ -f /usr/sbin/service ]; then \ - /usr/sbin/service 3proxy stop ;\ - /usr/sbin/service 3proxy start ;\ + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ fi diff --git a/Makefile.Solaris b/Makefile.Solaris index 158ed7f..54db673 100644 --- a/Makefile.Solaris +++ b/Makefile.Solaris @@ -34,3 +34,102 @@ include Makefile.inc allplugins: @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done + +DESTDIR = +prefix = +exec_prefix = $(prefix) +man_prefix = /usr/share +chroot_prefix = /usr/local + +INSTALL = /usr/bin/install +INSTALL_BIN = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_OBJS = bin/3proxy \ + bin/ftppr \ + bin/mycrypt \ + bin/pop3p \ + bin/proxy \ + bin/socks \ + bin/tcppm \ + bin/udppm + + +INSTALL_CFG = scripts/3proxy.cfg.chroot +INSTALL_CFG_OBJS = scripts/3proxy.cfg \ + scripts/add3proxyuser.sh + +INSTALL_CFG_OBJS2 = counters bandlimiters + +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service + +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy +MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 +MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 +MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 +BINDIR = $(DESTDIR)$(exec_prefix)/bin +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run +RUNDIR = $(RUNBASE)/3proxy +LOGBASE = $(DESTDIR)/var/log +LOGDIR = $(LOGBASE)/3proxy +INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ + +install-bin: + $(INSTALL_BIN) -d $(BINDIR) + $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) + $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec + chmod -R a-w $(CHROOTDIR)/libexec + +install-etc-dir: + $(INSTALL_BIN) -d $(ETCDIR) + +install-chroot-dir: + $(INSTALL_BIN) -d $(CHROOTDIR) + $(INSTALL_BIN) -d $(CHROOTDIR)/conf + $(INSTALL_BIN) -d $(CHROOTDIR)/logs + $(INSTALL_BIN) -d $(CHROOTDIR)/count + $(INSTALL_BIN) -d $(CHROOTDIR)/libexec + chmod -R o-rwx $(CHROOTDIR) + +install-etc-default-config: + if [ ! -d $(INSTALL_CFG_DEST) ]; then \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ + $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ + fi + +install-etc: install-etc-dir install-etc-default-config + for file in $(INSTALL_CFG_OBJS2); \ + do \ + touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \ + done; + +install-man: + $(INSTALL_BIN) -d $(MANDIR3) + $(INSTALL_BIN) -d $(MANDIR8) + $(INSTALL_DATA) man/*.3 $(MANDIR3) + $(INSTALL_DATA) man/*.8 $(MANDIR8) + +install-init: + $(INSTALL_BIN) -d $(INITDDIR) + $(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_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ + fi + +install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ + fi diff --git a/Makefile.Solaris-gcc b/Makefile.Solaris-gcc index 65ded9b..27ae32c 100644 --- a/Makefile.Solaris-gcc +++ b/Makefile.Solaris-gcc @@ -35,3 +35,102 @@ include Makefile.inc allplugins: @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done + +DESTDIR = +prefix = +exec_prefix = $(prefix) +man_prefix = /usr/share +chroot_prefix = /usr/local + +INSTALL = /usr/bin/install +INSTALL_BIN = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_OBJS = bin/3proxy \ + bin/ftppr \ + bin/mycrypt \ + bin/pop3p \ + bin/proxy \ + bin/socks \ + bin/tcppm \ + bin/udppm + + +INSTALL_CFG = scripts/3proxy.cfg.chroot +INSTALL_CFG_OBJS = scripts/3proxy.cfg \ + scripts/add3proxyuser.sh + +INSTALL_CFG_OBJS2 = counters bandlimiters + +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service + +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy +MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 +MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 +MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 +BINDIR = $(DESTDIR)$(exec_prefix)/bin +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run +RUNDIR = $(RUNBASE)/3proxy +LOGBASE = $(DESTDIR)/var/log +LOGDIR = $(LOGBASE)/3proxy +INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ + +install-bin: + $(INSTALL_BIN) -d $(BINDIR) + $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) + $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec + chmod -R a-w $(CHROOTDIR)/libexec + +install-etc-dir: + $(INSTALL_BIN) -d $(ETCDIR) + +install-chroot-dir: + $(INSTALL_BIN) -d $(CHROOTDIR) + $(INSTALL_BIN) -d $(CHROOTDIR)/conf + $(INSTALL_BIN) -d $(CHROOTDIR)/logs + $(INSTALL_BIN) -d $(CHROOTDIR)/count + $(INSTALL_BIN) -d $(CHROOTDIR)/libexec + chmod -R o-rwx $(CHROOTDIR) + +install-etc-default-config: + if [ ! -d $(INSTALL_CFG_DEST) ]; then \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ + $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ + fi + +install-etc: install-etc-dir install-etc-default-config + for file in $(INSTALL_CFG_OBJS2); \ + do \ + touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \ + done; + +install-man: + $(INSTALL_BIN) -d $(MANDIR3) + $(INSTALL_BIN) -d $(MANDIR8) + $(INSTALL_DATA) man/*.3 $(MANDIR3) + $(INSTALL_DATA) man/*.8 $(MANDIR8) + +install-init: + $(INSTALL_BIN) -d $(INITDDIR) + $(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_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ + fi + +install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ + fi diff --git a/Makefile.intl b/Makefile.intl index 56ab7d9..d406cb2 100644 --- a/Makefile.intl +++ b/Makefile.intl @@ -31,3 +31,102 @@ include Makefile.inc allplugins: for /D %%i in ($(PLUGINS)) do (copy Makefile Makefile.var plugins\%%i && cd plugins\%%i && nmake && del *.obj *.idb &&cd ..\..) + +DESTDIR = +prefix = +exec_prefix = $(prefix) +man_prefix = /usr/share +chroot_prefix = /usr/local + +INSTALL = /usr/bin/install +INSTALL_BIN = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_OBJS = bin/3proxy \ + bin/ftppr \ + bin/mycrypt \ + bin/pop3p \ + bin/proxy \ + bin/socks \ + bin/tcppm \ + bin/udppm + + +INSTALL_CFG = scripts/3proxy.cfg.chroot +INSTALL_CFG_OBJS = scripts/3proxy.cfg \ + scripts/add3proxyuser.sh + +INSTALL_CFG_OBJS2 = counters bandlimiters + +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service + +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy +MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 +MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 +MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 +BINDIR = $(DESTDIR)$(exec_prefix)/bin +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run +RUNDIR = $(RUNBASE)/3proxy +LOGBASE = $(DESTDIR)/var/log +LOGDIR = $(LOGBASE)/3proxy +INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ + +install-bin: + $(INSTALL_BIN) -d $(BINDIR) + $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) + $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec + chmod -R a-w $(CHROOTDIR)/libexec + +install-etc-dir: + $(INSTALL_BIN) -d $(ETCDIR) + +install-chroot-dir: + $(INSTALL_BIN) -d $(CHROOTDIR) + $(INSTALL_BIN) -d $(CHROOTDIR)/conf + $(INSTALL_BIN) -d $(CHROOTDIR)/logs + $(INSTALL_BIN) -d $(CHROOTDIR)/count + $(INSTALL_BIN) -d $(CHROOTDIR)/libexec + chmod -R o-rwx $(CHROOTDIR) + +install-etc-default-config: + if [ ! -d $(INSTALL_CFG_DEST) ]; then \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ + $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ + fi + +install-etc: install-etc-dir install-etc-default-config + for file in $(INSTALL_CFG_OBJS2); \ + do \ + touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \ + done; + +install-man: + $(INSTALL_BIN) -d $(MANDIR3) + $(INSTALL_BIN) -d $(MANDIR8) + $(INSTALL_DATA) man/*.3 $(MANDIR3) + $(INSTALL_DATA) man/*.8 $(MANDIR8) + +install-init: + $(INSTALL_BIN) -d $(INITDDIR) + $(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_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ + fi + +install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ + fi diff --git a/Makefile.llvm b/Makefile.llvm index f3b892e..fb93f6d 100644 --- a/Makefile.llvm +++ b/Makefile.llvm @@ -34,3 +34,102 @@ include Makefile.inc allplugins: for /D %%i in ($(PLUGINS)) do (copy Makefile plugins\%%i && copy Makefile.var plugins\%%i && cd plugins\%%i && nmake && del *.o &&cd ..\..) + +DESTDIR = +prefix = +exec_prefix = $(prefix) +man_prefix = /usr/share +chroot_prefix = /usr/local + +INSTALL = /usr/bin/install +INSTALL_BIN = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_OBJS = bin/3proxy \ + bin/ftppr \ + bin/mycrypt \ + bin/pop3p \ + bin/proxy \ + bin/socks \ + bin/tcppm \ + bin/udppm + + +INSTALL_CFG = scripts/3proxy.cfg.chroot +INSTALL_CFG_OBJS = scripts/3proxy.cfg \ + scripts/add3proxyuser.sh + +INSTALL_CFG_OBJS2 = counters bandlimiters + +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service + +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy +MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 +MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 +MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 +BINDIR = $(DESTDIR)$(exec_prefix)/bin +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run +RUNDIR = $(RUNBASE)/3proxy +LOGBASE = $(DESTDIR)/var/log +LOGDIR = $(LOGBASE)/3proxy +INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ + +install-bin: + $(INSTALL_BIN) -d $(BINDIR) + $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) + $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec + chmod -R a-w $(CHROOTDIR)/libexec + +install-etc-dir: + $(INSTALL_BIN) -d $(ETCDIR) + +install-chroot-dir: + $(INSTALL_BIN) -d $(CHROOTDIR) + $(INSTALL_BIN) -d $(CHROOTDIR)/conf + $(INSTALL_BIN) -d $(CHROOTDIR)/logs + $(INSTALL_BIN) -d $(CHROOTDIR)/count + $(INSTALL_BIN) -d $(CHROOTDIR)/libexec + chmod -R o-rwx $(CHROOTDIR) + +install-etc-default-config: + if [ ! -d $(INSTALL_CFG_DEST) ]; then \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ + $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ + fi + +install-etc: install-etc-dir install-etc-default-config + for file in $(INSTALL_CFG_OBJS2); \ + do \ + touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \ + done; + +install-man: + $(INSTALL_BIN) -d $(MANDIR3) + $(INSTALL_BIN) -d $(MANDIR8) + $(INSTALL_DATA) man/*.3 $(MANDIR3) + $(INSTALL_DATA) man/*.8 $(MANDIR8) + +install-init: + $(INSTALL_BIN) -d $(INITDDIR) + $(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_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ + fi + +install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ + fi diff --git a/Makefile.openwrt-mips b/Makefile.openwrt-mips index 3445b44..7832547 100644 --- a/Makefile.openwrt-mips +++ b/Makefile.openwrt-mips @@ -42,53 +42,76 @@ allplugins: @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done DESTDIR = -prefix = /usr/local +prefix = exec_prefix = $(prefix) -man_prefix = $(prefix)/share +man_prefix = /usr/share +chroot_prefix = /usr/local INSTALL = /usr/bin/install INSTALL_BIN = $(INSTALL) -m 755 INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_OBJS = src/3proxy \ - src/ftppr \ - src/mycrypt \ - src/pop3p \ - src/proxy \ - src/socks \ - src/tcppm \ - src/udppm +INSTALL_OBJS = bin/3proxy \ + bin/ftppr \ + bin/mycrypt \ + bin/pop3p \ + bin/proxy \ + bin/socks \ + bin/tcppm \ + bin/udppm +INSTALL_CFG = scripts/3proxy.cfg.chroot INSTALL_CFG_OBJS = scripts/3proxy.cfg \ scripts/add3proxyuser.sh -INSTALL_CFG_DEST = config -INSTALL_CFG_OBJS2 = passwd counters bandlimiters +INSTALL_CFG_OBJS2 = counters bandlimiters +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service + +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 BINDIR = $(DESTDIR)$(exec_prefix)/bin -ETCDIR = $(DESTDIR)$(prefix)/etc/3proxy +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run +RUNDIR = $(RUNBASE)/3proxy +LOGBASE = $(DESTDIR)/var/log +LOGDIR = $(LOGBASE)/3proxy +INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ install-bin: $(INSTALL_BIN) -d $(BINDIR) $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) + $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec + chmod -R a-w $(CHROOTDIR)/libexec install-etc-dir: $(INSTALL_BIN) -d $(ETCDIR) +install-chroot-dir: + $(INSTALL_BIN) -d $(CHROOTDIR) + $(INSTALL_BIN) -d $(CHROOTDIR)/conf + $(INSTALL_BIN) -d $(CHROOTDIR)/logs + $(INSTALL_BIN) -d $(CHROOTDIR)/count + $(INSTALL_BIN) -d $(CHROOTDIR)/libexec + chmod -R o-rwx $(CHROOTDIR) + install-etc-default-config: - if [ -f $(ETCDIR)/$(INSTALL_CFG_DEST) ]; then \ - : ; \ - else \ - $(INSTALL_DATA) $(INSTALL_CFG_OBJS) $(ETCDIR)/$(INSTALL_CFG_DEST) \ + if [ ! -d $(INSTALL_CFG_DEST) ]; then \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ + $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ fi -install-etc: install-etc-dir +install-etc: install-etc-dir install-etc-default-config for file in $(INSTALL_CFG_OBJS2); \ do \ - touch $(ETCDIR)/$$file; chmod 0600 $(ETCDIR)/$$file; \ + touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \ done; install-man: @@ -97,5 +120,22 @@ install-man: $(INSTALL_DATA) man/*.3 $(MANDIR3) $(INSTALL_DATA) man/*.8 $(MANDIR8) -install: install-bin install-etc install-man +install-init: + $(INSTALL_BIN) -d $(INITDDIR) + $(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_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ + fi + +install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ + fi diff --git a/Makefile.unix b/Makefile.unix index cb26a0c..00462f8 100644 --- a/Makefile.unix +++ b/Makefile.unix @@ -36,24 +36,104 @@ PLUGINS = StringsPlugin TrafficPlugin PCREPlugin PamAuth TransparentPlugin include Makefile.inc -install: all - if [ ! -d /usr/local/etc/3proxy/bin ]; then mkdir -p /usr/local/etc/3proxy/bin/; fi - install bin/3proxy /usr/local/etc/3proxy/bin/3proxy - install bin/mycrypt /usr/local/etc/3proxy/bin/mycrypt - install scripts/rc.d/proxy.sh /usr/local/etc/rc.d/proxy.sh - install scripts/add3proxyuser.sh /usr/local/etc/3proxy/bin/ - if [ -s /usr/local/etc/3proxy/3proxy.cfg ]; then - echo /usr/local/etc/3proxy/3proxy.cfg already exists - else - install scripts/3proxy.cfg /usr/local/etc/3proxy/ - if [ ! -d /var/log/3proxy/ ]; then - mkdir /var/log/3proxy/ - fi - touch /usr/local/etc/3proxy/passwd - touch /usr/local/etc/3proxy/counters - touch /usr/local/etc/3proxy/bandlimiters - echo Run /usr/local/etc/3proxy/bin/add3proxyuser.sh to add \'admin\' user - fi - allplugins: @list='$(PLUGINS)'; for p in $$list; do cp Makefile Makefile.var plugins/$$p; cd plugins/$$p ; make ; cd ../.. ; done + +DESTDIR = +prefix = +exec_prefix = $(prefix) +man_prefix = /usr/share +chroot_prefix = /usr/local + +INSTALL = /usr/bin/install +INSTALL_BIN = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_OBJS = bin/3proxy \ + bin/ftppr \ + bin/mycrypt \ + bin/pop3p \ + bin/proxy \ + bin/socks \ + bin/tcppm \ + bin/udppm + + +INSTALL_CFG = scripts/3proxy.cfg.chroot +INSTALL_CFG_OBJS = scripts/3proxy.cfg \ + scripts/add3proxyuser.sh + +INSTALL_CFG_OBJS2 = counters bandlimiters + +INSTALL_INITD_SCRIPT = scripts/init.d/3proxy.sh +INSTALL_SYSTEMD_SCRIPT = scripts/3proxy.service + +CHROOTDIR = $(DESTDIR)$(chroot_prefix)/3proxy +CHROOTREL = ../..$(chroot_prefix)/3proxy +MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 +MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 +MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 +BINDIR = $(DESTDIR)$(exec_prefix)/bin +ETCDIR = $(DESTDIR)/etc/3proxy +INITDDIR = $(DESTDIR)/etc/init.d +RUNBASE = $(DESTDIR)/var/run +RUNDIR = $(RUNBASE)/3proxy +LOGBASE = $(DESTDIR)/var/log +LOGDIR = $(LOGBASE)/3proxy +INSTALL_CFG_DEST = $(ETCDIR)/conf +SYSTEMDDIR = $(DESTDIR)/usr/lib/systemd/system/ + +install-bin: + $(INSTALL_BIN) -d $(BINDIR) + $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) + $(INSTALL_BIN) -s bin/*.ld.so $(CHROOTDIR)/libexec + chmod -R a-w $(CHROOTDIR)/libexec + +install-etc-dir: + $(INSTALL_BIN) -d $(ETCDIR) + +install-chroot-dir: + $(INSTALL_BIN) -d $(CHROOTDIR) + $(INSTALL_BIN) -d $(CHROOTDIR)/conf + $(INSTALL_BIN) -d $(CHROOTDIR)/logs + $(INSTALL_BIN) -d $(CHROOTDIR)/count + $(INSTALL_BIN) -d $(CHROOTDIR)/libexec + chmod -R o-rwx $(CHROOTDIR) + +install-etc-default-config: + if [ ! -d $(INSTALL_CFG_DEST) ]; then \ + ln -s $(CHROOTREL)/conf $(INSTALL_CFG_DEST); \ + $(INSTALL_BIN) $(INSTALL_CFG) $(ETCDIR)/3proxy.cfg; \ + $(INSTALL_BIN) $(INSTALL_CFG_OBJS) $(INSTALL_CFG_DEST); \ + fi + +install-etc: install-etc-dir install-etc-default-config + for file in $(INSTALL_CFG_OBJS2); \ + do \ + touch $(INSTALL_CFG_DEST)/$$file; chmod 0600 $(INSTALL_CFG_DEST)/$$file; \ + done; + +install-man: + $(INSTALL_BIN) -d $(MANDIR3) + $(INSTALL_BIN) -d $(MANDIR8) + $(INSTALL_DATA) man/*.3 $(MANDIR3) + $(INSTALL_DATA) man/*.8 $(MANDIR8) + +install-init: + $(INSTALL_BIN) -d $(INITDDIR) + $(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_BIN) -d $(LOGBASE) + @if [ ! -d $(LOGDIR) ]; then \ + ln -s $(CHROOTREL)/logs $(LOGDIR);\ + fi + +install: install-chroot-dir install-bin install-etc install-log install-man install-run install-init + @if [ "$(DESTDIR)" = "" ]; then \ + sh scripts/postinst; \ + fi diff --git a/Makefile.unix-install b/Makefile.unix-install deleted file mode 100644 index d9c8fe0..0000000 --- a/Makefile.unix-install +++ /dev/null @@ -1,59 +0,0 @@ -DESTDIR = -prefix = /usr/local -exec_prefix = $(prefix) -man_prefix = $(prefix)/share - -INSTALL = /usr/bin/install -INSTALL_BIN = $(INSTALL) -m 755 -INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_OBJS = bin/3proxy \ - bin/ftppr \ - bin/mycrypt \ - bin/pop3p \ - bin/proxy \ - bin/socks \ - bin/tcppm \ - bin/udppm \ - scripts/add3proxyuser.sh - -INSTALL_CFG_OBJS = scripts/3proxy.cfg -INSTALL_CFG_DEST = config - -INSTALL_CFG_OBJS2 = passwd counters bandlimiters - -MANDIR1 = $(DESTDIR)$(man_prefix)/man/man1 -MANDIR3 = $(DESTDIR)$(man_prefix)/man/man3 -MANDIR8 = $(DESTDIR)$(man_prefix)/man/man8 -BINDIR = $(DESTDIR)$(exec_prefix)/bin -ETCDIR = $(DESTDIR)$(prefix)/etc/3proxy - -install-bin: - $(INSTALL_BIN) -d $(BINDIR) - $(INSTALL_BIN) -s $(INSTALL_OBJS) $(BINDIR) - -install-etc-dir: - $(INSTALL_BIN) -d $(ETCDIR) - -install-etc-default-config: - if [ -f $(ETCDIR)/$(INSTALL_CFG_DEST) ]; then \ - : ; \ - else \ - $(INSTALL_DATA) $(INSTALL_CFG_OBJS) $(ETCDIR)/$(INSTALL_CFG_DEST) \ - fi - -install-etc: install-etc-dir - for file in $(INSTALL_CFG_OBJS2); \ - do \ - touch $(ETCDIR)/$$file; chmod 0600 $(ETCDIR)/$$file; \ - done; - -install-man: - $(INSTALL_BIN) -d $(MANDIR1) - $(INSTALL_BIN) -d $(MANDIR3) - $(INSTALL_BIN) -d $(MANDIR8) - $(INSTALL_DATA) man/*.1 $(MANDIR1) - $(INSTALL_DATA) man/*.3 $(MANDIR3) - $(INSTALL_DATA) man/*.8 $(MANDIR8) - -install: install-bin install-etc install-man - diff --git a/scripts/3proxy-linux-install.sh b/scripts/3proxy-linux-install.sh deleted file mode 100644 index d352852..0000000 --- a/scripts/3proxy-linux-install.sh +++ /dev/null @@ -1,985 +0,0 @@ -#!/bin/bash -# 3proxy build and install script for Debian Linux -# Release 2.0 at 29.12.2016 -# (с) Evgeniy Solovyev -# mail-to: eugen-soloviov@yandex.ru - -ScriptPath="" -Src3proxyDirPath="" -ScriptName="" -ScriptFullName="" -SourceRoot="" - -ResourcesData="" - - -ProxyVersion="" -LasestProxyVersion="" -LasestProxyVersionLink="" -UseSudo=0 -PacketFiles="" -NeedSourceUpdate=0 - - -main() -{ - local msgNewVersion - local msgInsertYorN - - VarsInit - LoadResources - CheckRunConditions - - if [ $UseSudo == 1 ] - then - sudo bash "${0}" - exit $? - fi - - CheckLocation - GetLasestVersionInfo - - SourceDownloadOrUpdate - - cd "${SourceRoot}" - - Build3Proxy - BinInstall - ManInstall - CreateLogDir - CopyConfig - SetInit - Pack3proxyFiles -} - -VarsInit() -{ - cd `dirname $0` - ScriptPath="${PWD}" - ScriptName=`basename $0` - ScriptFullName="${ScriptPath}/${ScriptName}" -} - -CheckLocation() -{ - Src3proxyDirPath="${ScriptPath}" - - if echo ${ScriptPath} | grep -e "/scripts$" - then - if [ -e "../src/version.h" ] - then - ProxyVersion=`cat "../src/version.h" | awk '/VERSION/ { gsub("\"", "\n"); print; exit }' | grep "3proxy"` - cd ../ - SourceRoot="${PWD}" - cd ../ - Src3proxyDirPath="${PWD}" - cd "${ScriptPath}" - fi - fi -} - -GetLasestVersionInfo() -{ - local Githublink - local msg - - Githublink=`wget https://github.com/z3APA3A/3proxy/releases/latest -O /dev/stdout | - awk '/ "${ConfigDir}/3proxy.cfg" - - PacketFiles=`echo -e "${PacketFiles}\n${ConfigDir}/3proxy.cfg"` -} - - -SetInit() -{ - LoadGlobalResource "InitScript" > "/etc/init.d/3proxy" - chown root:root "/etc/init.d/3proxy" - chmod 755 "/etc/init.d/3proxy" - - PacketFiles=`echo -e "${PacketFiles}\n/etc/init.d/3proxy"` - update-rc.d 3proxy defaults -} - -Pack3proxyFiles() -{ - local CPU_Arc - CPU_Arc=`uname -m` - cd ../ - tar -czPpvf "${ProxyVersion}-${CPU_Arc}.tar.gz" $PacketFiles -} - -LoadResources() -{ - local StartRow - local EndRow - local LngLabel - local msgResourceErr="\aError! Script could not find resources!" - - if env | grep -q 'LANG=ru_RU.UTF-8' - then - LngLabel="RU" -#LngLabel="EN" - else - LngLabel="EN" - fi - - StartRow=`cat "${ScriptFullName}" | awk "/^#Resources_${LngLabel}/ { print NR; exit}"` - - if [ -z "${StartRow}" ] - then - echo -e "${msgResourceErr}" - exit 255 - fi - - EndRow=`cat "${ScriptFullName}" | awk "NR > ${StartRow} && /^#Resources_${LngLabel}_end/ { print NR; exit}"` - - if [ -z "${EndRow}" ] - then - echo -e "${msgResourceErr}" - exit 255 - fi - - ResourcesData=`cat "${ScriptFullName}" | awk -v StartRow="${StartRow}" -v EndRow="${EndRow}" 'NR > StartRow && NR < EndRow { print $0 }'` -} - - -# $1 - Name of Resource -GetResource() -{ - local StartRow - local EndRow - local msgResourceErr="\aError! Script could not find resource \"${1}\"!" - - StartRow=`echo "${ResourcesData}" | awk "/^#Resource=${1}/ { print NR; exit}"` - - if [ -z "${StartRow}" ] - then - echo -e "${msgResourceErr}" > /dev/stderr - exit 255 - fi - - EndRow=`echo "${ResourcesData}" | awk "NR > ${StartRow} && /^#endResource=${1}/ { print NR; exit}"` - - if [ -z "${EndRow}" ] - then - echo -e "${msgResourceErr}" > /dev/stderr - exit 255 - fi - - echo "${ResourcesData}" | awk -v StartRow="${StartRow}" -v EndRow="${EndRow}" 'NR > StartRow && NR < EndRow { print $0 }' -} - - -# $1 - Name of Resource -LoadGlobalResource() -{ - local StartRow - local EndRow - local LngLabel - local msgResourceErr="\aError! Script could not find resource \"${1}\"!" - - - StartRow=`cat "${ScriptFullName}" | awk "/^#Resource=${1}/ { print NR; exit}"` - - if [ -z "${StartRow}" ] - then - echo -e "${msgResourceErr}" > /dev/stderr - exit 255 - fi - - EndRow=`cat "${ScriptFullName}" | awk "NR > ${StartRow} && /^#endResource=${1}/ { print NR; exit}"` - - if [ -z "${EndRow}" ] - then - echo -e "${msgResourceErr}" > /dev/stderr - exit 255 - fi - - cat "${ScriptFullName}" | awk -v StartRow="${StartRow}" -v EndRow="${EndRow}" 'NR > StartRow && NR < EndRow { print $0 }' -} - - -CheckPacketInstall() -{ - if [ `dpkg -l ${1} 2>&1 | wc -l` -le 1 ] - then - echo 0 - return - fi - if [ `dpkg -l ${1} | grep -e ^un | wc -l` == 1 ] - then - echo 0 - return - fi - - echo 1 -} - -main -exit 0 - -#Resources_EN - -#Resource=msgSudoNotInstalled -\aThe script is running under the account a non-privileged user. -"Sudo" package is not installed in the system. -The script can not continue, as the execution of operations, -requiring rights "root" - is not possible! -Please run the script under the account "root", -or install and configure "sudo" package! -#endResource=msgSudoNotInstalled - -#Resource=msgUserNotMemberOfSudoGroup -\aThe script is running under account a non-privileged user. -The account of the current user is not included in the "sudo" group! -The script can not continue, as the execution of operations, -requiring rights "root" - is not possible! -Please run the script under the account "root", -or configure "sudo" package! -#endResource=msgUserNotMemberOfSudoGroup - -#Resource=msgSystemUseProxy -\aAttention! The operating system uses proxy-server. -For correctly work of package manager "apt" -in the file "/etc/sudoers" should be present line: -Defaults env_keep = "http_proxy https_proxy" -#endResource=msgSystemUseProxy - -#Resource=msgDoYouWishContinue -Do you wish to the script continued executing? (y/n): -#endResource=msgDoYouWishContinue - -#Resource=msgPleaseInsertYorN -\a\nPlease insert "y" or "n"! -#endResource=msgPleaseInsertYorN - -#Resource=msgInternetConnectionError -\aError downloading "https://github.com/z3APA3A/3proxy/releases/latest"! -Please check the settings of the Internet connection. -#endResource=msgInternetConnectionError - -#Resource=msgNewVersion -The new version of "3proxy" detected, do you want download it? -#endResource=msgNewVersion - -#Resource=msgBuildEssentialNotInstalled -\aPackage "build-essential" was not installed. -The installation can not be continued! -#endResource=msgBuildEssentialNotInstalled - -#Resources_EN_end - -#Resources_RU - -#Resource=msgSudoNotInstalled -\aСкрипт запущен под учётной записью обычного пользователя. -В системе не установлен пакет "sudo". -Скрипт не может продолжить работу, так как выполнение операций, -требующих прав "root" - не представляется возможным! -Пожалуйста, запустите скрипт под учётной записью "root", -либо установите и настройте пакет "sudo"! -#endResource=msgSudoNotInstalled - -#Resource=msgUserNotMemberOfSudoGroup -\aСкрипт запущен под учётной записью обычного пользователя. -Учётная запись текущего пользователя не включена в группу "sudo"! -Скрипт не может продолжить работу, так как выполнение операций, -требующих прав "root" - не представляется возможным! -Пожалуйста, запустите скрипт под учётной записью "root", -либо настройте пакет "sudo"! -#endResource=msgUserNotMemberOfSudoGroup - -#Resource=msgSystemUseProxy -\aВнимание! В системе используется прокси-сервер. -Чтобы менеджер пакетов "apt" работал корректно, -в файле "/etc/sudoers" должна присутствовать строка: -Defaults env_keep = "http_proxy https_proxy" -#endResource=msgSystemUseProxy - -#Resource=msgDoYouWishContinue -Хотите чтобы скрипт дальше продолжил работу? (y/n): -#endResource=msgDoYouWishContinue - -#Resource=msgPleaseInsertYorN -\a\nПожалуйста введите "y" или "n"! -#endResource=msgPleaseInsertYorN - -#Resource=msgInternetConnectionError -\aОшибка закачки "https://github.com/z3APA3A/3proxy/releases/latest"! -Пожалуйста, проверьте настройки интернет соединения. -#endResource=msgInternetConnectionError - -#Resource=msgNewVersion -Обнаружена новая версия "3proxy", скачать её (y/n)? -#endResource=msgNewVersion - -#Resource=msgBuildEssentialNotInstalled -\aПакет "build-essential" не был установлен. -Дальнейшая установка не может быть продолжена! -#endResource=msgBuildEssentialNotInstalled - -#Resources_RU_end - - -#Resource=ConfigFile -noconfig -# If in this file have line "noconfig", then 3proxy not to be runned! -# For usung this configuration file 3proxy you must to delete -# or comment out the line with "noconfig". - -daemon -# Parameter "daemon" - means run 3proxy as daemon - - -pidfile /tmp/3proxy.pid -# PID file location -# This parameter must have the same value as -# the variable "PidFile" in the script "/etc/init.d/3proxy" - - -# Configuration file location -config /etc/3proxy/3proxy.cfg - - -internal 127.0.0.1 -# Internal is address of interface proxy will listen for incoming requests -# 127.0.0.1 means only localhost will be able to use this proxy. This is -# address you should specify for clients as proxy IP. -# You MAY use 0.0.0.0 but you shouldn't, because it's a chance for you to -# have open proxy in your network in this case. - -external 192.168.0.1 -# External is address 3proxy uses for outgoing connections. 0.0.0.0 means any -# interface. Using 0.0.0.0 is not good because it allows to connect to 127.0.0.1 - - -# DNS IP addresses -nserver 8.8.8.8 -nserver 8.8.4.4 - - -# DNS cache size -nscache 65536 - -# Timeouts settings -timeouts 1 5 30 60 180 1800 15 60 - - -# log file location -log /var/log/3proxy/3proxy.log D - -# log file format -logformat "L%C - %U [%d-%o-%Y %H:%M:%S %z] ""%T"" %E %I %O %N/%R:%r" - -archiver gz /usr/bin/gzip %F -# If archiver specified log file will be compressed after closing. -# you should specify extension, path to archiver and command line, %A will be -# substituted with archive file name, %f - with original file name. -# Original file will not be removed, so archiver should care about it. - -rotate 30 -# We will keep last 30 log files - -proxy -p3128 -# Run http/https proxy on port 3128 - -auth none -# No authentication is requires - -setgid 65534 -setuid 65534 -# Run 3proxy under account "nobody" with group "nobody" -#endResource=ConfigFile - - -#Resource=InitScript -#!/bin/sh -# -# 3proxy daemon control script -# -### BEGIN INIT INFO -# Provides: 3proxy -# Required-Start: $network $remote_fs $syslog -# Required-Stop: $network $remote_fs $syslog -# Should-Start: $named -# Should-Stop: $named -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: 3proxy HTTP Proxy -### END INIT INFO - - -ScriptName="3proxy" -ScriptFullName="/etc/init.d/3proxy" - -ConfigFile="/etc/3proxy/3proxy.cfg" -LogDir="/var/log/3proxy" -PidFile="/tmp/3proxy.pid" - -ResourcesData="" - -main() -{ - LoadResources - - if [ ! -d "${LogDir}" ] - then - mkdir -p "${LogDir}"; - fi - - case "$1" in - start) Start ;; - stop) Stop ;; - restart) Stop; Start ;; - status) Status ;; - *) ShowHelp;; - esac -} - -Start() -{ - local msg - local ProxyPID - - if [ ! -f "${ConfigFile}" ] - then - msg=`GetResource "msgConfigFileNotFound"` - printf "${msg}" "${ConfigFile}" - return - fi - - if cat "${ConfigFile}" | grep -qe "^noconfig" - then - msg=`GetResource "msgNoconfigDetected"` - printf "${msg}" "${ConfigFile}" - return - fi - - ProxyPID=`Get3proxyPID` - - if [ ! -z "${ProxyPID}" ] - then - msg=`GetResource "msg3proxyAlreadyRunning"` - printf "${msg}" "${ProxyPID}" - return - fi - - 3proxy "${ConfigFile}" - sleep 1 - - ProxyPID=`Get3proxyPID` - - if [ ! -f "${PidFile}" ] - then - msg=`GetResource "msg3proxyStartProblems"` - printf "${msg}" - return - fi - - if [ `cat "${PidFile}"` != "${ProxyPID}" ] - then - msg=`GetResource "msg3proxyStartProblems"` - printf "${msg}" - return - fi - - msg=`GetResource "msg3proxyStartedSuccessfully"` - printf "${msg}" `date +%d-%m-%Y" "%H:%M:%S` "${ProxyPID}" - -} - -Stop() -{ - local msg - local ProxyPID - - ProxyPID=`Get3proxyPID` - - if [ -f "${PidFile}" ] - then - if [ `cat "${PidFile}"` = "${ProxyPID}" ] - then - kill -9 "${ProxyPID}" - rm -f "${PidFile}" - - msg=`GetResource "msg3proxyStoppedSuccessfully"` - printf "${msg}" `date +%d-%m-%Y" "%H:%M:%S` - - return - fi - fi - - if [ -z "${ProxyPID}" ] - then - msg=`GetResource "msg3proxyProxyNotDetected"` - printf "${msg}" - - return - fi - - pkill -o 3proxy - - msg=`GetResource "msg3proxyStoppedByKillall"` - printf "${msg}" `date +%d-%m-%Y" "%H:%M:%S` "${PidFile}" - -} - -Status() -{ - local msg - local ProxyPID - - if [ -f "${PidFile}" ] - then - msg=`GetResource "msgPidFileExists"` - printf "${msg}" "${PidFile}" `cat "${PidFile}"` - else - msg=`GetResource "msgPidFileNotExists"` - printf "${msg}" "${PidFile}" - fi - - ProxyPID=`Get3proxyPID` - - if [ ! -z "${ProxyPID}" ] - then - msg=`GetResource "msg3proxyProcessDetected"` - printf "${msg}" - ps -ef | awk '$8 ~ /^3proxy/ { print "User: " $1 "\tPID: " $2 }' - else - msg=`GetResource "msg3proxyProcessNotDetected"` - printf "${msg}" - fi -} - -ShowHelp() -{ - local msg - - msg=`GetResource "msg3proxyHelp"` - printf "${msg}" "${ScriptFullName}" "${ScriptName}" -} - -Get3proxyPID() -{ - ps -ef | awk '$8 ~ /^3proxy/ { print $2; exit }' -} - -LoadResources() -{ - local StartRow - local EndRow - local LngLabel - local msgResourceErr="\aError! Script could not find resources!" - - if env | grep -q 'LANG=ru_RU.UTF-8' - then - LngLabel="RU" - else - LngLabel="EN" - fi - - StartRow=`cat "${ScriptFullName}" | awk "/^#Resources_${LngLabel}/ { print NR; exit}"` - - if [ -z "${StartRow}" ] - then - echo -e "${msgResourceErr}" - exit 255 - fi - - EndRow=`cat "${ScriptFullName}" | awk "NR > ${StartRow} && /^#Resources_${LngLabel}_end/ { print NR; exit}"` - - if [ -z "${EndRow}" ] - then - echo -e "${msgResourceErr}" - exit 255 - fi - - ResourcesData=`cat "${ScriptFullName}" | awk -v StartRow="${StartRow}" -v EndRow="${EndRow}" 'NR > StartRow && NR < EndRow { print $0 }'` -} - -# $1 - Name of Resource -GetResource() -{ - local StartRow - local EndRow - local msgResourceErr="\aError! Script could not find resource \"${1}\"!" - - StartRow=`echo "${ResourcesData}" | awk "/^#Resource=${1}/ { print NR; exit}"` - - if [ -z "${StartRow}" ] - then - echo -e "${msgResourceErr}" > /dev/stderr - exit 255 - fi - - EndRow=`echo "${ResourcesData}" | awk "NR > ${StartRow} && /^#endResource=${1}/ { print NR; exit}"` - - if [ -z "${EndRow}" ] - then - echo -e "${msgResourceErr}" > /dev/stderr - exit 255 - fi - - echo "${ResourcesData}" | awk -v StartRow="${StartRow}" -v EndRow="${EndRow}" 'NR > StartRow && NR < EndRow { print $0 }' -} - - -main $@ -exit 0; - -#Resources_EN - -#Resource=msg3proxyHelp -Usage: -\t%s {start|stop|restart} -or -\tservice %s {start|stop|restart|status}\\n -#endResource=msg3proxyHelp - -#Resource=msgConfigFileNotFound -\a3proxy configuration file - "%s" is not found!\\n -#endResource=msgConfigFileNotFound - -#Resource=msgNoconfigDetected -Parameter "noconfig" found in 3proxy configuration file - -"% s" ! -To run 3proxy this parameter should be disabled.\\n -#endResource=msgNoconfigDetected - -#Resource=msg3proxyAlreadyRunning -\a3proxy already running PID: %s\\n -#endResource=msg3proxyAlreadyRunning - -#Resource=msg3proxyStartProblems -With the start of 3proxy, something is wrong! -Use: service 3proxy status\\n -#endResource=msg3proxyStartProblems - -#Resource=msg3proxyStartedSuccessfully -[ %s %s ] 3proxy started successfully! PID: %s\\n -#endResource=msg3proxyStartedSuccessfully - -#Resource=msg3proxyStoppedSuccessfully -[ %s %s ] 3proxy stopped successfully!\\n -#endResource=msg3proxyStoppedSuccessfully - -#Resource=msg3proxyProxyNotDetected -Process "3proxy" is not detected!\\n -#endResource=msg3proxyProxyNotDetected - -#Resource=msg3proxyStoppedByKillall -[ %s %s ] Command "pkill -o 3proxy" was executed, -because process number was not stored in "%s", -but in fact 3proxy was runned!\\n -#endResource=msg3proxyStoppedByKillall - -#Resource=msgPidFileExists -File "%s" exists. It contains the PID: %s\\n -#endResource=msgPidFileExists - -#Resource=msgPidFileNotExists -File "%s" not found, that is, PID 3proxy was not stored!\\n -#endResource=msgPidFileNotExists - -#Resource=msg3proxyProcessDetected -Process 3proxy detected:\\n -#endResource=msg3proxyProcessDetected - -#Resource=msg3proxyProcessNotDetected -Processes of 3proxy is not found!\\n -#endResource=msg3proxyProcessNotDetected - -#Resources_EN_end - - -#Resources_RU - -#Resource=msg3proxyHelp -Используйте: -\t%s {start|stop|restart} -или -\tservice %s {start|stop|restart|status}\\n -#endResource=msg3proxyHelp - -#Resource=msgConfigFileNotFound -\aФайл конфигурации 3proxy - "%s", не найден!\\n -#endResource=msgConfigFileNotFound - -#Resource=msgNoconfigDetected -\aОбнаружен параметр "noconfig" в файле конфигурации 3proxy - -"%s" ! -Для запуска 3proxy этот параметр нужно отключить.\\n -#endResource=msgNoconfigDetected - -#Resource=msg3proxyAlreadyRunning -\a3proxy уже запущен PID: %s\\n -#endResource=msg3proxyAlreadyRunning - -#Resource=msg3proxyStartProblems -\aСо стартом 3proxy, что-то не так! -Используйте: service 3proxy status\\n -#endResource=msg3proxyStartProblems - -#Resource=msg3proxyStartedSuccessfully -[ %s %s ] 3proxy успешно стартовал! PID: %s\\n -#endResource=msg3proxyStartedSuccessfully - -#Resource=msg3proxyStoppedSuccessfully -[ %s %s ] 3proxy успешно остановлен!\\n -#endResource=msg3proxyStoppedSuccessfully - -#Resource=msg3proxyProxyNotDetected -Процесс "3proxy" не обнаружен!\\n -#endResource=msg3proxyProxyNotDetected - -#Resource=msg3proxyStoppedByKillall -[ %s %s ] Выполнена команда "pkill -o 3proxy", -т.к. номер процесса не записан в "%s", -но по факту 3proxy рабатал!\\n -#endResource=msg3proxyStoppedByKillall - -#Resource=msgPidFileExists -Файл "%s" есть. Он содержит PID: %s\\n -#endResource=msgPidFileExists - -#Resource=msgPidFileNotExists -Файл "%s" не найден, т.е. PID 3proxy не был сохранён!\\n -#endResource=msgPidFileNotExists - -#Resource=msg3proxyProcessDetected -Обнаружен процесс 3proxy:\\n -#endResource=msg3proxyProcessDetected - -#Resource=msg3proxyProcessNotDetected -Процессов 3proxy не обнаружено!\\n -#endResource=msg3proxyProcessNotDetected - -#Resources_RU_end -#endResource=InitScript diff --git a/scripts/3proxy.service b/scripts/3proxy.service new file mode 100644 index 0000000..fd471ea --- /dev/null +++ b/scripts/3proxy.service @@ -0,0 +1,16 @@ +[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 + +[Install] +WantedBy=multi-user.target +Alias=3proxy.service \ No newline at end of file diff --git a/scripts/install-unix.sh b/scripts/install-unix.sh deleted file mode 100644 index a54c91e..0000000 --- a/scripts/install-unix.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -cd .. -cp Makefile.unix Makefile -make -if [ ! -d /usr/local/etc/3proxy/bin ]; then mkdir -p /usr/local/etc/3proxy/bin/; fi -install bin/3proxy /usr/local/bin/3proxy -install bin/mycrypt /usr/local/bin/mycrypt -install scripts/rc.d/proxy.sh /usr/local/etc/rc.d/proxy.sh -install scripts/add3proxyuser.sh /usr/local/etc/3proxy/bin/ -if [ -s /usr/local/etc/3proxy/3proxy.cfg ]; then - echo /usr/local/etc/3proxy/3proxy.cfg already exists -else - install scripts/3proxy.cfg /usr/local/etc/3proxy/ - if [ ! -d /var/log/3proxy/ ]; then - mkdir /var/log/3proxy/ - fi - touch /usr/local/etc/3proxy/passwd - touch /usr/local/etc/3proxy/counters - touch /usr/local/etc/3proxy/bandlimiters - echo Run /usr/local/etc/3proxy/bin/add3proxyuser.sh to add \'admin\' user -fi - diff --git a/scripts/postinst b/scripts/postinst new file mode 100644 index 0000000..9bef343 --- /dev/null +++ b/scripts/postinst @@ -0,0 +1,46 @@ +if [ -x /usr/sbin/useradd ]; then \ + /usr/bin/getent passwd proxy >/dev/null || (/usr/sbin/useradd -UMr -s /bin/false -c 3proxy proxy || true); \ +fi +if [ ! -f /usr/local/3proxy/conf/passwd ]; then \ + touch /usr/local/3proxy/conf/passwd;\ +fi +chown -R proxy:proxy /usr/local/3proxy +chmod 550 /usr/local/3proxy/ +chmod 550 /usr/local/3proxy/conf/ +chmod 440 /usr/local/3proxy/conf/* +if /bin/systemctl >/dev/null 2>&1; then \ + /usr/sbin/update-rc.d 3proxy disable || true; \ + /usr/sbin/chkconfig 3proxy off || true; \ + /bin/systemctl enable 3proxy.service; \ +elif [ -x /usr/sbin/update-rc.d ]; then \ + /usr/sbin/update-rc.d 3proxy defaults; \ + /usr/sbin/update-rc.d 3proxy enable; \ +elif [ -x /usr/sbin/chkconfig ]; then \ + /usr/sbin/chkconfig 3proxy on; \ +fi + +echo "" +echo 3proxy installed. +if /bin/systemctl >/dev/null 2>&1; then \ + /bin/systemctl stop 3proxy.service || /usr/sbin/service 3proxy stop || true; \ + /bin/systemctl start 3proxy.service || /usr/sbin/service 3proxy start || true; \ + echo use ;\ + echo " "systemctl start 3proxy.service ;\ + echo to start proxy ;\ + echo " "systemctl stop 3proxy.service ;\ + echo to stop proxy ;\ +elif [ -x /usr/sbin/service ]; then \ + /usr/sbin/service 3proxy stop || true;\ + /usr/sbin/service 3proxy start || true;\ + echo " "service 3proxy start ;\ + echo to start proxy ;\ + echo " "service 3proxy stop ;\ + echo to stop proxy ;\ +fi +echo " "/usr/local/3proxy/conf/add3proxyuser.sh +echo to add users +echo "" +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 Configure preferred DNS in /usr/local/3proxy/conf/3proxy.cfg. +echo run \'/usr/local/3proxy/conf/add3proxyuser.sh admin password\' to configure \'admin\' user