user/onlyoffice-document-server: new aport

This commit is contained in:
Antoine Martin 2023-09-06 14:39:47 -04:00
parent 0ade28bd8d
commit 90d8dcdb96
Signed by: forge
GPG key ID: D62A472A4AA7D541
7 changed files with 474 additions and 0 deletions

View file

@ -0,0 +1,144 @@
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
pkgname=onlyoffice-document-server
pkgver=7.3.3
_buildno=60
_webtag=d26dc3f8736709e502e05f4daf50b29f96923b42
pkgrel=0
pkgdesc="ONLYOFFICE Docs is a free collaborative online office suite"
url="https://github.com/ONLYOFFICE/DocumentServer"
arch="x86_64"
license="AGPL-3.0"
makedepends="
make
qt5-qtbase-dev
bash
g++
nodejs
clang
npm
autoconf
automake
openjdk20-jdk
libxscrnsaver
libncurses++
libxrender-dev
boost1.82-dev
boost1.82-libs
boost1.82-regex
boost1.82-system
boost1.82-filesystem
boost1.82-date_time
libxi-dev
libxcb-dev
libx11-dev
gst-plugins-base-dev
gstreamer-dev
glu
icu-dev
dbus-dev
cups-dev
at-spi2-core
harfbuzz-dev
alsa-lib
subversion
gzip
p7zip
libtool
libpulse
gtk+3.0-dev
glib-dev
nodejs-dev
"
options="!check" # No testsuite
source="
$pkgname-$pkgver.tar.gz::https://lab.ilot.io/mirrors/onlyoffice-document-server/-/releases/v$pkgver/downloads/tarball/onlyoffice-document-server-v$pkgver.tar.gz
$pkgname-build_tools-$pkgver.$_buildno.tar.gz::https://github.com/ONLYOFFICE/build_tools/archive/refs/tags/v$pkgver.$_buildno.tar.gz
$pkgname-document-server-integration-$pkgver.$_buildno.tar.gz::https://github.com/ONLYOFFICE/document-server-integration/archive/refs/tags/v$pkgver.$_buildno.tar.gz
$pkgname-document-templates-$pkgver.$_buildno.tar.gz::https://github.com/ONLYOFFICE/document-templates/archive/refs/tags/v$pkgver.$_buildno.tar.gz
$pkgname-onlyoffice-io-$_webtag.tar.gz::https://github.com/ONLYOFFICE/onlyoffice.github.io/archive/$_webtag.tar.gz
server_fix-makefile.patch
server_restore-mobile-editing.patch
web-apps_restore-mobile-editing.patch
build_tools-untarget-pkg.patch
core_fix-musl-build.patch
"
builddir="$srcdir"/$pkgname-v$pkgver
prepare() {
mv ../build_tools-$pkgver.$_buildno build_tools
mv ../document-server-integration-$pkgver.$_buildno document-server-integration
mv ../document-templates-$pkgver.$_buildno document-templates
mv ../onlyoffice.github.io-$_webtag onlyoffice.github.io
default_prepare
mkdir -p "$srcdir"/system_qt/gcc_64
ln -s /usr/lib "$srcdir"/system_qt/gcc_64/lib
ln -s /usr/lib/qt5/bin "$srcdir"/system_qt/gcc_64/bin
ln -s /usr/lib/qt5/plugins "$srcdir"/system_qt/gcc_64/plugins
npm install -g --prefix "$srcdir"/npm_cache pkg grunt grunt-cli gifsicle
# overrides rpi for certain 3rd party libraries as already provided by system
sed -i '/harfbuzz.make()/d' build_tools/scripts/core_common/make_common.py
cat > "$builddir"/core/Common/3dParty/harfbuzz/harfbuzz.pri << EOF
INCLUDEPATH += /usr/include/harfbuzz
EOF
sed -i '/icu.make()/d' build_tools/scripts/core_common/make_common.py
cat > "$builddir"/core/Common/3dParty/icu/icu.pri << EOF
INCLUDEPATH += /usr/include
LIBS += -licuuc -l icudata
EOF
sed -i '/v8.make()/d' build_tools/scripts/core_common/make_common.py
cat > "$builddir"/core/Common/3dParty/v8/v8.pri << EOF
INCLUDEPATH += /usr/include/node
LIBS += -lnode
EOF
sed -i '/openssl.make()/d' build_tools/scripts/core_common/make_common.py
cat > "$builddir"/core/Common/3dParty/openssl/openssl.pri << EOF
INCLUDEPATH += /usr/include/openssl
LIBS += -lcrypto -lssl
EOF
sed -i '/boost.make()/d' build_tools/scripts/core_common/make_common.py
cat > "$builddir"/core/Common/3dParty/boost/boost.pri << EOF
INCLUDEPATH += /usr/include/boost
CORE_BOOST_LIBS = /usr/lib
core_boost_libs:LIBS += -L\$CORE_BOOST_LIBS -lboost_system -lboost_filesystem
core_boost_regex:LIBS += -L\$CORE_BOOST_LIBS -lboost_regex
core_boost_date_time:LIBS += -L\$CORE_BOOST_LIBS -lboost_date_time
EOF
}
build() {
export PATH="$PATH:$srcdir/npm_cache/bin"
msg "Building core"
cd "$builddir"/build_tools
./configure.py \
--update 0 \
--module "server" \
--qt-dir "$srcdir"/system_qt
./make.py
}
package() {
export PATH="$PATH:$srcdir/npm_cache/bin"
cd "$builddir"/server
make install DESTDIR="$pkgdir"
}
sha512sums="
e4601334830932515e4ba165eeeab935059d80523fcb4888da0b88b5fe6b3a2feff1f9c60166f4dbbaceabe546fe075f253b302eb0a7510c3b7762a06ab38755 onlyoffice-document-server-7.3.3.tar.gz
8f9833765838803b6ca7abed12b35a791b4f81e5c6d248b773e0c63fda4f3e54a4df60199fd5c9ef0fe9c0444dccad13a01244b947a5af8f91e2c854435f5a54 onlyoffice-document-server-build_tools-7.3.3.60.tar.gz
ec02da8a8ee92c69ee8089b5f32fb817bc700f65670228a6205ef5afd26c85804931da0dfdc19f7739d5bf6b09732c3a5c5f46a0571b2ee68043c2ce6bf55478 onlyoffice-document-server-document-server-integration-7.3.3.60.tar.gz
24bda1feadf6b47cb556691fcfe71d60f7c34eb00da293f58ba4713c21754eeb146535befc511608477678cd7bc1fb8cf1a379c25300a43e2a7461d4225ed2e0 onlyoffice-document-server-document-templates-7.3.3.60.tar.gz
0144fdd79d1c633fbc54b24fef9bf9e4386fa7d46e67012b05786484dad9a5264e31f7de55eae23067e473483250b678138f86fb00b93aff801e21ddcbded0ad onlyoffice-document-server-onlyoffice-io-d26dc3f8736709e502e05f4daf50b29f96923b42.tar.gz
dce838e901720cf18ccc8035e02b9f8fea0f38a448124321663612027058467de152bfc9c257a3bd14a0ab33a00962f604e1d6c5a7040d7f1b117d260e286839 server_fix-makefile.patch
7c70d7392040ed415da0cdce91c71926624c20a36f850ba9affaff3353368830cc172c243cebc608d72051627c7e44de232818c93453b8c7e58314f05e450b2d server_restore-mobile-editing.patch
5d5758b59c2e8e2b6a31d99efb7e3ad42c60ab035af3641be5f3d84f02a1ea5abf51a380cfc55e403569ebdf3620a9c67c81b8bd0ba4632fc0b5f0506e9cf57e web-apps_restore-mobile-editing.patch
ad2ebbc5293ff3203b4fd84016910b4074f145febcbae28ba5ff5f8c4514c7da2a7b5b35d80ae37919a3794ff12e93af0bd9787175eda86bb546b13c98d3029e build_tools-untarget-pkg.patch
edf83d229459cba87029cecde2777fdc5b4717eed965fe91a4223475bc85e0c99cbc25b9be8de4497c0b14d96b0fe4bee77dd2174c6f59cc9a82ef6c96a1feae core_fix-musl-build.patch
"

