mirror of
https://github.com/3proxy/3proxy.git
synced 2026-08-26 09:55:48 +08:00
rpmbuild ran directly on the Ubuntu runner, so the packages carried Ubuntu's
ABI: glibc 2.38, libssl.so.3 and libpcre2-8. No RPM distribution can satisfy
that - RHEL 9 has glibc 2.34, RHEL 8 has 2.28 and OpenSSL 1.1 - so the rpms
were installable nowhere.
Build them in AlmaLinux 8, 9 and 10 containers instead, covering supported
AlmaLinux and CentOS Stream releases. Release: 1%{?dist} already in the spec
now expands, so the packages are named el8, el9 and el10 and can coexist.
Two spec changes are needed for a build outside Ubuntu:
debug_package is disabled. Enterprise Linux enables debuginfo extraction by
default while Ubuntu's rpm does not; the build produces no debug sources, so
rpmbuild aborted on an empty debugsourcefiles.list.
/bin/3proxy is excluded from automatic requires. The installed configuration
file is executable and begins with #!/bin/3proxy, so rpm generates a
dependency on it. rpm 4.16 and later canonicalise that to /usr/bin/3proxy
while %files declares /bin/3proxy, leaving a dependency that can never be
satisfied and making the package uninstallable on el9 and el10.
Enterprise Linux has no 32-bit ARM, so the armhf workflow now builds only the
deb package.
120 lines
3.6 KiB
Ruby
120 lines
3.6 KiB
Ruby
Name: 3proxy
|
|
Version: 0.9.9
|
|
Release: 1%{?dist}
|
|
Summary: 3proxy tiny proxy server
|
|
License: GPL/LGPL/Apache/BSD
|
|
URL: https://3proxy.org/
|
|
Vendor: 3proxy.org 3proxy@3proxy.org
|
|
Prefix: %{_prefix}
|
|
Packager: z3APA3A
|
|
Source: https://github.com/%{packager}/%{name}/archive/%{version}.tar.gz
|
|
|
|
%global debug_package %{nil}
|
|
%global __requires_exclude ^/(usr/)?bin/3proxy$
|
|
|
|
%description
|
|
3proxy is lightweight yet powerful proxy server
|
|
|
|
%prep
|
|
%setup -q
|
|
ln -s Makefile.Linux Makefile
|
|
|
|
%build
|
|
%if "%{?PAMLIB}" != ""
|
|
make PAMLIB=%{?PAMLIB}
|
|
%else
|
|
make
|
|
%endif
|
|
|
|
%install
|
|
make DESTDIR=%buildroot install
|
|
|
|
%clean
|
|
make clean
|
|
|
|
|
|
%files
|
|
/bin/3proxy
|
|
/bin/3proxy_crypt
|
|
/bin/3proxy_ftppr
|
|
/bin/3proxy_imapp
|
|
/bin/3proxy_pop3p
|
|
/bin/3proxy_proxy
|
|
/bin/3proxy_smtpp
|
|
/bin/3proxy_socks
|
|
/bin/3proxy_tcppm
|
|
/bin/3proxy_tlspr
|
|
/bin/3proxy_udppm
|
|
/bin/add3proxyuser
|
|
%config(noreplace) /etc/3proxy/3proxy.cfg
|
|
/etc/3proxy/conf
|
|
/etc/init.d/3proxy
|
|
/usr/lib/systemd/system/3proxy.service
|
|
%config(noreplace) /usr/local/3proxy/conf/3proxy.cfg
|
|
%config(noreplace) /usr/local/3proxy/conf/bandlimiters
|
|
%config(noreplace) /usr/local/3proxy/conf/counters
|
|
/usr/local/3proxy/libexec/*.ld.so
|
|
/usr/share/man/man5/3proxy.cfg.5*
|
|
/usr/share/man/man8/*
|
|
/var/log/3proxy
|
|
|
|
%doc doc/*
|
|
|
|
%pre
|
|
if [ -x /usr/sbin/useradd ]; then \
|
|
/usr/bin/getent group proxy >/dev/null || (/usr/sbin/groupadd -f -r proxy || true); \
|
|
/usr/bin/getent passwd proxy >/dev/null || (/usr/sbin/useradd -Mr -s /bin/false -g proxy -c 3proxy proxy || true); \
|
|
fi
|
|
|
|
%post
|
|
if [ ! -f /usr/local/3proxy/conf/passwd ]; then \
|
|
touch /usr/local/3proxy/conf/passwd;\
|
|
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; \
|
|
[ -f /etc/init.d/3proxy ] && sed -i -e 's|@CMAKE_INSTALL_FULL_BINDIR@|/bin|g' -e 's|@CMAKE_INSTALL_FULL_SYSCONFDIR@|/etc|g' -e 's|USER=proxy|USER=root|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' -e 's|User=proxy|User=root|g' /usr/lib/systemd/system/3proxy.service; \
|
|
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 \
|
|
/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 ; \
|
|
/bin/systemctl start 3proxy.service ; \
|
|
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 " "/bin/add3proxyuser
|
|
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 \'/bin/add3proxyuser admin password\' to configure \'admin\' user
|