merging version-v2 into dev

This commit is contained in:
DuckSoft 2020-01-23 21:21:43 +08:00
commit 620b749e23
No known key found for this signature in database
GPG Key ID: 7A3A9FA6E4FD4A8D
9 changed files with 580 additions and 570 deletions

117
.github/workflows/Linux.yml vendored Normal file
View File

@ -0,0 +1,117 @@
name: Qv2ray Push Build for Linux
on:
push:
release:
types: [prereleased]
jobs:
# =================================================================================== LINUX
Linux:
name: Push build for Linux
runs-on: ubuntu-16.04
steps:
- name: Checking out sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: jurplel/install-qt-action@v2
with:
modules: qtcharts
# --------------------------------------------------------
- name: Install Packages
run: |
sudo add-apt-repository ppa:webispy/grpc
sudo add-apt-repository ppa:carsten-uppenbrink-net/openssl
sudo apt update
sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler protobuf-compiler-grpc
# --------------------------------------------------------
- name: Extracting gRPC and protobuf libs and headers
run: tools/grpc_gen.sh
# --------------------------------------------------------
- name: Download libqvb static library.
uses: Legion2/download-release-action@v2.1.0
with:
repository: Qv2ray/QvRPCBridge
tag: 'latest'
path: libs
file: libqvb-linux64.a
# -------------------------------------------------------- libqvb build
- name: libqvb - Build Qv2ray
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend PREFIX=/usr
make -j2
- name: libqvb - Generating filesystem structure for AppImage
run: |
cd build
make install INSTALL_ROOT=AppDir
cd AppDir
mkdir -p ./usr/lib/
cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ./usr/lib/
- name: libqvb - Building AppImage using linuxdeployqt
run: |
cd build
wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage
chmod +x ./linuxdeployqt-6-x86_64.AppImage
./linuxdeployqt-6-x86_64.AppImage --appimage-extract
cd AppDir
../squashfs-root/AppRun usr/share/applications/qv2ray.desktop -appimage -no-strip -always-overwrite
mv ./Qv2ray*.AppImage ./Qv2ray.AppImage
- name: libqvb - Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.linux-libqvb.AppImage
path: build/AppDir/Qv2ray.AppImage
- name: libqvb - Upload binaries to release
if: github.event_name == 'release'
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/AppDir/Qv2ray.AppImage
asset_name: Qv2ray-${{ github.ref }}-linux-libqvb.AppImage
tag: ${{ github.ref }}
overwrite: true
# -------------------------------------------------------- cleanup build
- name: cleanup -- clean up build directory to build against legacy gRPC
run: rm -rvf ./build
# -------------------------------------------------------- gRPC build
- name: gRPC - Build Qv2ray
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number PREFIX=/usr
make -j2
- name: gRPC - Generating filesystem structure for AppImage
run: |
cd build
make install INSTALL_ROOT=AppDir
cd AppDir
mkdir -p ./usr/lib/
cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ./usr/lib/
- name: gRPC - Building AppImage using linuxdeployqt
run: |
cd build
wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage
chmod +x ./linuxdeployqt-6-x86_64.AppImage
./linuxdeployqt-6-x86_64.AppImage --appimage-extract
cd AppDir
../squashfs-root/AppRun usr/share/applications/qv2ray.desktop -appimage -no-strip -always-overwrite
mv ./Qv2ray*.AppImage ./Qv2ray.AppImage
- name: gRPC - Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.linux-gRPC.AppImage
path: build/AppDir/Qv2ray.AppImage
- name: gRPC - Upload binaries to release
if: github.event_name == 'release'
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/AppDir/Qv2ray.AppImage
asset_name: Qv2ray-${{ github.ref }}-linux.gRPC.AppImage
tag: ${{ github.ref }}
overwrite: true

111
.github/workflows/Windows.yml vendored Normal file
View File

