From 71d676eb585a4c836306b33d141b40bd5bb1b6f2 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Thu, 9 Apr 2026 17:53:27 +0300 Subject: [PATCH] Update workflows and builds --- .github/workflows/build-rpm-arm64.yml | 66 +++++++++++++------------- .github/workflows/build-rpm-armhf.yml | 48 +++++++++++++++---- .github/workflows/build-rpm-x86-64.yml | 39 +++++++++++---- .github/workflows/build-watcom.yml | 11 ++--- .github/workflows/build-win32.yml | 13 ++--- .github/workflows/build-win64.yml | 13 +++-- .github/workflows/build-winarm64.yml | 13 ++--- .github/workflows/c-cpp-Linux.yml | 2 +- .github/workflows/c-cpp-MacOS.yml | 2 +- .github/workflows/c-cpp-Windows.yml | 2 +- .github/workflows/c-cpp-cmake.yml | 2 +- CMakeLists.txt | 10 ++-- Makefile.msvc | 12 ++--- Makefile.watcom | 8 +--- cmake/plugins.cmake | 24 ---------- debian/conffiles | 4 -- debian/postinst | 14 ------ debian/rules | 6 --- doc/html/howtoe.html | 10 ++-- doc/html/howtor.html | 9 ++-- 20 files changed, 141 insertions(+), 167 deletions(-) diff --git a/.github/workflows/build-rpm-arm64.yml b/.github/workflows/build-rpm-arm64.yml index 2487dcf..caf34c5 100644 --- a/.github/workflows/build-rpm-arm64.yml +++ b/.github/workflows/build-rpm-arm64.yml @@ -1,8 +1,8 @@ -name: RPM build arm +name: RPM/DEB build aarch64 on: push: - branches: [ "master" ] + branches: [ "master", "test-ci" ] paths: [ 'RELEASE', '.github/workflows/build-rpm-arm64.yml' ] jobs: @@ -11,10 +11,10 @@ jobs: strategy: matrix: target: - - ubuntu-latest + - ubuntu-24.04-arm runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: env run: | pwd @@ -23,49 +23,49 @@ jobs: echo "MAJOR=$(cat RELEASE | cut -d "-" -f 1)" >> $GITHUB_ENV echo "SUBMAJOR=$(cat RELEASE | cut -d "-" -f 2)" >> $GITHUB_ENV echo "MINOR=$(cat RELEASE | cut -d "-" -f 3)" >> $GITHUB_ENV + - name: echo env + run: echo "release $RELEASE version $VERSION major $MAJOR submajor $SUBMAJOR minor $MINOR" - name: Linux libraries run: | sudo apt update - sudo dpkg --add-architecture arm64 - echo "Types: deb" > ~/ubuntu.sources - echo "URIs: http://archive.ubuntu.com/ubuntu/" >> ~/ubuntu.sources - echo "Suites: noble noble-updates noble-backports" >> ~/ubuntu.sources - echo "Components: main restricted universe multiverse" >> ~/ubuntu.sources - echo "Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" >> ~/ubuntu.sources - echo "Architectures: amd64" >> ~/ubuntu.sources - echo "" >> ~/ubuntu.sources - echo "Types: deb" >> ~/ubuntu.sources - echo "URIs: http://security.ubuntu.com/ubuntu/" >> ~/ubuntu.sources - echo "Suites: noble-security" >> ~/ubuntu.sources - echo "Components: main restricted universe multiverse" >> ~/ubuntu.sources - echo "Architectures: amd64" >> ~/ubuntu.sources - echo "Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" >> ~/ubuntu.sources - echo "" >> ~/ubuntu.sources - echo "Types: deb" >>~/ubuntu.sources - echo "URIs: http://ports.ubuntu.com/ubuntu-ports/" >>~/ubuntu.sources - echo "Suites: noble noble-updates" >>~/ubuntu.sources - echo "Components: main restricted universe multiverse" >>~/ubuntu.sources - echo "Architectures: arm64" >>~/ubuntu.sources - echo "Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" >>~/ubuntu.sources - sudo cp ~/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources - sudo apt update - sudo apt install libssl-dev:arm64 libpam0g:arm64 libpam0g-dev:arm64 libpcre2-dev:arm64 rpm crossbuild-essential-arm64 - - name: make rpmbuild dir - run: mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} + sudo apt install libssl-dev libpam-dev libpcre2-dev rpm build-essential debhelper - name: configure rpm env run: | + mkdir ~/debian + mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} tar -czf ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz --transform "s,^,3proxy-$RELEASE/," . ln -s ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz ~/rpmbuild/SOURCES/$RELEASE.tar.gz cp scripts/rh/3proxy.spec ~/rpmbuild/SPECS/3proxy-$RELEASE.spec + cp ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz ~/debian/3proxy_$RELEASE.orig.tar.gz - name: rpmbuild run: | ret=`pwd` cd ~/rpmbuild/SPECS - rpmbuild -ba --define "PAMLIB pam0g" --define "_arch aarch64" --define "cross yes" --target=aarch64-linux-gnueabi 3proxy-$RELEASE.spec + rpmbuild -ba 3proxy-$RELEASE.spec cd $ret mv ~/rpmbuild/RPMS/aarch64/3proxy-$RELEASE-1.aarch64.rpm 3proxy-$RELEASE.arm64.rpm - - name: Get artifact - uses: actions/upload-artifact@v4 + - name: Get artifact arp + uses: actions/upload-artifact@v6 with: name: "3proxy-${{ env.RELEASE }}-arm64.rpm" path: "*.rpm" + - name: debbuild + run: | + ret=`pwd` + cd ~/debian/ + tar xzf 3proxy_$RELEASE.orig.tar.gz + cd 3proxy-$RELEASE + echo "3proxy ($RELEASE-$VERSION) buster; urgency=medium" >debian/changelog + echo " " >>debian/changelog + echo " *3proxy $RELEASE build" >>debian/changelog + echo " " >>debian/changelog + echo " -- z3APA3A <3apa3a@3proxy.org> "`date "+%a, %d %b %Y %H:%M:%S %z"` >>debian/changelog + echo "">>debian/changelog + dpkg-buildpackage + cd $ret + cp ~/debian/3proxy_$RELEASE-"$VERSION"_arm64.deb ./3proxy-$RELEASE.arm64.deb + - name: Get artifact deb + uses: actions/upload-artifact@v6 + with: + name: "3proxy-${{ env.RELEASE }}-arm64.deb" + path: "*.deb" diff --git a/.github/workflows/build-rpm-armhf.yml b/.github/workflows/build-rpm-armhf.yml index 86b6198..7c94445 100644 --- a/.github/workflows/build-rpm-armhf.yml +++ b/.github/workflows/build-rpm-armhf.yml @@ -1,8 +1,8 @@ -name: RPM build arm +name: RPM/DEB build armhf on: push: - branches: [ "master" ] + branches: [ "master", "test-ci" ] paths: [ 'RELEASE', '.github/workflows/build-rpm-armhf.yml' ] jobs: @@ -14,7 +14,7 @@ jobs: - ubuntu-latest runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: env run: | pwd @@ -49,24 +49,56 @@ jobs: echo "Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" >>~/ubuntu.sources sudo cp ~/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources sudo apt update - sudo apt install libssl-dev:armhf libpam0g:armhf libpam0g-dev:armhf libpcre2-dev:armhf rpm crossbuild-essential-armhf - - name: make rpmbuild dir - run: mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} + sudo apt install libssl3t64:armhf openssl:armhf libssl-dev:armhf libpam0g:armhf libpam0g-dev:armhf libpcre2-dev:armhf rpm crossbuild-essential-armhf build-essential debhelper - name: configure rpm env run: | + mkdir ~/debian + mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} tar -czf ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz --transform "s,^,3proxy-$RELEASE/," . ln -s ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz ~/rpmbuild/SOURCES/$RELEASE.tar.gz cp scripts/rh/3proxy.spec ~/rpmbuild/SPECS/3proxy-$RELEASE.spec + cp ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz ~/debian/3proxy_$RELEASE.orig.tar.gz - name: rpmbuild run: | ret=`pwd` cd ~/rpmbuild/SPECS + PATH=/usr/arm-linux-gnueabihf/bin:$PATH + export PATH=$PATH + CC=arm-linux-gnueabihf-gcc + export CC=$CC + export RPATH=/usr/arm-linux-gnueabihf/lib:$RPATH + export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib:$LD_LIBRARY_PATH rpmbuild -ba --define "PAMLIB pam0g" --define "_arch arm" --define "cross yes" --target=arm-linux-gnueabi 3proxy-$RELEASE.spec cd $ret mv ~/rpmbuild/RPMS/arm/3proxy-$RELEASE-1.arm.rpm 3proxy-$RELEASE.arm.rpm - name: Get artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: "3proxy-${{ env.RELEASE }}-arm.rpm" path: "*.rpm" - + - name: debbuild + run: | + ret=`pwd` + cd ~/debian/ + tar xzf 3proxy_$RELEASE.orig.tar.gz + cd 3proxy-$RELEASE + echo "3proxy ($RELEASE-$VERSION) buster; urgency=medium" >debian/changelog + echo " " >>debian/changelog + echo " *3proxy $RELEASE build" >>debian/changelog + echo " " >>debian/changelog + echo " -- z3APA3A <3apa3a@3proxy.org> "`date "+%a, %d %b %Y %H:%M:%S %z"` >>debian/changelog + echo "">>debian/changelog + PATH=/usr/arm-linux-gnueabihf/bin:$PATH + export PATH=$PATH + CC=arm-linux-gnueabihf-gcc + export CC=$CC + export RPATH=/usr/arm-linux-gnueabihf/lib:$RPATH + export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib:$LD_LIBRARY_PATH + dpkg-buildpackage + cd $ret + cp ~/debian/3proxy_$RELEASE-"$VERSION"_armhf.deb ./3proxy-$RELEASE.arm.deb + - name: Get artifact deb + uses: actions/upload-artifact@v6 + with: + name: "3proxy-${{ env.RELEASE }}-arm.deb" + path: "*.deb" diff --git a/.github/workflows/build-rpm-x86-64.yml b/.github/workflows/build-rpm-x86-64.yml index ce3570c..315a172 100644 --- a/.github/workflows/build-rpm-x86-64.yml +++ b/.github/workflows/build-rpm-x86-64.yml @@ -1,8 +1,8 @@ -name: RPM build x86-64 +name: RPM/DEB build x86-64 on: push: - branches: [ "master" ] + branches: [ "master", "test-ci" ] paths: [ 'RELEASE', '.github/workflows/build-rpm-x86-64.yml' ] jobs: @@ -14,7 +14,7 @@ jobs: - ubuntu-latest runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: env run: | pwd @@ -28,14 +28,15 @@ jobs: - name: Linux libraries run: | sudo apt update - sudo apt install libssl-dev libpam-dev libpcre2-dev rpm - - name: make rpmbuild dir - run: mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} - - name: configure rpm env + sudo apt install libssl-dev libpam-dev libpcre2-dev rpm build-essential debhelper + - name: configure rpm/deb env run: | + mkdir ~/debian + mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} tar -czf ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz --transform "s,^,3proxy-$RELEASE/," . ln -s ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz ~/rpmbuild/SOURCES/$RELEASE.tar.gz cp scripts/rh/3proxy.spec ~/rpmbuild/SPECS/3proxy-$RELEASE.spec + cp ~/rpmbuild/SOURCES/3proxy-$RELEASE.tar.gz ~/debian/3proxy_$RELEASE.orig.tar.gz - name: rpmbuild run: | ret=`pwd` @@ -43,9 +44,29 @@ jobs: rpmbuild -ba 3proxy-$RELEASE.spec cd $ret mv ~/rpmbuild/RPMS/x86_64/3proxy-$RELEASE-1.x86_64.rpm 3proxy-$RELEASE.x86_64.rpm - - name: Get artifact - uses: actions/upload-artifact@v4 + - name: Get artifact rpm + uses: actions/upload-artifact@v6 with: name: "3proxy-${{ env.RELEASE }}-x86_64.rpm" path: "*.rpm" + - name: debbuild + run: | + ret=`pwd` + cd ~/debian/ + tar xzf 3proxy_$RELEASE.orig.tar.gz + cd 3proxy-$RELEASE + echo "3proxy ($RELEASE-$VERSION) buster; urgency=medium" >debian/changelog + echo " " >>debian/changelog + echo " *3proxy $RELEASE build" >>debian/changelog + echo " " >>debian/changelog + echo " -- z3APA3A <3apa3a@3proxy.org> "`date "+%a, %d %b %Y %H:%M:%S %z"` >>debian/changelog + echo "">>debian/changelog + dpkg-buildpackage + cd $ret + cp ~/debian/3proxy_$RELEASE-"$VERSION"_amd64.deb ./3proxy-$RELEASE.x86_64.deb + - name: Get artifact deb + uses: actions/upload-artifact@v6 + with: + name: "3proxy-${{ env.RELEASE }}-x86_64.deb" + path: "*.deb" diff --git a/.github/workflows/build-watcom.yml b/.github/workflows/build-watcom.yml index 9b294a4..5afb6cd 100644 --- a/.github/workflows/build-watcom.yml +++ b/.github/workflows/build-watcom.yml @@ -14,7 +14,7 @@ jobs: - windows-2022 runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # - name: configure # run: ./configure - name: Setup Open Watcom @@ -25,14 +25,13 @@ jobs: echo "now: $NOW" $RELEASE = Get-Content -Path "RELEASE" -Raw echo "release: $RELEASE" - echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=/D `"VERSION=\`"3proxy-$RELEASE\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=/D `"BUILDDATE=\`"$NOW\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: make Watcom shell: cmd 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 - name: make dist dir shell: cmd @@ -65,7 +64,7 @@ jobs: copy README dist\3proxy\ copy rus.3ps dist\3proxy\ - name: Get artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: "3proxy-${{ env.RELEASE }}-lite" path: dist/ diff --git a/.github/workflows/build-win32.yml b/.github/workflows/build-win32.yml index 6db83ae..01dd53f 100644 --- a/.github/workflows/build-win32.yml +++ b/.github/workflows/build-win32.yml @@ -14,19 +14,16 @@ jobs: - windows-2022 runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # - name: configure # run: ./configure - name: set date run: | $NOW = Get-Date -Format "yyMMddHHmmss" - echo "now: $NOW" $RELEASE = Get-Content -Path "RELEASE" -Raw - echo "release: $RELEASE" - echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=/D `"VERSION=\`"3proxy-$RELEASE\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=/D `"BUILDDATE=\`"$NOW\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: install packages run: vcpkg install pcre2:x86-windows-static openssl:x86-windows-static - name: Add msbuild to PATH @@ -40,7 +37,7 @@ jobs: cd "D:/a/3proxy/3proxy" set "LIB=%LIB%;c:/vcpkg/installed/x86-windows-static/lib" 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 - name: make dist dir shell: cmd @@ -73,7 +70,7 @@ jobs: copy README dist\3proxy\ copy rus.3ps dist\3proxy\ - name: Get artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: "3proxy-${{ env.RELEASE }}" path: dist/ diff --git a/.github/workflows/build-win64.yml b/.github/workflows/build-win64.yml index f49d1af..9acc15f 100644 --- a/.github/workflows/build-win64.yml +++ b/.github/workflows/build-win64.yml @@ -14,19 +14,17 @@ jobs: - windows-2022 runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # - name: configure # run: ./configure - name: set date run: | $NOW = Get-Date -Format "yyMMddHHmmss" - echo "now: $NOW" $RELEASE = Get-Content -Path "RELEASE" -Raw - echo "release: $RELEASE" echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=/D `"VERSION=\`"3proxy-$RELEASE\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=/D `"BUILDDATE=\`"$NOW\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: install packages run: vcpkg install pcre2:x64-windows-static openssl:x64-windows-static - name: Add msbuild to PATH @@ -40,7 +38,8 @@ jobs: cd "D:/a/3proxy/3proxy" set "LIB=%LIB%;c:/vcpkg/installed/x64-windows-static/lib" set "INCLUDE=%INCLUDE%;c:/vcpkg/installed/x64-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 + echo %NOW% / %RELEASE% / %BUILDDATE% / %VERSION% nmake /F Makefile.msvc - name: make dist dir shell: cmd @@ -73,7 +72,7 @@ jobs: copy README dist\3proxy\ copy rus.3ps dist\3proxy\ - name: Get artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: "3proxy-${{ env.RELEASE }}-x64" path: dist/ diff --git a/.github/workflows/build-winarm64.yml b/.github/workflows/build-winarm64.yml index 2a27f28..d324a24 100644 --- a/.github/workflows/build-winarm64.yml +++ b/.github/workflows/build-winarm64.yml @@ -14,19 +14,16 @@ jobs: - windows-2022 runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # - name: configure # run: ./configure - name: set date run: | $NOW = Get-Date -Format "yyMMddHHmmss" - echo "now: $NOW" $RELEASE = Get-Content -Path "RELEASE" -Raw - echo "release: $RELEASE" - echo "NOW=$NOW" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append echo "RELEASE=$RELEASE" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "VERSION=VERSION=`"$RELEASE`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "BUILDDATE=BUILDDATE=`"$NOW`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "VERSION=/D `"VERSION=\`"3proxy-$RELEASE\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + echo "BUILDDATE=/D `"BUILDDATE=\`"$NOW\`"`"" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - name: install packages run: vcpkg install pcre2:arm64-windows-static openssl:arm64-windows-static - name: Add msbuild to PATH @@ -40,7 +37,7 @@ jobs: cd "D:/a/3proxy/3proxy" set "LIB=%LIB%;c:/vcpkg/installed/arm64-windows-static/lib" 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 - name: make dist dir shell: cmd @@ -73,7 +70,7 @@ jobs: copy README dist\3proxy\ copy rus.3ps dist\3proxy\ - name: Get artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: "3proxy-${{ env.RELEASE }}-arm64" path: dist/ diff --git a/.github/workflows/c-cpp-Linux.yml b/.github/workflows/c-cpp-Linux.yml index 868d6ba..4d5c1f0 100644 --- a/.github/workflows/c-cpp-Linux.yml +++ b/.github/workflows/c-cpp-Linux.yml @@ -18,7 +18,7 @@ jobs: - ubuntu-24.04-arm runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # - name: configure # run: ./configure - name: Linux libraries diff --git a/.github/workflows/c-cpp-MacOS.yml b/.github/workflows/c-cpp-MacOS.yml index 4741e41..06ee52a 100644 --- a/.github/workflows/c-cpp-MacOS.yml +++ b/.github/workflows/c-cpp-MacOS.yml @@ -17,7 +17,7 @@ jobs: - macos-15 runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # - name: configure # run: ./configure - name: Mac libraries diff --git a/.github/workflows/c-cpp-Windows.yml b/.github/workflows/c-cpp-Windows.yml index 2c1c6cb..242b7c4 100644 --- a/.github/workflows/c-cpp-Windows.yml +++ b/.github/workflows/c-cpp-Windows.yml @@ -17,7 +17,7 @@ jobs: - windows-2022 runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: install Windows libraries run: vcpkg install pcre2:x64-windows && c:\msys64\usr\bin\pacman.exe -S --noconfirm mingw-w64-x86_64-pcre2 mingw-w64-x86_64-openssl - name: make Windows diff --git a/.github/workflows/c-cpp-cmake.yml b/.github/workflows/c-cpp-cmake.yml index 820ddf5..8f736d0 100644 --- a/.github/workflows/c-cpp-cmake.yml +++ b/.github/workflows/c-cpp-cmake.yml @@ -20,7 +20,7 @@ jobs: - windows-2022 runs-on: ${{ matrix.target }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # - name: configure # run: ./configure - name: Linux libraries diff --git a/CMakeLists.txt b/CMakeLists.txt index 059fae9..001a8cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -485,19 +485,15 @@ install(TARGETS 3proxy mycrypt proxy socks pop3p smtpp ftppr tcppm udppm tlspr ) # Install plugins +file(GLOB PLUGINFILES "${PLUGIN_OUTPUT_DIR}/*${PLUGIN_SUFFIX}") if(WIN32) install(FILES - ${PLUGIN_OUTPUT_DIR}/utf8tocp1251${PLUGIN_SUFFIX} - ${PLUGIN_OUTPUT_DIR}/WindowsAuthentication${PLUGIN_SUFFIX} - ${PLUGIN_OUTPUT_DIR}/TrafficPlugin${PLUGIN_SUFFIX} - ${PLUGIN_OUTPUT_DIR}/StringsPlugin${PLUGIN_SUFFIX} + ${PLUGINFILES} DESTINATION ${CMAKE_INSTALL_BINDIR} ) else() install(FILES - ${PLUGIN_OUTPUT_DIR}/StringsPlugin${PLUGIN_SUFFIX} - ${PLUGIN_OUTPUT_DIR}/TrafficPlugin${PLUGIN_SUFFIX} - ${PLUGIN_OUTPUT_DIR}/TransparentPlugin${PLUGIN_SUFFIX} + ${PLUGINFILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/3proxy ) endif() diff --git a/Makefile.msvc b/Makefile.msvc index 5921393..9651bb5 100644 --- a/Makefile.msvc +++ b/Makefile.msvc @@ -6,13 +6,9 @@ BUILDDIR = ../bin/ CC = cl -CFLAGS = /nologo /MT /W3 /Ox /GS /EHs- /GA /GF /D "MSVC" /D "WITH_WSAPOLL" /D "NDEBUG" /D "WIN32" /D "WITH_SSL" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRId64=\"I64d\"" /D "PRIu64=\"I64u\"" /D "SCNu64=\"I64u\"" /D "PRIx64=\"I64x\"" /Fp"proxy.pch" /FD /c -!IFDEF RELEASE -VERSION=/D VERSION=\"3proxy-$(RELEASE)\" -!ENDIF -!IFDEF NOW -BUILDDATE=/D BUILDDATE=\"$(NOW)\" -!ENDIF +VERSION = $(VERSION) +BUILDDATE = $(BUILDDATE) +CFLAGS = /nologo /MT /W3 /Ox /GS /EHs- /GA /GF /D "MSVC" /D "WITH_WSAPOLL" /D "NDEBUG" /D "WIN32" /D "WITH_SSL" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /Fp"proxy.pch" /FD /c $(BUILDDATE) $(VERSION) COUT = /Fo LN = link LDFLAGS = /nologo /subsystem:console /incremental:no @@ -33,9 +29,7 @@ COMPATLIBS = MAKEFILE = Makefile.msvc PLUGINS = utf8tocp1251 WindowsAuthentication TrafficPlugin StringsPlugin FilePlugin SSLPlugin PCREPlugin VERFILE = 3proxy.res $(VERFILE) -VERSION = $(VERSION) VERSIONDEP = 3proxy.res $(VERSIONDEP) -BUILDDATE = $(BUILDDATE) AFTERCLEAN = if exist src\*.res (del src\*.res) && if exist src\*.err (del src\*.err) include Makefile.inc diff --git a/Makefile.watcom b/Makefile.watcom index 35b77e1..5df122e 100644 --- a/Makefile.watcom +++ b/Makefile.watcom @@ -6,7 +6,7 @@ BUILDDIR = ../bin/ CC = cl -CFLAGS = /nologo /Ox /MT /D "NOIPV6" /D "NODEBUG" /D "NOODBC" /D "NORADIUS" /D"WATCOM" /D "MSVC" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WIN32" /D "PRId64=\"I64d\"" /D "PRIu64=\"I64u\"" /D "SCNu64=\"I64u\"" /D "PRIx64=\"I64x\"" /c $(VERSION) $(BUILDDATE) +CFLAGS = /nologo /Ox /MT /D "NOIPV6" /D "NODEBUG" /D "NOODBC" /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 LN = link LDFLAGS = /nologo /subsystem:console /incremental:no @@ -62,9 +62,3 @@ allplugins: nmake del *.obj *.idb cd ../../ - copy Makefile plugins\PCREPlugin - copy Makefile.var plugins\PCREPlugin - cd plugins\PCREPlugin - nmake - del *.obj *.idb - cd ../../ diff --git a/cmake/plugins.cmake b/cmake/plugins.cmake index 643416e..10b7447 100644 --- a/cmake/plugins.cmake +++ b/cmake/plugins.cmake @@ -4,30 +4,6 @@ # This file defines functions for building plugins # -# Function to add a simple plugin (single source file, no dependencies) -function(add_3proxy_plugin_simple PLUGIN_NAME SOURCE_FILE) - if(WIN32) - set(PLUGIN_SUFFIX ".dll") - else() - set(PLUGIN_SUFFIX ".ld.so") - endif() - - add_library(${PLUGIN_NAME} SHARED ${SOURCE_FILE}) - - set_target_properties(${PLUGIN_NAME} PROPERTIES - PREFIX "" - SUFFIX ${PLUGIN_SUFFIX} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin - ) - - target_link_libraries(${PLUGIN_NAME} PRIVATE Threads::Threads) - - target_include_directories(${PLUGIN_NAME} PRIVATE - ${CMAKE_SOURCE_DIR}/src - ) -endfunction() - # Function to add a plugin with dependencies function(add_3proxy_plugin PLUGIN_NAME) set(options "") diff --git a/debian/conffiles b/debian/conffiles index 5511217..e69de29 100644 --- a/debian/conffiles +++ b/debian/conffiles @@ -1,4 +0,0 @@ -/usr/local/3proxy/conf/3proxy.cfg -/usr/local/3proxy/conf/add3proxyuser.sh -/usr/local/3proxy/conf/bandlimiters -/usr/local/3proxy/conf/counters diff --git a/debian/postinst b/debian/postinst index a190ba4..f5a46a9 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,10 +1,3 @@ -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; \ @@ -34,10 +27,3 @@ elif [ -x /usr/sbin/service ]; then \ 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 diff --git a/debian/rules b/debian/rules index dc57dd0..aacf054 100644 --- a/debian/rules +++ b/debian/rules @@ -3,14 +3,8 @@ %: dh $@ -override_dh_auto_build: - ln -s Makefile.Linux Makefile || true - dh_auto_build - override_dh_auto_clean: find src/ -type f -name "*.o" -delete find src/ -type f -name "Makefile.var" -delete find bin/ -type f -executable -delete - rm -f Makefile -override_dh_usrlocal: diff --git a/doc/html/howtoe.html b/doc/html/howtoe.html index f9a03e9..84387cc 100644 --- a/doc/html/howtoe.html +++ b/doc/html/howtoe.html @@ -67,14 +67,10 @@
-Extract source code files from 3proxy.tgz (with WinZip or another utility). -For 64-bit Windows use: +Extract source code files from 3proxy.tgz (with WinZip or another utility) or use git. +
-nmake /f Makefile.msvc64 --For ARM64 Windows use: -
-nmake /f Makefile.msvcARM64 +nmake /f Makefile.msvcBinaries will be placed in the
bin/ directory.
diff --git a/doc/html/howtor.html b/doc/html/howtor.html
index 91b175c..ea74a0f 100644
--- a/doc/html/howtor.html
+++ b/doc/html/howtor.html
@@ -73,13 +73,10 @@
- Извлеките файлы из архива 3proxy.tgz (например, с помощью WinZip). - Для 64-битной Windows используйте: + Извлеките файлы из архива 3proxy.tgz (например, с помощью WinZip) или используйте git.
- nmake /f Makefile.msvc64- Для Windows ARM64 используйте: -
- nmake /f Makefile.msvcARM64+ nmake /f Makefile.msvc + Исполняемые файлы будут помещены в каталог
bin/.