View file

@ -0,0 +1,47 @@
diff --git a/build_tools/scripts/core_common/modules/v8.py.orig b/build_tools/scripts/core_common/modules/v8.py
index f185baa..ed86e58 100644
--- a/build_tools/scripts/core_common/modules/v8.py.orig
+++ b/build_tools/scripts/core_common/modules/v8.py
@@ -73,7 +73,6 @@ def make():
use_v8_89 = True
if (use_v8_89):
- v8_89.make()
return
print("[fetch & build]: v8")
@@ -167,34 +166,6 @@ def make():
base_args64 = "target_cpu=\\\"x64\\\" v8_target_cpu=\\\"x64\\\" v8_static_library=true is_component_build=false v8_use_snapshot=false"
base_args32 = "target_cpu=\\\"x86\\\" v8_target_cpu=\\\"x86\\\" v8_static_library=true is_component_build=false v8_use_snapshot=false"
- if config.check_option("platform", "linux_64"):
- base.cmd2("gn", ["gen", "out.gn/linux_64", "--args=\"is_debug=false " + base_args64 + " is_clang=" + is_use_clang() + " use_sysroot=false treat_warnings_as_errors=false\""])
- base.cmd("ninja", ["-C", "out.gn/linux_64"])
-
- if config.check_option("platform", "linux_32"):
- base.cmd2("gn", ["gen", "out.gn/linux_32", "--args=\"is_debug=false " + base_args32 + " is_clang=" + is_use_clang() + " use_sysroot=false treat_warnings_as_errors=false\""])
- base.cmd("ninja", ["-C", "out.gn/linux_32"])
-
- if config.check_option("platform", "mac_64"):
- base.cmd2("gn", ["gen", "out.gn/mac_64", "--args=\"is_debug=false " + base_args64 + "\""])
- base.cmd("ninja", ["-C", "out.gn/mac_64"])
-
- if config.check_option("platform", "win_64"):
- if (-1 != config.option("config").lower().find("debug")):
- base.cmd2("gn", ["gen", "out.gn/win_64/debug", "--args=\"is_debug=true " + base_args64 + " is_clang=false\""])
- base.cmd("ninja", ["-C", "out.gn/win_64/debug"])
-
- base.cmd2("gn", ["gen", "out.gn/win_64/release", "--args=\"is_debug=false " + base_args64 + " is_clang=false\""])
- base.cmd("ninja", ["-C", "out.gn/win_64/release"])
-
- if config.check_option("platform", "win_32"):
- if (-1 != config.option("config").lower().find("debug")):
- base.cmd2("gn", ["gen", "out.gn/win_32/debug", "--args=\"is_debug=true " + base_args32 + " is_clang=false\""])
- base.cmd("ninja", ["-C", "out.gn/win_32/debug"])
-
- base.cmd2("gn", ["gen", "out.gn/win_32/release", "--args=\"is_debug=false " + base_args32 + " is_clang=false\""])
- base.cmd("ninja", ["-C", "out.gn/win_32/release"])
-
os.chdir(old_cur)
os.environ.clear()
os.environ.update(old_env)

