From 4722602da18d95b269b14b5c5f37ec4aaf90bb36 Mon Sep 17 00:00:00 2001
From: Vladimir Dubrovin <3proxy@3proxy.ru>
Date: Wed, 8 Apr 2026 17:20:09 +0300
Subject: [PATCH] Update workflows and makefiles
- Update GitHub Actions workflows (checkout v5, build fixes)
- Fix MSVC and Watcom makefiles
- Update documentation
Co-Authored-By: Claude Opus 4.6
---
.github/workflows/build-rpm-arm64.yml | 2 +-
.github/workflows/build-rpm-armhf.yml | 2 +-
.github/workflows/build-rpm-x86-64.yml | 2 +-
.github/workflows/build-watcom.yml | 9 ++++-----
.github/workflows/build-win32.yml | 11 ++++-------
.github/workflows/build-win64.yml | 11 +++++------
.github/workflows/build-winarm64.yml | 11 ++++-------
.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 +-
Makefile.msvc | 12 +++---------
Makefile.watcom | 6 ------
doc/html/howtoe.html | 10 +++-------
doc/html/howtor.html | 9 +++------
15 files changed, 33 insertions(+), 60 deletions(-)
diff --git a/.github/workflows/build-rpm-arm64.yml b/.github/workflows/build-rpm-arm64.yml
index 25259ae..576479c 100644
--- a/.github/workflows/build-rpm-arm64.yml
+++ b/.github/workflows/build-rpm-arm64.yml
@@ -14,7 +14,7 @@ jobs:
- ubuntu-24.04-arm
runs-on: ${{ matrix.target }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: env
run: |
pwd
diff --git a/.github/workflows/build-rpm-armhf.yml b/.github/workflows/build-rpm-armhf.yml
index 86b6198..51f8a12 100644
--- a/.github/workflows/build-rpm-armhf.yml
+++ b/.github/workflows/build-rpm-armhf.yml
@@ -14,7 +14,7 @@ jobs:
- ubuntu-latest
runs-on: ${{ matrix.target }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: env
run: |
pwd
diff --git a/.github/workflows/build-rpm-x86-64.yml b/.github/workflows/build-rpm-x86-64.yml
index ce3570c..9c90c5d 100644
--- a/.github/workflows/build-rpm-x86-64.yml
+++ b/.github/workflows/build-rpm-x86-64.yml
@@ -14,7 +14,7 @@ jobs:
- ubuntu-latest
runs-on: ${{ matrix.target }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: env
run: |
pwd
diff --git a/.github/workflows/build-watcom.yml b/.github/workflows/build-watcom.yml
index 9b294a4..ec2ce02 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
diff --git a/.github/workflows/build-win32.yml b/.github/workflows/build-win32.yml
index 6db83ae..864b98b 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
diff --git a/.github/workflows/build-win64.yml b/.github/workflows/build-win64.yml
index f49d1af..a96b1db 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
diff --git a/.github/workflows/build-winarm64.yml b/.github/workflows/build-winarm64.yml
index 2a27f28..fc3ccc5 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
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/Makefile.msvc b/Makefile.msvc
index 297e3fb..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 "SCNx64=\"I64x\"" /D "SCNd64=\"I64d\"" /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 d3362c5..5df122e 100644
--- a/Makefile.watcom
+++ b/Makefile.watcom
@@ -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/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 @@
- How to compile 3proxy with Visual C++
-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.msvc
Binaries 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 Visual C++
- Извлеките файлы из архива 3proxy.tgz (например, с помощью WinZip).
- Для 64-битной Windows используйте:
+ Извлеките файлы из архива 3proxy.tgz (например, с помощью WinZip) или используйте git.
- nmake /f Makefile.msvc64
- Для Windows ARM64 используйте:
-
- nmake /f Makefile.msvcARM64
+ nmake /f Makefile.msvc
+
Исполняемые файлы будут помещены в каталог bin/.
- Как скомпилировать 3proxy с помощью CMake