Update for 5.5.1.76

This commit is contained in:
Alexander Hofbauer 2020-04-17 23:03:53 +02:00
parent e85e625e55
commit 86721ea9db
No known key found for this signature in database
GPG key ID: 6ACF215317893A41
5 changed files with 134 additions and 114 deletions

View file

@ -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

View file

@ -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
View 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)

View file

@ -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()

View file

@ -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