View file

@ -0,0 +1,22 @@
diff --git a/build_tools/scripts/build_server.py.orig b/build_tools/scripts/build_server.py
index 15a8ff4..e5a8f28 100644
--- a/build_tools/scripts/build_server.py.orig
+++ b/build_tools/scripts/build_server.py
@@ -51,14 +51,9 @@ def make():
if ("windows" == base.host_platform()):
pkg_target += "-win"
- base.cmd_in_dir(server_build_dir + "/DocService", "pkg", [".", "-t", pkg_target, "--options", "max_old_space_size=4096", "-o", "docservice"])
- base.cmd_in_dir(server_build_dir + "/FileConverter", "pkg", [".", "-t", pkg_target, "-o", "converter"])
- base.cmd_in_dir(server_build_dir + "/Metrics", "pkg", [".", "-t", pkg_target, "-o", "metrics"])
-
- example_dir = base.get_script_dir() + "/../../document-server-integration/web/documentserver-example/nodejs"
- base.delete_dir(example_dir + "/node_modules")
- base.cmd_in_dir(example_dir, "npm", ["install"])
- base.cmd_in_dir(example_dir, "pkg", [".", "-t", pkg_target, "-o", "example"])
+ base.cmd_in_dir(server_build_dir + "/DocService", "pkg", [".", "--options", "max_old_space_size=4096", "-o", "docservice"])
+ base.cmd_in_dir(server_build_dir + "/FileConverter", "pkg", [".", "-o", "converter"])
+ base.cmd_in_dir(server_build_dir + "/Metrics", "pkg", [".", "-o", "metrics"])
def build_server_develop():
server_dir = base.get_script_dir() + "/../../server"

View file