@ -0,0 +1,111 @@
name: Qv2ray Push Build for Windows
on:
push:
release:
types: [prereleased]
jobs:
# ======================================================================================== WINDOWS
Windows:
name: Push build for win64
runs-on: windows-latest
steps:
- name: Checking out Qv2ray sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: jurplel/install-qt-action@v2
with:
arch: win64_mingw73
modules: qtcharts
# --------------------------------------------------------
- name: Extracting gRPC and protobuf libs and headers
run: tools\grpc_gen.bat
# --------------------------------------------------------
- name: Download libqvb static library.
run: curl -o .\libs\libqvb-win64.a -L https://github.com/Qv2ray/QvRPCBridge/releases/download/v1.0/libqvb-win64.a
# -------------------------------------------------------- libqvb
- name: libqvb - Building Qv2ray
shell: cmd
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend
mingw32-make -j2
- name: libqvb - Copying DLLs to build output folders
shell: cmd
run: .github\workflows\copy_DLLs.bat
- name: libqvb - Deploy Qt
shell: cmd
run: |
cd build
cd release
del *.cpp *.h *.o *.qrc *.qm
windeployqt ./qv2ray.exe --compiler-runtime
- name: libqvb - Create 7z Release
uses: DuckSoft/create-7z-action@v1.0
with:
# file/folder path to compress
pathSource: ./build/release/
# 7z archive path to write
pathTarget: ./release.7z
- name: libqvb - Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.Win64-libqvb.7z
path: release.7z
- name: libqvb - Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
if: github.event_name == 'release'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: release.7z
asset_name: Qv2ray-${{ github.ref }}-win64-libqvb.7z
tag: ${{ github.ref }}
overwrite: true
# -------------------------------------------------------- cleanup
- name: cleanup -- clean up build directory to build against legacy gRPC
shell: cmd
run: echo y|rmdir /S build
# -------------------------------------------------------- gRPC
- name: gRPC - Building Qv2ray
shell: cmd
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend
mingw32-make -j2
- name: gRPC - Copying DLLs to build output folders
shell: cmd
run: .github\workflows\copy_DLLs.bat
- name: gRPC - Deploy Qt
shell: cmd
run: |
cd build
cd release
del *.cpp *.h *.o *.qrc *.qm
windeployqt ./qv2ray.exe --compiler-runtime
- name: gRPC - Create 7z Release
uses: DuckSoft/create-7z-action@v1.0
with:
# file/folder path to compress
pathSource: ./build/release/
# 7z archive path to write
pathTarget: ./release.7z
- name: gRPC - Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.Win64-gRPC.7z
path: release.7z
- name: gRPC - Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
if: github.event_name == 'release'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: release.7z
asset_name: Qv2ray-${{ github.ref }}-win64-gRPC.7z
tag: ${{ github.ref }}
overwrite: true

View File

