Compare commits

..

15 commits

Author SHA1 Message Date
db363fbe4a
Add arm patch 2025-09-14 23:18:07 -04:00
58b9124663
Update aarch64 workflow 2025-09-14 23:17:30 -04:00
901abc9c5d
Add patch to disable sysroot on arm64 2025-09-14 16:58:05 -04:00
60da7a33a7
ci: add aarch64 build workflow
Some checks failed
/ release-deploy (push) Has been skipped
/ release-build (push) Failing after 16m37s
2025-09-10 10:19:07 -04:00
1bc8990bd6
ci: do not install pkg manually
All checks were successful
/ release-build (push) Successful in 1h29m43s
/ release-deploy (push) Successful in 44s
2025-09-04 10:02:00 -04:00
3ede421707
Use nodejs 18
Some checks failed
/ release-deploy (push) Has been skipped
/ release-build (push) Failing after 6m40s
2025-09-04 09:53:32 -04:00
a53363295b
ci: use python3 to build
Some checks failed
/ release-deploy (push) Has been skipped
/ release-build (push) Failing after 6m58s
2025-09-04 09:40:42 -04:00
0c906b4e5e
Upgrade to 9.0.4-54
Some checks failed
/ release-deploy (push) Has been skipped
/ release-build (push) Failing after 5m17s
2025-09-04 09:29:09 -04:00
007139a8a6
Upgrade to 8.3.3-21
All checks were successful
/ release-deploy (push) Successful in 41s
/ release-build (push) Successful in 1h18m28s
2025-04-16 21:16:50 -04:00
663a763150
Attempt to fix compilation introduced from 4f4f61bb19
All checks were successful
/ release-build (push) Successful in 1h25m45s
/ release-deploy (push) Successful in 44s
2025-04-02 16:28:59 -04:00
101f52f9ab
Upgrade to 8.3.2-28
Some checks failed
/ release-build (push) Failing after 31m11s
/ release-deploy (push) Has been skipped
2025-03-23 16:26:46 -04:00
4fa4653f8f
Upgrade to 8.3.0-98
All checks were successful
/ release-build (push) Successful in 1h20m31s
/ release-deploy (push) Successful in 44s
2025-02-15 16:32:56 -05:00
22502496a6
Upgrade to 8.2.2-22
All checks were successful
/ release-deploy (push) Successful in 47s
/ release-build (push) Successful in 1h19m32s
2024-11-28 10:58:38 -05:00
7bf927c2c3
Initial pkg version checker 2024-11-10 00:17:48 -05:00
18b17a1e23
Use build_no 144 2024-10-18 12:46:26 -04:00
9 changed files with 351 additions and 18 deletions

34
.forgejo/bin/check_ver.sh Executable file
View file