@ -0,0 +1,79 @@
diff --git a/core/DesktopEditor/graphics/BaseThread.cpp.orig b/core/DesktopEditor/graphics/BaseThread.cpp
index df64ee0..beba342 100644
--- a/core/DesktopEditor/graphics/BaseThread.cpp.orig
+++ b/core/DesktopEditor/graphics/BaseThread.cpp
@@ -136,7 +136,7 @@ namespace NSThreads
public:
__native_thread() : CThreadDescriptor()
{
- m_thread = NULL;
+ m_thread = 0;
}
virtual ~__native_thread()
{
diff --git a/core/DesktopEditor/cximage/CxImage/ximagif.cpp.orig b/core/DesktopEditor/cximage/CxImage/ximagif.cpp
index 4fbcf1e..fef552f 100644
--- a/core/DesktopEditor/cximage/CxImage/ximagif.cpp.orig
+++ b/core/DesktopEditor/cximage/CxImage/ximagif.cpp
@@ -86,7 +86,7 @@ namespace NSGeneratePalette
if ( ( X + Width ) > SrcWidth || ( Y + Height ) > SrcHeigth || NULL == pSrc )
{
- return NULL;
+ return 0;
}
(*pImage) = new CImage8bit ();
diff --git a/core/DesktopEditor/doctrenderer/nativecontrol.h.orig b/core/DesktopEditor/doctrenderer/nativecontrol.h
index 22a99e3..c49cc88 100644
--- a/core/DesktopEditor/doctrenderer/nativecontrol.h.orig
+++ b/core/DesktopEditor/doctrenderer/nativecontrol.h
@@ -327,7 +327,7 @@ namespace NSNativeControl
if (m_map_access_directories.end() == m_map_access_directories.find(NSFile::GetDirectoryName(strFile)))
{
- *pData = NULL;
+ *pData = 0;
dwLen = 0;
return;
}
diff --git a/core/UnicodeConverter/UnicodeConverter.cpp.orig b/core/UnicodeConverter/UnicodeConverter.cpp
index 61f1403..60d517f 100644
--- a/core/UnicodeConverter/UnicodeConverter.cpp.orig
+++ b/core/UnicodeConverter/UnicodeConverter.cpp
@@ -131,7 +131,7 @@ namespace NSUnicodeConverter
char *sResCur = sResStart;
const char *sResLimit = sResCur + nOutputLen * ucnv_getMaxCharSize(conv);
- ucnv_fromUnicode(conv, &sResCur, sResLimit, &pOutputStart, pOutputLimit, NULL, TRUE, &status);
+ ucnv_fromUnicode(conv, &sResCur, sResLimit, &pOutputStart, pOutputLimit, NULL, true, &status);
if (U_SUCCESS(status))
{
sRes = std::string(sResStart, sResCur - sResStart);
@@ -180,7 +180,7 @@ namespace NSUnicodeConverter
char *sResCur = sResStart;
const char *sResLimit = sResCur + sRes.size();
- ucnv_fromUnicode(conv, &sResCur, sResLimit, &pUCharStart, pUCharLimit, NULL, TRUE, &status);
+ ucnv_fromUnicode(conv, &sResCur, sResLimit, &pUCharStart, pUCharLimit, NULL, true, &status);
if (U_SUCCESS(status))
{
sRes.resize(sResCur - sResStart);
@@ -223,7 +223,7 @@ namespace NSUnicodeConverter
UChar* target = targetStart;
UChar* targetLimit = target + uBufSize;
- ucnv_toUnicode(conv, &target, targetLimit, &source, sourceLimit, NULL, TRUE, &status);
+ ucnv_toUnicode(conv, &target, targetLimit, &source, sourceLimit, NULL, true, &status);
if (U_SUCCESS(status))
{
size_t nTargetSize = target - targetStart;
@@ -278,7 +278,7 @@ namespace NSUnicodeConverter
UChar* target = targetStart;
UChar* targetLimit = target + uBufSize;
- ucnv_toUnicode(conv, &target, targetLimit, &source, sourceLimit, NULL, TRUE, &status);
+ ucnv_toUnicode(conv, &target, targetLimit, &source, sourceLimit, NULL, true, &status);
if (U_SUCCESS(status))
{
size_t nTargetSize = target - targetStart;

View file

@ -0,0 +1,41 @@
diff --git a/server/Makefile.orig b/server/Makefile
index e8e1308..cd01a39 100644
--- a/server/Makefile.orig
+++ b/server/Makefile
@@ -141,7 +141,6 @@ clean:
install:
mkdir -pv ${DESTDIR}/var/www/onlyoffice
- if ! id -u onlyoffice > /dev/null 2>&1; then useradd -m -d /var/www/onlyoffice -r -U onlyoffice; fi
mkdir -p ${DESTDIR}${DOCUMENT_ROOT}/fonts
mkdir -p ${DESTDIR}/var/log/onlyoffice/documentserver
@@ -151,10 +150,6 @@ install:
mkdir -p ${DESTDIR}/etc/onlyoffice/documentserver
mv ${DESTDIR}${DOCUMENT_ROOT}/server/Common/config/* ${DESTDIR}/etc/onlyoffice/documentserver
- chown onlyoffice:onlyoffice -R ${DESTDIR}/var/www/onlyoffice
- chown onlyoffice:onlyoffice -R ${DESTDIR}/var/log/onlyoffice
- chown onlyoffice:onlyoffice -R ${DESTDIR}/var/lib/onlyoffice
-
# Make symlinks for shared libs
find \
${DESTDIR}${DOCUMENT_ROOT}/server/FileConverter/bin \
@@ -162,7 +157,7 @@ install:
-name *$(SHARED_EXT) \
-exec sh -c 'ln -sf {} ${DESTDIR}/lib/$$(basename {})' \;
- sudo -u onlyoffice "${DESTDIR}${DOCUMENT_ROOT}/server/tools/allfontsgen"\
+ "${DESTDIR}${DOCUMENT_ROOT}/server/tools/allfontsgen"\
--input="${DESTDIR}${DOCUMENT_ROOT}/core-fonts"\
--allfonts-web="${DESTDIR}${DOCUMENT_ROOT}/sdkjs/common/AllFonts.js"\
--allfonts="${DESTDIR}${DOCUMENT_ROOT}/server/FileConverter/bin/AllFonts.js"\
@@ -171,7 +166,7 @@ install:
--output-web="${DESTDIR}${DOCUMENT_ROOT}/fonts"\
--use-system="true"
- sudo -u onlyoffice "${DESTDIR}${DOCUMENT_ROOT}/server/tools/allthemesgen"\
+ "${DESTDIR}${DOCUMENT_ROOT}/server/tools/allthemesgen"\
--converter-dir="${DESTDIR}${DOCUMENT_ROOT}/server/FileConverter/bin"\
--src="${DESTDIR}${DOCUMENT_ROOT}/sdkjs/slide/themes"\
--output="${DESTDIR}${DOCUMENT_ROOT}/sdkjs/common/Images"

View file

@ -0,0 +1,90 @@
diff --git a/server/DocService/sources/server.js b/server/DocService/sources/server.js
index 5c744f6..edfb423 100644
--- a/server/DocService/sources/server.js
+++ b/server/DocService/sources/server.js
@@ -110,7 +110,6 @@ if (!(cfgTokenEnableBrowser && cfgTokenEnableRequestInbox && cfgTokenEnableReque
if (!tenantManager.isMultitenantMode()) {
updateLicense();
- fs.watchFile(cfgLicenseFile, updateLicense);
setInterval(updateLicense, 86400000);
}
diff --git a/server/Makefile b/server/Makefile
index e8e1308..23f7e2e 100644
--- a/server/Makefile
+++ b/server/Makefile
@@ -87,7 +87,7 @@ DEBUG = $(BRANDING_DIR)/debug.js
.PHONY: all clean install uninstall build-date
.NOTPARALLEL:
-all: $(SPELLCHECKER_DICTIONARIES) $(TOOLS) $(SCHEMA) $(CORE_FONTS) $(DOCUMENT_TEMPLATES) $(LICENSE) $(WELCOME) $(INFO) build-date
+all: $(SCHEMA) $(LICENSE) $(WELCOME) $(INFO) build-date
build-date: $(GRUNT_FILES)
sed "s|\(const buildVersion = \).*|\1'${PRODUCT_VERSION}';|" -i $(COMMON_DEFINES_JS)
diff --git a/server/Common/sources/constants.js.orig b/server/Common/sources/constants.js
index b9c2906..4124680 100644
--- a/server/Common/sources/constants.js.orig
+++ b/server/Common/sources/constants.js
@@ -84,7 +84,7 @@ exports.LICENSE_RESULT = {
UsersViewCountOS: 15
};
-exports.LICENSE_CONNECTIONS = 20;
+exports.LICENSE_CONNECTIONS = 9999;
exports.LICENSE_EXPIRE_USERS_ONE_DAY = 24 * 60 * 60; // day in seconds
exports.AVS_OFFICESTUDIO_FILE_UNKNOWN = 0x0000;
diff --git a/server/Common/sources/license.js.orig b/server/Common/sources/license.js
index 1b617c6..fc72302 100644
--- a/server/Common/sources/license.js.orig
+++ b/server/Common/sources/license.js
@@ -45,24 +45,24 @@ exports.readLicense = function*() {
count: 1,
type: c_LR.Success,
light: false,
- packageType: constants.PACKAGE_TYPE_OS,
+ packageType: constants.PACKAGE_TYPE_I,
mode: constants.LICENSE_MODE.None,
- branding: false,
+ branding: true,
connections: constants.LICENSE_CONNECTIONS,
connectionsView: constants.LICENSE_CONNECTIONS,
- customization: false,
- advancedApi: false,
- usersCount: 0,
- usersViewCount: 0,
+ customization: true,
+ advancedApi: true,
+ usersCount: constants.LICENSE_CONNECTIONS,
+ usersViewCount: constants.LICENSE_CONNECTIONS,
usersExpire: constants.LICENSE_EXPIRE_USERS_ONE_DAY,
- hasLicense: false,
- plugins: false,
+ hasLicense: true,
+ plugins: true,
buildDate: oBuildDate,
startDate: startDate,
- endDate: null,
+ endDate: new Date("2099-01-01T23:59:59.000Z"),
customerId: "",
- alias: ""
+ alias: "community"
}, null];
};
-exports.packageType = constants.PACKAGE_TYPE_OS;
+exports.packageType = constants.PACKAGE_TYPE_I;
diff --git a/server/FileConverter/sources/convertermaster.js.orig b/server/FileConverter/sources/convertermaster.js
index 2a0b366..96468f9 100644
--- a/server/FileConverter/sources/convertermaster.js.orig
+++ b/server/FileConverter/sources/convertermaster.js
@@ -93,7 +93,6 @@ if (cluster.isMaster) {
updateLicense();
if (!tenantManager.isMultitenantMode()) {
- fs.watchFile(cfgLicenseFile, updateLicense);
setInterval(updateLicense, 86400000);
}
} else {

View file

@ -0,0 +1,51 @@
From 692bef4561ef9978c6b8663dd618211bf526b69f Mon Sep 17 00:00:00 2001
From: Beeant <huangxb0512@gmail.com>
Date: Sat, 24 Sep 2022 21:39:36 +0800
Subject: [PATCH] build: license
---
apps/documenteditor/mobile/src/lib/web-apps/patch.jsx | 2 +-
apps/presentationeditor/mobile/src/lib/web-apps/patch.jsx | 2 +-
apps/spreadsheeteditor/mobile/src/lib/web-apps/patch.jsx | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/web-apps/apps/documenteditor/mobile/src/lib/web-apps/patch.jsx b/apps/documenteditor/mobile/src/lib/patch.jsx
index 963aca451..1ee48e856 100644
--- a/web-apps/apps/documenteditor/mobile/src/lib/web-apps/patch.jsx
+++ b/web-apps/apps/documenteditor/mobile/src/lib/patch.jsx
@@ -4,7 +4,7 @@ const EditorUIController = () => {
};
EditorUIController.isSupportEditFeature = () => {
- return false
+ return true
};
EditorUIController.getToolbarOptions = () => {
diff --git a/web-apps/apps/presentationeditor/mobile/src/lib/web-apps/patch.jsx b/apps/presentationeditor/mobile/src/lib/patch.jsx
index ec7b37a2c..bfd879583 100644
--- a/web-apps/apps/presentationeditor/mobile/src/lib/web-apps/patch.jsx
+++ b/web-apps/apps/presentationeditor/mobile/src/lib/patch.jsx
@@ -1,6 +1,6 @@
const EditorUIController = () => null;
-EditorUIController.isSupportEditFeature = () => false;
+EditorUIController.isSupportEditFeature = () => true;
export default EditorUIController;
diff --git a/web-apps/apps/spreadsheeteditor/mobile/src/lib/web-apps/patch.jsx b/apps/spreadsheeteditor/mobile/src/lib/patch.jsx
index ec7b37a2c..bfd879583 100644
--- a/web-apps/apps/spreadsheeteditor/mobile/src/lib/web-apps/patch.jsx
+++ b/web-apps/apps/spreadsheeteditor/mobile/src/lib/patch.jsx
@@ -1,6 +1,6 @@
const EditorUIController = () => null;
-EditorUIController.isSupportEditFeature = () => false;
+EditorUIController.isSupportEditFeature = () => true;
export default EditorUIController;
--
2.31.1.windows.1