@ -1,162 +0,0 @@
name: Qv2ray Push Build
on: push
jobs:
# ======================================================================================== WINDOWS
Windows:
name: Push build for win64
runs-on: windows-latest
steps:
- name: Checking out Qv2ray sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: jurplel/install-qt-action@v2
with:
arch: win64_mingw73
modules: qtcharts
# --------------------------------------------------------
- name: Extracting gRPC and protobuf libs and headers
run: tools\grpc_gen.bat
# --------------------------------------------------------
# - name: Download libqvb static library.
# run: curl -o .\libs\libqvb-win64.a -L https://github.com/Qv2ray/QvRPCBridge/releases/download/v1.0/libqvb-win64.a
# --------------------------------------------------------
- name: Building Qv2ray
shell: cmd
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number
mingw32-make -j2
- name: Copying DLLs to build output folders
shell: cmd
run: .github\workflows\copy_DLLs.bat
- name: Deploy Qt
shell: cmd
run: |
cd build
cd release
del *.cpp *.h *.o *.qrc *.qm
windeployqt ./qv2ray.exe --compiler-runtime
- name: Create 7z Release
uses: DuckSoft/create-7z-action@v1.0
with:
# file/folder path to compress
pathSource: ./build/release/
# 7z archive path to write
pathTarget: ./release.7z
- name: Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.Win64.7z
path: release.7z
# ========================================================================================= MACOS
macOS:
name: Push build for macOS
runs-on: macos-latest
steps:
- name: Checking out sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: jurplel/install-qt-action@v2
with:
modules: qtcharts
# --------------------------------------------------------
# - name: Extracting gRPC and protobuf libs and headers
# run: tools/deps_macOS.sh
# --------------------------------------------------------
- name: Download libqvb static library.
run: curl -o ./libs/libqvb-darwin.a -L https://github.com/Qv2ray/QvRPCBridge/releases/download/v1.0/libqvb-darwin.a
# --------------------------------------------------------
- name: Building Qv2ray
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend
make -j2
- name: Making release tarball
run: |
cd build
cd qv2ray.app
macdeployqt ./
cd ..
tar czf Qv2ray.app.tar.gz qv2ray.app
- name: Uploading Artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.macOS.app.zip
path: build/Qv2ray.app.tar.gz
# =================================================================================== LINUX
Linux:
name: Push build for Linux
runs-on: ubuntu-16.04
steps:
- name: Checking out sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: jurplel/install-qt-action@v2
with:
modules: qtcharts
# --------------------------------------------------------
- name: Install Packages
run: |
sudo add-apt-repository ppa:webispy/grpc
sudo add-apt-repository ppa:carsten-uppenbrink-net/openssl
sudo apt update
sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler protobuf-compiler-grpc
# --------------------------------------------------------
# - name: Extracting gRPC and protobuf libs and headers
# run: tools/grpc_gen.sh
# --------------------------------------------------------
- name: Download libqvb static library.
uses: Legion2/download-release-action@v2.1.0
with:
repository: Qv2ray/QvRPCBridge
tag: 'latest'
path: libs
file: libqvb-linux64.a
# --------------------------------------------------------
- name: Generate Makefile
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend PREFIX=/usr
- name: Building Qv2ray
run: |
cd build
make -j2
- name: Generating filesystem structure for AppImage
run: |
cd build
make install INSTALL_ROOT=AppDir
cd AppDir
mkdir -p ./usr/lib/
cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ./usr/lib/
- name: Building AppImage using linuxdeployqt
run: |
cd build
wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage
chmod +x ./linuxdeployqt-6-x86_64.AppImage
./linuxdeployqt-6-x86_64.AppImage --appimage-extract
cd AppDir
../squashfs-root/AppRun usr/share/applications/qv2ray.desktop -appimage -no-strip -always-overwrite
mv ./Qv2ray*.AppImage ./Qv2ray.AppImage
- name: Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.linux.AppImage
path: build/AppDir/Qv2ray.AppImage

View File