@ -0,0 +1,34 @@
#!/bin/bash
# expects the following env variables:
# downstream: downstream repo
repo=${downstream/*\/}
curl --silent $downstream/binary-amd64/Packages > Packages
owned_by_you=$(awk -F ': ' '{if($1=="Package"){print $2}}' Packages | sort | uniq)
echo "Found $(printf '%s\n' $owned_by_you | wc -l ) packages"
rm -f out_of_date not_in_anitya
for pkg in $owned_by_you; do
upstream_version=$(curl --fail -X GET -sS -H 'Content-Type: application/json' "https://release-monitoring.org/api/v2/packages/?name=$pkg&distribution=Debian" | jq -r '.items.[].stable_version')
downstream_version=$(sed -n "/^Package: $pkg$/,/^$/p" Packages| awk -F ': ' '{if($1=="Version"){print $2 }}' | sort -V | tail -n 1)
downstream_version=${downstream_version/-*}
echo $upstream_version
echo $downstream_version
if [ -z "$upstream_version" ]; then
echo "$pkg not in anitya"
echo "$pkg" >> not_in_anitya
elif [ "$downstream_version" != "$(printf '%s\n' $upstream_version $downstream_version | sort -V | head -n 1)" ]; then
echo "$pkg higher downstream"
continue
elif [ "$upstream_version" != "$downstream_version" ]; then
echo "$pkg upstream version $upstream_version does not match downstream version $downstream_version"
echo "$pkg $downstream_version $upstream_version $repo" >> out_of_date
fi
done

165
.forgejo/bin/create_issue.sh Executable file
View file

@ -0,0 +1,165 @@
#!/bin/bash
# expects:
# env variable FORGEJO_TOKEN
# file out_of_date
IFS='
'
repo=${downstream/*\/}
does_it_exist() {
name=$1
downstream_version=$2
upstream_version=$3
repo=$4
query="$repo/$name: upgrade to $upstream_version"
query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )"
result="$(curl --silent -X 'GET' \
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \
-H 'accept: application/json' \
-H "authorization: Basic $FORGEJO_TOKEN"
)"
if [ "$result" == "[]" ]; then
return 1
fi
}
is_it_old() {
name=$1
downstream_version=$2
upstream_version=$3
repo=$4
query="$repo/$name: upgrade to"
query="$(echo $query | sed 's| |%20|g' | sed 's|:|%3A|g' | sed 's|/|%2F|g' )"
result="$(curl --silent -X 'GET' \
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \
-H 'accept: application/json' \
-H "authorization: Basic $FORGEJO_TOKEN"
)"
result_title="$(echo $result | jq -r '.[].title' )"
result_id="$(echo $result | jq -r '.[].number' )"
result_upstream_version="$(echo $result_title | awk '{print $4}')"
if [ "$upstream_version" != "$result_upstream_version" ]; then
echo $result_id
else
echo 0
fi
}
update_title() {
name=$1
downstream_version=$2
upstream_version=$3
repo=$4
id=$5
result=$(curl --silent -X 'PATCH' \
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$id" \
-H 'accept: application/json' \
-H "authorization: Basic $FORGEJO_TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"title\": \"$repo/$name: upgrade to $upstream_version\"
}"
)
return 0
}
create_issue() {
name=$1
downstream_version=$2
upstream_version=$3
repo=$4
result=$(curl --silent -X 'POST' \
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
-H 'accept: application/json' \
-H "authorization: Basic $FORGEJO_TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"title\": \"$repo/$name: upgrade to $upstream_version\",
\"labels\": [
$LABEL_NUMBER
]
}")
return 0
}
if [ -f out_of_date ]; then
out_of_date="$(cat out_of_date)"
echo "Detected $(wc -l out_of_date) out-of-date packages, creating issues"
for pkg in $out_of_date; do
name="$(echo $pkg | awk '{print $1}')"
downstream_version="$(echo $pkg | awk '{print $2}')"
upstream_version="$(echo $pkg | awk '{print $3}')"
repo="$(echo $pkg | awk '{print $4}')"
if does_it_exist $name $downstream_version $upstream_version $repo; then
echo "Issue for $repo/$name already exists"
continue
fi
id=$(is_it_old $name $downstream_version $upstream_version $repo)
if [ "$id" != "0" ] && [ -n "$id" ]; then
echo "Issue for $repo/$name needs updating"
update_title $name $downstream_version $upstream_version $repo $id
continue
fi
echo "Creating issue for $repo/$name"
create_issue $name $downstream_version $upstream_version $repo
done
fi
if [ -f not_in_anitya ]; then
query="Add missing $repo packages to anitya"
query="$(echo $query | sed 's| |%20|g')"
result="$(curl --silent -X 'GET' \
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues?state=open&q=$query&type=issues" \
-H 'accept: application/json' \
-H "authorization: Basic $FORGEJO_TOKEN"
)"
if [ "$result" == "[]" ]; then
echo "Creating anitya issue"
result=$(curl --silent -X 'POST' \
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues" \
-H 'accept: application/json' \
-H "authorization: Basic $FORGEJO_TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"title\": \"Add missing $repo packages to anitya\",
\"body\": \"- [ ] $(sed '{:q;N;s/\n/\\n- [ ] /g;t q}' not_in_anitya)\",
\"labels\": [
$LABEL_NUMBER
]
}")
else
echo "Updating anitya issue"
result_id="$(echo $result | jq -r '.[].number' )"
result=$(curl --silent -X 'PATCH' \
"$GITHUB_SERVER_URL/api/v1/repos/$GITHUB_REPOSITORY/issues/$result_id" \
-H 'accept: application/json' \
-H "authorization: Basic $FORGEJO_TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"body\": \"- [ ] $(sed '{:q;N;s/\n/\\n- [ ] /g;t q}' not_in_anitya)\"
}"
)
fi
fi

View file

@ -0,0 +1,24 @@
on:
workflow_dispatch:
jobs:
check-user:
name: Check user repo
runs-on: x86_64
container:
image: alpine:latest
env:
downstream: https://forge.ilot.io/api/packages/ilot/debian/dists/jammy/main
FORGEJO_TOKEN: ${{ secrets.forgejo_token }}
LABEL_NUMBER: 4
steps:
- name: Environment setup
run: apk add grep coreutils gawk curl wget bash nodejs git jq sed
- name: Get scripts
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Check out-of-date packages
run: ${{ github.workspace }}/.forgejo/bin/check_ver.sh
- name: Create issues
run: ${{ github.workspace }}/.forgejo/bin/create_issue.sh

View file

@ -0,0 +1,83 @@
on:
push:
tags:
- 'v*'
jobs:
release-build:
runs-on: aarch64
container:
image: ubuntu:22.04
env:
pkgver: 9.0.4
buildno: 54
qtver: 5.15.3
VPYTHON_BYPASS: manually managed python not supported by chrome operations
steps:
- name: Environment setup
run: |
cat /etc/os-release
apt-get update
apt-get install -y git make g++ bzip2 sudo patch curl lsb-release p7zip-full qtbase5-dev debhelper clang-14 lld-14 wget
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
# node version set in build_tools/scripts/build_server variable pkg_target
curl -sL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs
npm install -g grunt grunt-cli
wget http://ftp.us.debian.org/debian/pool/main/g/generate-ninja/generate-ninja_0.0~git20210128.09c9e5e-1_arm64.deb
apt install ./generate-ninja_0.0~git20210128.09c9e5e-1_arm64.deb
- 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: |
cd build
git apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/core_v8-use-system-clang.patch
git apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/disable-licensing-limits.patch
git apply -v --ignore-space-change --ignore-whitespace $GITHUB_WORKSPACE/arm64-doctrender-add-missing-includepath.patch
- name: Development setup
run: |
mkdir -p build/build_tools/system_qt-$qtver/gcc_64
ln -s /usr/lib/aarch64-linux-gnu build/build_tools/system_qt-$qtver/gcc_64/lib
ln -s /usr/lib/aarch64-linux-gnu/qt5/bin build/build_tools/system_qt-$qtver/gcc_64/bin
ln -s /usr/lib/aarch64-linux-gnu/qt5/plugins build/build_tools/system_qt-$qtver/gcc_64/plugins
mkdir -p build/core/Common/3dParty/v8_89/v8/buildtools
ln -s /usr/bin build/core/Common/3dParty/v8_89/v8/buildtools/linux64
cd build/build_tools/tools/linux
mkdir python3 # keeps from untar and adding to PATH x86_64 python3
python3 ./deps.py
- name: Build server
run: |
cd build/build_tools
python3 ./configure.py --update 0 --platform linux_arm64 --module "server" --qt-dir $(pwd)/system_qt-$qtver
python3 ./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: aarch64
container:
image: alpine:latest
steps:
- name: Setting up environment
run: apk add nodejs curl
- 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://forge.ilot.io/api/packages/ilot/debian/pool/jammy/main/upload

View file

@ -9,8 +9,8 @@ jobs:
container:
image: ubuntu:22.04
env:
pkgver: 8.2.0
buildno: 143
pkgver: 9.0.4
buildno: 54
qtver: 5.15.3
steps:
- name: Environment setup
@ -18,9 +18,10 @@ jobs:
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 clang-14 lld-14
curl -sL https://deb.nodesource.com/setup_16.x | bash -
# node version set in build_tools/scripts/build_server variable pkg_target
curl -sL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs
npm install -g pkg grunt grunt-cli
npm install -g grunt grunt-cli
- name: Getting patches
uses: actions/checkout@v4
- name: Fetching sources
@ -43,12 +44,12 @@ jobs:
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
python3 ./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
python3 ./configure.py --update 0 --module "server" --qt-dir $(pwd)/system_qt-$qtver
python3 ./make.py
- name: Build package
run: |
cd build/document-server-package

View file

@ -8,8 +8,8 @@ jobs:
container:
image: ubuntu:22.04
env:
pkgver: 8.2.0
buildno: 143
pkgver: 8.2.2
buildno: 22
qtver: 5.15.3
steps:
- name: Environment setup

View file

@ -0,0 +1,14 @@
diff --git a/core/DesktopEditor/doctrenderer/doctrenderer.pri b/core/DesktopEditor/doctrenderer/doctrenderer.pri
index e4db7ad5..39bd3fc7 100644
--- a/core/DesktopEditor/doctrenderer/doctrenderer.pri
+++ b/core/DesktopEditor/doctrenderer/doctrenderer.pri
@@ -109,6 +109,9 @@ ADD_FILES_FOR_EMBEDDED_CLASS_HEADER($$PWD_CUR/embed/ZipEmbed.h)
include($$PWD_CUR/../graphics/pro/textshaper.pri)
include($$PWD_CUR/../../Common/3dParty/openssl/openssl.pri)
+INCLUDEPATH += $$PWD_CUR/../../Common/3dParty/v8_89/v8/include
+INCLUDEPATH += $$PWD_CUR/../../Common/3dParty/v8_89/v8
+
# downloader
DEFINES += BUIDLER_OPEN_DOWNLOAD_ENABLED
DEFINES += BUIDLER_OPEN_BASE64_ENABLED

View file

@ -1,12 +1,23 @@
diff --git a/build_tools/scripts/core_common/modules/v8_89.py b/build_tools/scripts/core_common/modules/v8_89.py
index 2c920a4..61dcafc 100644
--- a/build_tools/scripts/core_common/modules/v8_89.py
+++ b/build_tools/scripts/core_common/modules/v8_89.py
@@ -48,6 +48,8 @@ def make_args(args, platform, is_64=True, is_debug=False):
@@ -55,6 +55,8 @@ def make_args(args, platform, is_64=True, is_debug=False):
linux_clang = False
if (platform == "linux"):
args_copy.append("is_clang=true")
+ args_copy.append("clang_base_path=\\\"/usr/lib/llvm-14\\\"")
+ args_copy.append("clang_use_chrome_plugins=false")
args_copy.append("use_sysroot=false")
if (platform == "windows"):
args_copy.append("is_clang=false")
if "1" == config.option("use-clang"):
args_copy.append("use_sysroot=true")
linux_clang = True
@@ -43,7 +43,7 @@ def make_args(args, platform, is_64=True, is_debug=False):
args_copy = args[:]
args_copy.append("target_cpu=\\\"arm64\\\"")
args_copy.append("v8_target_cpu=\\\"arm64\\\"")
- args_copy.append("use_sysroot=true")
+ args_copy.append("use_sysroot=false")
if is_debug:
args_copy.append("is_debug=true")

View file

@ -119,10 +119,10 @@ index 2209e8c9..feef6247 100644
} else {
const converter = require('./converter');
diff --git a/server/Common/sources/license.js b/server/Common/sources/license.js
index 8813cbac..90177d15 100644
index d43ee210..9e787b08 100644
--- a/server/Common/sources/license.js
+++ b/server/Common/sources/license.js
@@ -44,23 +44,23 @@ exports.readLicense = async function () {
@@ -44,24 +44,24 @@ exports.readLicense = async function () {
return [{
count: 1,
type: c_LR.Success,
@ -149,8 +149,9 @@ index 8813cbac..90177d15 100644
- endDate: null,
+ endDate: new Date("2099-01-01T23:59:59.000Z"),
customerId: "",
- alias: ""
+ alias: "community"
- alias: "",
+ alias: "community",
multitenancy: false
}, null];
};