From 7dc6bc1415f4862ec68c1fac925aee312cdca3b8 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Fri, 23 Aug 2024 15:47:35 -0400 Subject: [PATCH 1/4] forgejo-ci: initial --- .forgejo/workflows/test-build.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .forgejo/workflows/test-build.yaml diff --git a/.forgejo/workflows/test-build.yaml b/.forgejo/workflows/test-build.yaml new file mode 100644 index 0000000..008e492 --- /dev/null +++ b/.forgejo/workflows/test-build.yaml @@ -0,0 +1,12 @@ +on: + pull_request: + types: [ assigned, opened, synchronize, reopened ] + +jobs: + build-test: + runs-on: x86_64 + container: + image: onlyoffice/documentserver-builder + steps: + - name: Environment setup + run: cat /etc/os-release -- 2.47.2 From 21715b384717c7f859c6efb410e3e4a33958bee1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 24 Aug 2024 17:25:03 -0400 Subject: [PATCH 2/4] forgejo-ci: initial port --- .forgejo/workflows/release-build.yaml | 81 +++++++++++++++++++++++++++ .forgejo/workflows/test-build.yaml | 55 +++++++++++++++++- 2 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 .forgejo/workflows/release-build.yaml diff --git a/.forgejo/workflows/release-build.yaml b/.forgejo/workflows/release-build.yaml new file mode 100644 index 0000000..471ef80 --- /dev/null +++ b/.forgejo/workflows/release-build.yaml @@ -0,0 +1,81 @@ +on: + push: + tags: + - 'v*' + +jobs: + release-build: + runs-on: x86_64 + container: + image: ubuntu:22.04 + env: + pkgver: 8.1.1 + buildno: 39 + qtver: 5.15.3 + steps: + - name: Environment setup + run: | + cat /etc/os-release + apt-get update + apt-get install -y git make g++ bzip2 sudo patch python2 curl lsb-release p7zip-full qtbase5-dev debhelper + curl -sL https://deb.nodesource.com/setup_16.x | bash - + apt-get install -y nodejs + npm install -g pkg grunt grunt-cli + - name: Getting patches + uses: actions/checkout@v4 + - name: Fetching sources + run: | + git clone https://github.com/ONLYOFFICE/DocumentServer --recursive -b v$pkgver build + git clone https://github.com/ONLYOFFICE/build_tools.git -b v$pkgver.$buildno build/build_tools + git clone https://github.com/ONLYOFFICE/document-server-integration -b v$pkgver.$buildno build/document-server-integration + git clone https://github.com/ONLYOFFICE/document-templates -b v$pkgver.$buildno build/document-templates + git clone https://github.com/ONLYOFFICE/onlyoffice.github.io build/onlyoffice.github.io + git clone https://github.com/ONLYOFFICE/document-server-package.git -b v$pkgver.$buildno build/document-server-package + - name: Applying patches + run: | + git -C build/server apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/server.patch + git -C build/web-apps apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/web-apps.patch + git -C build apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/core_v8-no-enum-constexrp-conversion.patch + - name: Development setup + run: | + mkdir -p build/build_tools/system_qt-$qtver/gcc_64 + ln -s /usr/lib/x86_64-linux-gnu build/build_tools/system_qt-$qtver/gcc_64/lib + ln -s /usr/lib/x86_64-linux-gnu/qt5/bin build/build_tools/system_qt-$qtver/gcc_64/bin + ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins build/build_tools/system_qt-$qtver/gcc_64/plugins + cd build/build_tools/tools/linux + python2 ./deps.py + - name: Build server + run: | + cd build/build_tools + python2 ./configure.py --update 0 --module "server" --qt-dir $(pwd)/system_qt-$qtver + python2 ./make.py + - name: Build package + run: | + cd build/document-server-package + PRODUCT_VERSION=$pkgver BUILD_NUMBER=$buildno make deb + - name: Package upload + uses: forgejo/upload-artifact@v3 + with: + name: documentserver-deb + path: build/document-server-package/deb/onlyoffice-documentserver_*.deb + release-deploy: + needs: [release-build] + runs-on: x86_64 + container: + image: alpine:latest + env: + CI_RPM_REPO: 'https://ayakael.net/api/packages/forge/' + FORGE_REPO_TOKEN: ${{ secrets.FORGE_REPO_TOKEN }} + FORGE_REPO_PRIVKEY: ${{ secrets.FORGE_REPO_PRIVKEY }} + FORGE_REPO_USER: ${{ vars.FORGE_REPO_USER }} + steps: + - name: Setting up environment + run: apk add nodejs curl findutils git gawk bash + - name: Repo pull + uses: actions/checkout@v4 + - name: Package download + uses: forgejo/download-artifact@v3 + - name: Package deployment + run: curl --user ${{ vars.FORGE_REPO_USER }}:${{ secrets.FORGE_REPO_PRIVKEY }} --upload-file */onlyoffice-documentserver_*.deb https://forgejo.example.com/api/packages/ilot/debian/pool/jammy/main/upload + + diff --git a/.forgejo/workflows/test-build.yaml b/.forgejo/workflows/test-build.yaml index 008e492..c315e34 100644 --- a/.forgejo/workflows/test-build.yaml +++ b/.forgejo/workflows/test-build.yaml @@ -3,10 +3,59 @@ on: types: [ assigned, opened, synchronize, reopened ] jobs: - build-test: + test-build: runs-on: x86_64 container: - image: onlyoffice/documentserver-builder + image: ubuntu:22.04 + env: + pkgver: 8.1.1 + buildno: 39 + qtver: 5.15.3 steps: - name: Environment setup - run: cat /etc/os-release + run: | + cat /etc/os-release + apt-get update + apt-get install -y git make g++ bzip2 sudo patch python2 curl lsb-release p7zip-full qtbase5-dev debhelper + curl -sL https://deb.nodesource.com/setup_16.x | bash - + apt-get install -y nodejs + npm install -g pkg grunt grunt-cli + - name: Getting patches + uses: actions/checkout@v4 + - name: Fetching sources + run: | + git clone https://github.com/ONLYOFFICE/DocumentServer --recursive -b v$pkgver build + git clone https://github.com/ONLYOFFICE/build_tools.git -b v$pkgver.$buildno build/build_tools + git clone https://github.com/ONLYOFFICE/document-server-integration -b v$pkgver.$buildno build/document-server-integration + git clone https://github.com/ONLYOFFICE/document-templates -b v$pkgver.$buildno build/document-templates + git clone https://github.com/ONLYOFFICE/onlyoffice.github.io build/onlyoffice.github.io + git clone https://github.com/ONLYOFFICE/document-server-package.git -b v$pkgver.$buildno build/document-server-package + - name: Applying patches + run: | + git -C build/server apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/server.patch + git -C build/web-apps apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/web-apps.patch + git -C build apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/core_v8-no-enum-constexrp-conversion.patch + - name: Development setup + run: | + mkdir -p build/build_tools/system_qt-$qtver/gcc_64 + ln -s /usr/lib/x86_64-linux-gnu build/build_tools/system_qt-$qtver/gcc_64/lib + ln -s /usr/lib/x86_64-linux-gnu/qt5/bin build/build_tools/system_qt-$qtver/gcc_64/bin + ln -s /usr/lib/x86_64-linux-gnu/qt5/plugins build/build_tools/system_qt-$qtver/gcc_64/plugins + cd build/build_tools/tools/linux + python2 ./deps.py + - name: Build server + run: | + cd build/build_tools + python2 ./configure.py --update 0 --module "server" --qt-dir $(pwd)/system_qt-$qtver + python2 ./make.py + - name: Build package + run: | + cd build/document-server-package + PRODUCT_VERSION=$pkgver BUILD_NUMBER=$buildno make deb + - name: Package upload + uses: forgejo/upload-artifact@v3 + with: + name: documentserver-deb + path: build/document-server-package/deb/onlyoffice-documentserver_*.deb + + -- 2.47.2 From 26497e918b0f1f9735f8446e5f272bd078710e59 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 24 Aug 2024 17:25:36 -0400 Subject: [PATCH 3/4] server.patch: fix for 8.1 --- server.patch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server.patch b/server.patch index 5276ebc..03c4856 100644 --- a/server.patch +++ b/server.patch @@ -57,7 +57,7 @@ diff --git a/DocService/sources/server.js b/DocService/sources/server.js index 76303af9..9d2e6888 100644 --- a/DocService/sources/server.js +++ b/DocService/sources/server.js -@@ -109,7 +109,7 @@ if (!(cfgTokenEnableBrowser && cfgTokenEnableRequestInbox && cfgTokenEnableReque +@@ -129,7 +129,7 @@ if (!(cfgTokenEnableBrowser && cfgTokenEnableRequestInbox && cfgTokenEnableReque } updateLicense(); @@ -65,7 +65,8 @@ index 76303af9..9d2e6888 100644 +// fs.watchFile(cfgLicenseFile, updateLicense); setInterval(updateLicense, 86400000); - if (config.has('services.CoAuthoring.server.static_content')) { + try { + diff --git a/FileConverter/sources/convertermaster.js b/FileConverter/sources/convertermaster.js index 46615032..6ce2d3e6 100644 --- a/FileConverter/sources/convertermaster.js -- 2.47.2 From 748136ba54e59f44578868714981fc90bb92d7f6 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sat, 24 Aug 2024 17:26:05 -0400 Subject: [PATCH 4/4] core_v8-no-enum-constexrp-conversion: fixes v8 build on ubuntu 22.04 --- core_v8-no-enum-constexrp-conversion.patch | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 core_v8-no-enum-constexrp-conversion.patch diff --git a/core_v8-no-enum-constexrp-conversion.patch b/core_v8-no-enum-constexrp-conversion.patch new file mode 100644 index 0000000..da56ce3 --- /dev/null +++ b/core_v8-no-enum-constexrp-conversion.patch @@ -0,0 +1,34 @@ +diff --git a/core/Common/3dParty/v8/tools/no-enum-constexrp-conversion.patch b/core/Common/3dParty/v8/tools/no-enum-constexrp-conversion.patch +new file mode 100644 +index 0000000000..5a1a8067a6 +--- /dev/null ++++ b/core/Common/3dParty/v8/tools/no-enum-constexrp-conversion.patch +@@ -0,0 +1,14 @@ ++diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn ++index 5ea2f213..29fa7742 100644 ++--- a/build/config/compiler/BUILD.gn +++++ b/build/config/compiler/BUILD.gn ++@@ -1548,6 +1548,9 @@ config("default_warnings") { ++ # TODO(https://crbug.com/989932): Evaluate and possibly enable. ++ "-Wno-implicit-int-float-conversion", ++ +++ "-Wno-enum-constexpr-conversion", +++ +++ ++ # TODO(https://crbug.com/999886): Clean up, enable. ++ "-Wno-final-dtor-non-final-class", ++ +diff --git a/build_tools/scripts/core_common/modules/v8_89.py b/core/build_tools/core_common/modules/v8_89.py +index 9643263..35ee1fe 100644 +--- a/build_tools/scripts/core_common/modules/v8_89.py ++++ b/build_tools/scripts/core_common/modules/v8_89.py +@@ -150,6 +150,8 @@ def make(): + "use_custom_libcxx=false", + "treat_warnings_as_errors=false"] + ++ base.cmd("patch", ["-p1", "-i", "../../v8/tools/no-enum-constexrp-conversion.patch"]) ++ + if config.check_option("platform", "linux_64"): + base.cmd2("gn", ["gen", "out.gn/linux_64", make_args(gn_args, "linux")]) + base.cmd("ninja", ["-C", "out.gn/linux_64"]) + -- 2.47.2