@ -1,183 +0,0 @@
name: Build Pre-Release Qv2ray
on:
release:
types: [prereleased]
jobs:
Windows:
name: Release for Windows x64
runs-on: [windows-latest]
steps:
- name: Checking out Qv2ray sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: lhy0403/install-qt-action@v2
with:
arch: win64_mingw73
modules: qtcharts
# --------------------------------------------------------
- name: Extracting gRPC and protobuf libs and headers
run: tools\grpc_gen.bat
# --------------------------------------------------------
# - name: Download libqvb static library.
# run: curl -o .\libs\libqvb-win64.a -L https://github.com/Qv2ray/QvRPCBridge/releases/download/v1.0/libqvb-win64.a
# --------------------------------------------------------
- name: Building Qv2ray
shell: cmd
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number
mingw32-make -j2
- name: Copying DLLs to build output folders
shell: cmd
run: .github\workflows\copy_DLLs.bat
- name: Make release zipball
shell: cmd
run: |
cd build
cd release
del *.cpp *.h *.o *.qrc *.qm
windeployqt ./qv2ray.exe --compiler-runtime
- name: Create 7z Release
uses: DuckSoft/create-7z-action@v1.0
with:
pathSource: ./build/release/
pathTarget: ./release.7z
- name: Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.Win64.zip
path: build/Qv2ray.zip
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Qv2ray.zip
asset_name: Qv2ray-${{ github.ref }}-win64.zip
tag: ${{ github.ref }}
overwrite: true
# =========================================================================================
macOS:
name: Release for macOS
runs-on: macos-latest
steps:
- name: Checking out sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: lhy0403/install-qt-action@v2
with:
modules: qtcharts
# --------------------------------------------------------
# - name: Extracting gRPC and protobuf libs and headers
# run: tools/deps_macOS.sh
# --------------------------------------------------------
- name: Download libqvb static library.
run: curl -o .\libs\libqvb-darwin.a -L https://github.com/Qv2ray/QvRPCBridge/releases/download/v1.0/libqvb-darwin.a
# --------------------------------------------------------
- name: Building Qv2ray
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend
make -j2
- name: Making release tarball
run: |
cd build
cd qv2ray.app
macdeployqt ./
cd ..
tar czf Qv2ray.app.tar.gz qv2ray.app
- name: Uploading Artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.macOS.app.zip
path: build/Qv2ray.app.tar.gz
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Qv2ray.app.tar.gz
asset_name: Qv2ray-${{ github.ref }}-macOS.tar.gz
tag: ${{ github.ref }}
overwrite: true
# ===================================================================================
Linux:
name: Release for linux
runs-on: ubuntu-16.04
steps:
- name: Checking out sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: lhy0403/install-qt-action@v2
with:
modules: qtcharts
# --------------------------------------------------------
- name: Install Packages
run: |
sudo add-apt-repository ppa:webispy/grpc
sudo add-apt-repository ppa:carsten-uppenbrink-net/openssl
sudo apt update
sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev libgrpc++-dev libprotobuf-dev protobuf-compiler protobuf-c-compiler protobuf-compiler-grpc
# --------------------------------------------------------
# - name: Extracting gRPC and protobuf libs and headers
# run: tools/grpc_gen.sh
# --------------------------------------------------------
- name: Download libqvb static library.
uses: Legion2/download-release-action@v2.1.0
with:
repository: Qv2ray/QvRPCBridge
tag: 'latest'
path: libs
file: libqvb-linux64.a
# --------------------------------------------------------
- name: Building Qv2ray
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend PREFIX=/usr
make -j2
- name: Generating filesystem structure for AppImage
run: |
cd build
make install INSTALL_ROOT=AppDir
cd AppDir
mkdir -p ./usr/lib/
cp /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 ./usr/lib/
- name: Building AppImage using linuxdeployqt
run: |
cd build
wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage
chmod +x ./linuxdeployqt-6-x86_64.AppImage
./linuxdeployqt-6-x86_64.AppImage --appimage-extract
cd AppDir
../squashfs-root/AppRun usr/share/applications/qv2ray.desktop -appimage -no-strip -always-overwrite
mv ./Qv2ray*.AppImage ./Qv2ray.AppImage
- name: Uploading artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.linux.AppImage
path: build/AppDir/Qv2ray.AppImage
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/AppDir/Qv2ray.AppImage
asset_name: Qv2ray-${{ github.ref }}-linux.AppImage
tag: ${{ github.ref }}
overwrite: true

87
.github/workflows/macOS.yml vendored Normal file
View File

