Update for 5.5.1.76
This commit is contained in:
parent
e85e625e55
commit
86721ea9db
5 changed files with 134 additions and 114 deletions
38
Dockerfile
38
Dockerfile
|
@ -1,5 +1,6 @@
|
|||
ARG oo_version=5.5.0.165
|
||||
ARG oo_version=5.5.1.76
|
||||
FROM onlyoffice/documentserver:$oo_version
|
||||
ARG oo_version=5.5.1.76
|
||||
|
||||
|
||||
RUN sed -is \
|
||||
|
@ -15,23 +16,30 @@ RUN sed -is \
|
|||
/var/www/onlyoffice/documentserver/web-apps/apps/spreadsheeteditor/mobile/app.js
|
||||
|
||||
|
||||
# source patching and compilation
|
||||
RUN apt-get update && apt-get install -y \
|
||||
python3-pip \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& pip3 install pycryptodome
|
||||
|
||||
|
||||
COPY license.py /tmp/
|
||||
RUN python3 /tmp/license.py
|
||||
|
||||
RUN pip3 uninstall -y pycryptodome \
|
||||
&& apt-get purge -y python3-pip \
|
||||
&& apt-get purge -y --autoremove \
|
||||
git \
|
||||
curl \
|
||||
&& curl -sL https://deb.nodesource.com/setup_10.x | bash - \
|
||||
&& apt install -y nodejs \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
COPY run-oo.sh /usr/local/bin/run-oo.sh
|
||||
RUN chmod a+x /usr/local/bin/run-oo.sh
|
||||
RUN mkdir /build
|
||||
WORKDIR /build
|
||||
|
||||
RUN git clone --branch v$oo_version --depth 1 https://github.com/ONLYOFFICE/server.git .
|
||||
|
||||
COPY license.patch /build/
|
||||
RUN patch -p1 < license.patch
|
||||
|
||||
|
||||
ENTRYPOINT [ "/usr/local/bin/run-oo.sh" ]
|
||||
RUN npm install pkg grunt-cli \
|
||||
&& make \
|
||||
&& node_modules/.bin/pkg --targets=linux build/server/FileConverter \
|
||||
&& node_modules/.bin/pkg --targets=linux build/server/DocService \
|
||||
&& cp fileconverter /var/www/onlyoffice/documentserver/server/FileConverter/converter \
|
||||
&& cp coauthoring /var/www/onlyoffice/documentserver/server/DocService/docservice
|
||||
|
||||
WORKDIR /
|
||||
RUN rm -rf /build
|
||||
|
|
|
@ -12,7 +12,6 @@ docker build \
|
|||
docker run \
|
||||
--name=onlyoffice \
|
||||
--detach \
|
||||
--volume=$(pwd)/ooData:/var/www/onlyoffice/Data onlyoffice-patched \
|
||||
onlyoffice-patched
|
||||
```
|
||||
|
||||
|
@ -32,5 +31,5 @@ advertising itself and their product as open source .
|
|||
|
||||
## Thanks
|
||||
|
||||
This repo is heavily inspired by the works of
|
||||
This repo was heavily inspired by the works of
|
||||
[Zegorax/OnlyOffice-Unlimited](https://github.com/Zegorax/OnlyOffice-Unlimited).
|
||||
|
|
110
license.patch
Normal file
110
license.patch
Normal file
|
@ -0,0 +1,110 @@
|
|||
diff --git a/Common/sources/commondefines.js b/Common/sources/commondefines.js
|
||||
index 4518ac8..34ab4e2 100644
|
||||
--- a/Common/sources/commondefines.js
|
||||
+++ b/Common/sources/commondefines.js
|
||||
@@ -970,8 +970,8 @@ const c_oAscQueueType = {
|
||||
activemq: 'activemq'
|
||||
};
|
||||
|
||||
-const buildVersion = '4.1.2';
|
||||
-const buildNumber = 37;
|
||||
+const buildVersion = '5.5.1';
|
||||
+const buildNumber = 76;
|
||||
|
||||
exports.TaskQueueData = TaskQueueData;
|
||||
exports.CMailMergeSendData = CMailMergeSendData;
|
||||
diff --git a/Common/sources/license.js b/Common/sources/license.js
|
||||
index 290d85d..c136956 100644
|
||||
--- a/Common/sources/license.js
|
||||
+++ b/Common/sources/license.js
|
||||
@@ -32,53 +32,26 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
-const config = require('config');
|
||||
-const configL = config.get('license');
|
||||
const constants = require('./constants');
|
||||
-const logger = require('./logger');
|
||||
-const editorDataStorage = require('./../../DocService/sources/' + config.get('services.CoAuthoring.server.editorDataStorage'));
|
||||
-
|
||||
const buildDate = '6/29/2016';
|
||||
const oBuildDate = new Date(buildDate);
|
||||
-const oPackageType = configL.get('packageType');
|
||||
-
|
||||
-const cfgRedisPrefix = config.get('services.CoAuthoring.redis.prefix');
|
||||
-const redisKeyLicense = cfgRedisPrefix + constants.REDIS_KEY_LICENSE;
|
||||
-
|
||||
-let editorData = new editorDataStorage();
|
||||
|
||||
exports.readLicense = function*() {
|
||||
- const c_LR = constants.LICENSE_RESULT;
|
||||
- const res = {
|
||||
+ return {
|
||||
count: 1,
|
||||
- type: c_LR.Error,
|
||||
+ type: constants.LICENSE_RESULT.Success,
|
||||
light: false,
|
||||
- packageType: oPackageType,
|
||||
+ packageType: constants.PACKAGE_TYPE_I,
|
||||
mode: constants.LICENSE_MODE.None,
|
||||
branding: false,
|
||||
- connections: constants.LICENSE_CONNECTIONS,
|
||||
+ connections: 9999,
|
||||
customization: false,
|
||||
- usersCount: 0,
|
||||
- usersExpire: constants.LICENSE_EXPIRE_USERS_ONE_DAY,
|
||||
- hasLicense: false,
|
||||
+ usersCount: 9999,
|
||||
+ usersExpire: 99999,
|
||||
+ hasLicense: true,
|
||||
plugins: false,
|
||||
buildDate: oBuildDate,
|
||||
- endDate: null
|
||||
+ endDate: "2099-01-01T23:59:59.000Z"
|
||||
};
|
||||
-
|
||||
- if (yield* _getFileState()) {
|
||||
- res.type = c_LR.ExpiredTrial;
|
||||
- }
|
||||
-
|
||||
- if (res.type === c_LR.Expired || res.type === c_LR.ExpiredTrial) {
|
||||
- res.count = 1;
|
||||
- logger.error('License: License Expired!!!');
|
||||
- }
|
||||
-
|
||||
- return res;
|
||||
};
|
||||
-exports.packageType = oPackageType;
|
||||
-
|
||||
-function* _getFileState() {
|
||||
- return yield editorData.getLicense(redisKeyLicense);
|
||||
-}
|
||||
+exports.packageType = constants.PACKAGE_TYPE_I;
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 40bf93e..7109dbd 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,4 +1,4 @@
|
||||
-GRUNT = grunt
|
||||
+GRUNT = ./node_modules/.bin/grunt
|
||||
GRUNT_FLAGS = --no-color -v
|
||||
|
||||
GRUNT_FILES = Gruntfile.js.out
|
||||
@@ -46,7 +46,7 @@ endif
|
||||
|
||||
TARGET := $(PLATFORM)_$(ARCHITECTURE)
|
||||
|
||||
-OUTPUT = ../build_tools/out/$(TARGET)/onlyoffice/documentserver/server
|
||||
+OUTPUT = build/out/$(TARGET)/onlyoffice/documentserver/server
|
||||
|
||||
SPELLCHECKER_DICTIONARIES := $(OUTPUT)/SpellChecker/dictionaries
|
||||
SPELLCHECKER_DICTIONARY_FILES += ../dictionaries/*_*
|
||||
@@ -83,7 +83,7 @@ DEBUG = $(BRANDING_DIR)/debug.js
|
||||
.PHONY: all clean install uninstall build-date
|
||||
|
||||
.NOTPARALLEL:
|
||||
-all: $(SPELLCHECKER_DICTIONARIES) $(TOOLS) $(SCHEMA) $(CORE_FONTS) $(LICENSE) $(WELCOME) $(INFO) build-date
|
||||
+all: build-date
|
||||
|
||||
build-date: $(GRUNT_FILES)
|
||||
sed "s|\(const buildVersion = \).*|\1'${PRODUCT_VERSION}';|" -i $(COMMON_DEFINES_JS)
|
87
license.py
87
license.py
|
@ -1,87 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from Crypto.Hash import SHA, SHA256
|
||||
from Crypto.Signature import PKCS1_v1_5
|
||||
from Crypto.PublicKey import RSA
|
||||
from shutil import copyfile
|
||||
import json
|
||||
import codecs
|
||||
|
||||
|
||||
|
||||
def gen_keys():
|
||||
privKey = RSA.generate(1024)
|
||||
publKey = privKey.publickey().exportKey('PEM')
|
||||
|
||||
f = open("/var/www/onlyoffice/license_key.pub", "w+")
|
||||
f.write(publKey.decode('utf-8'))
|
||||
f.close()
|
||||
|
||||
return publKey, privKey
|
||||
|
||||
|
||||
|
||||
def write_license(publKey, privKey):
|
||||
license = {
|
||||
"branding": False,
|
||||
"connections": 9999,
|
||||
"customization": False,
|
||||
"end_date": "2099-01-01T23:59:59.000Z",
|
||||
"light": "False",
|
||||
"mode": "",
|
||||
"portal_count": "0",
|
||||
"process": 2,
|
||||
"ssbranding": False,
|
||||
"test": "False",
|
||||
"trial": "False",
|
||||
"user_quota": "0",
|
||||
"users_count": 9999,
|
||||
"users_expire": 99999,
|
||||
"whiteLabel": False,
|
||||
"customer_id": "customerID",
|
||||
"start_date": "2020-01-01T00:00:00.000Z",
|
||||
"users": [],
|
||||
"version": 2
|
||||
}
|
||||
|
||||
jsonData = codecs.encode(json.dumps(license, separators=(',', ':')), encoding='utf-8')
|
||||
|
||||
digest = SHA.new(jsonData)
|
||||
signer = PKCS1_v1_5.new(privKey)
|
||||
signature = signer.sign(digest)
|
||||
finalSignature = signature.hex()
|
||||
|
||||
license['signature'] = finalSignature
|
||||
|
||||
f = open("/var/www/onlyoffice/license.lic", "w+")
|
||||
f.write(json.dumps(license))
|
||||
f.close
|
||||
|
||||
|
||||
|
||||
def patch_files():
|
||||
basePath = "/var/www/onlyoffice/documentserver/server/"
|
||||
files = ["DocService/docservice", "FileConverter/converter"]
|
||||
|
||||
for file in files:
|
||||
f = open(basePath + file, 'rb')
|
||||
data = f.read()
|
||||
f.close()
|
||||
|
||||
replacedData = data.replace(b"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRhGF7X4A0ZVlEg594WmODVVUI\niiPQs04aLmvfg8SborHss5gQXu0aIdUT6nb5rTh5hD2yfpF2WIW6M8z0WxRhwicg\nXwi80H1aLPf6lEPPLvN29EhQNjBpkFkAJUbS8uuhJEeKw0cE49g80eBBF4BCqSL6\nPFQbP9/rByxdxEoAIQIDAQAB\n-----END PUBLIC KEY-----", bytes(publKey))
|
||||
|
||||
f = open(basePath + file, 'wb')
|
||||
f.write(replacedData)
|
||||
f.close()
|
||||
|
||||
|
||||
|
||||
|
||||
print("Generating and exporting key pair...")
|
||||
publKey, privKey = gen_keys()
|
||||
|
||||
print("Writing license file...")
|
||||
write_license(publKey, privKey)
|
||||
|
||||
print("Patching document server and converter...")
|
||||
patch_files()
|
10
run-oo.sh
10
run-oo.sh
|
@ -1,10 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
|
||||
echo "Providing license"
|
||||
cp -f /var/www/onlyoffice/license.lic /var/www/onlyoffice/Data/license.lic
|
||||
|
||||
echo "Starting server"
|
||||
/app/ds/run-document-server.sh
|
||||
|
Loading…
Reference in a new issue