@ -0,0 +1,87 @@
name: Qv2ray Push Build for macOS
on:
push:
release:
types: [prereleased]
jobs:
macOS:
name: Push build for macOS
runs-on: macos-latest
steps:
- name: Checking out sources
uses: actions/checkout@master
- name: Restoring submodules
run: git submodule update --init
# --------------------------------------------------------
- name: Installing Qt
uses: jurplel/install-qt-action@v2
with:
modules: qtcharts
# --------------------------------------------------------
- name: Extracting gRPC and protobuf libs and headers
run: tools/deps_macOS.sh
# --------------------------------------------------------
- name: Download libqvb static library.
run: curl -o ./libs/libqvb-darwin.a -L https://github.com/Qv2ray/QvRPCBridge/releases/download/v1.0/libqvb-darwin.a
# -------------------------------------------------------- == build against libqvb
- name: libqvb - Build Qv2ray
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number CONFIG+=with_new_backend
make -j2
- name: libqvb - Making release tarball
run: |
cd build
cd qv2ray.app
macdeployqt ./
cd ..
tar czf Qv2ray.app.tar.gz qv2ray.app
- name: libqvb - Uploading Artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.macOS.app-libqvb.zip
path: build/Qv2ray.app.tar.gz
- name: libqvb - Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
if: github.event_name == 'release'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Qv2ray.app.tar.gz
asset_name: Qv2ray-${{ github.ref }}-macOS-libqvb.tar.gz
tag: ${{ github.ref }}
overwrite: true
# -------------------------------------------------------- == cleanup
- name: cleanup -- clean up build directory to build against legacy gRPC
run: rm -rvf ./build
# -------------------------------------------------------- == build against gRPC
- name: gRPC - Build Qv2ray
run: |
mkdir build
cd build
qmake .. CONFIG+=no_increase_build_number
make -j2
- name: gRPC - Making release tarball
run: |
cd build
cd qv2ray.app
macdeployqt ./
cd ..
tar czf Qv2ray.app.tar.gz qv2ray.app
- name: gRPC - Uploading Artifact
uses: actions/upload-artifact@master
with:
name: Qv2ray.macOS.app-gRPC.zip
path: build/Qv2ray.app.tar.gz
- name: gRPC - Upload binaries to release
uses: svenstaro/upload-release-action@v1-release
if: github.event_name == 'release'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/Qv2ray.app.tar.gz
asset_name: Qv2ray-${{ github.ref }}-macOS-gRPC.tar.gz
tag: ${{ github.ref }}
overwrite: true

View File

@ -1 +1 @@
3078
3082

View File

@ -20,9 +20,11 @@ no_increase_build_number {
write_file("Build.Counter", _BUILD_NUMBER)
}
# Unix (Actually Linux only) prefix config.
isEmpty(PREFIX) {
PREFIX=/usr/local
}
message("Qv2ray installation PREFIX="$$PREFIX)
DEFINES += QT_DEPRECATED_WARNINGS QV2RAY_VERSION_STRING=\"\\\"v$${VERSION}\\\"\" QAPPLICATION_CLASS=QApplication

View File

@ -260,23 +260,29 @@ namespace Qv2ray
}
#ifdef WITH_LIB_GRPCPP
//GetStatsRequest request;
//request.set_name(name.toStdString());
//request.set_reset(false);
//GetStatsResponse response;
//ClientContext context;
//Status status = Stub->GetStats(&context, request, &response);
//
//if (!status.ok()) {
// LOG(MODULE_VCORE, "API call returns: " + QSTRN(status.error_code()) + " (" + QString::fromStdString(status.error_message()) + ")")
// apiFailedCounter++;
//}
//return response.stat().value();
//LOG(MODULE_VCORE, "API RETURN: " + QString::number(data))
GetStatsRequest request;
request.set_name(name.toStdString());
request.set_reset(false);
GetStatsResponse response;
ClientContext context;
Status status = Stub->GetStats(&context, request, &response);
if (!status.ok()) {
LOG(MODULE_VCORE, "API call returns: " + QSTRN(status.error_code()) + " (" + QString::fromStdString(status.error_message()) + ")")
apiFailedCounter++;
}
auto data = response.stat().value();
#else
auto data = GetStats(const_cast<char *>(name.toStdString().c_str()), 1000);
return data;
if (data < 0) {
LOG(MODULE_VCORE, "API call returns: " + QSTRN(data))
apiFailedCounter++;
}
#endif
return data;
}
// ------------------------------------------------------------- API FUNCTIONS --------------------------
long V2rayKernelInstance::getTagSpeedUp(const QString &tag)

File diff suppressed because it is too large Load Diff