diff --git a/nixos/modules/services/web-apps/onlyoffice.nix b/nixos/modules/services/web-apps/onlyoffice.nix index 526ef9269645..d56e7855775d 100644 --- a/nixos/modules/services/web-apps/onlyoffice.nix +++ b/nixos/modules/services/web-apps/onlyoffice.nix @@ -50,7 +50,7 @@ in package = lib.mkPackageOption pkgs "onlyoffice-documentserver" { }; - x2t = lib.mkPackageOption pkgs "x2t" { }; + x2t = lib.mkPackageOption pkgs "onlyoffice-documentserver.passthru.x2t" { }; port = lib.mkOption { type = lib.types.port; diff --git a/pkgs/by-name/x2/x2t/common-cpp20.patch b/pkgs/by-name/on/onlyoffice-documentserver/common-cpp20.patch similarity index 100% rename from pkgs/by-name/x2/x2t/common-cpp20.patch rename to pkgs/by-name/on/onlyoffice-documentserver/common-cpp20.patch diff --git a/pkgs/by-name/x2/x2t/common-pole-c20.patch b/pkgs/by-name/on/onlyoffice-documentserver/common-pole-c20.patch similarity index 100% rename from pkgs/by-name/x2/x2t/common-pole-c20.patch rename to pkgs/by-name/on/onlyoffice-documentserver/common-pole-c20.patch diff --git a/pkgs/by-name/x2/x2t/common-v8-no-compress-pointers.patch b/pkgs/by-name/on/onlyoffice-documentserver/common-v8-no-compress-pointers.patch similarity index 100% rename from pkgs/by-name/x2/x2t/common-v8-no-compress-pointers.patch rename to pkgs/by-name/on/onlyoffice-documentserver/common-v8-no-compress-pointers.patch diff --git a/pkgs/by-name/x2/x2t/common-v8-no-snapshots.patch b/pkgs/by-name/on/onlyoffice-documentserver/common-v8-no-snapshots.patch similarity index 100% rename from pkgs/by-name/x2/x2t/common-v8-no-snapshots.patch rename to pkgs/by-name/on/onlyoffice-documentserver/common-v8-no-snapshots.patch diff --git a/pkgs/by-name/x2/x2t/core-fontengine-custom-fonts-paths.patch b/pkgs/by-name/on/onlyoffice-documentserver/core-fontengine-custom-fonts-paths.patch similarity index 100% rename from pkgs/by-name/x2/x2t/core-fontengine-custom-fonts-paths.patch rename to pkgs/by-name/on/onlyoffice-documentserver/core-fontengine-custom-fonts-paths.patch diff --git a/pkgs/by-name/x2/x2t/cximage-types.patch b/pkgs/by-name/on/onlyoffice-documentserver/cximage-types.patch similarity index 100% rename from pkgs/by-name/x2/x2t/cximage-types.patch rename to pkgs/by-name/on/onlyoffice-documentserver/cximage-types.patch diff --git a/pkgs/by-name/x2/x2t/doctrenderer-format-security.patch b/pkgs/by-name/on/onlyoffice-documentserver/doctrenderer-format-security.patch similarity index 100% rename from pkgs/by-name/x2/x2t/doctrenderer-format-security.patch rename to pkgs/by-name/on/onlyoffice-documentserver/doctrenderer-format-security.patch diff --git a/pkgs/by-name/x2/x2t/doctrenderer-v8-iterator.patch b/pkgs/by-name/on/onlyoffice-documentserver/doctrenderer-v8-iterator.patch similarity index 100% rename from pkgs/by-name/x2/x2t/doctrenderer-v8-iterator.patch rename to pkgs/by-name/on/onlyoffice-documentserver/doctrenderer-v8-iterator.patch diff --git a/pkgs/by-name/x2/x2t/doctrenderer-v8-test.patch b/pkgs/by-name/on/onlyoffice-documentserver/doctrenderer-v8-test.patch similarity index 100% rename from pkgs/by-name/x2/x2t/doctrenderer-v8-test.patch rename to pkgs/by-name/on/onlyoffice-documentserver/doctrenderer-v8-test.patch diff --git a/pkgs/by-name/x2/x2t/fontengine-format-security.patch b/pkgs/by-name/on/onlyoffice-documentserver/fontengine-format-security.patch similarity index 100% rename from pkgs/by-name/x2/x2t/fontengine-format-security.patch rename to pkgs/by-name/on/onlyoffice-documentserver/fontengine-format-security.patch diff --git a/pkgs/by-name/x2/x2t/ofdfile-test.patch b/pkgs/by-name/on/onlyoffice-documentserver/ofdfile-test.patch similarity index 100% rename from pkgs/by-name/x2/x2t/ofdfile-test.patch rename to pkgs/by-name/on/onlyoffice-documentserver/ofdfile-test.patch diff --git a/pkgs/by-name/on/onlyoffice-documentserver/package.nix b/pkgs/by-name/on/onlyoffice-documentserver/package.nix index 61f9d7e50ae8..7a300dd81102 100644 --- a/pkgs/by-name/on/onlyoffice-documentserver/package.nix +++ b/pkgs/by-name/on/onlyoffice-documentserver/package.nix @@ -1,6 +1,7 @@ { buildFHSEnv, buildNpmPackage, + callPackage, dpkg, fetchFromGitHub, fetchurl, @@ -13,18 +14,18 @@ stdenv, vips, writeScript, - x2t, extra-fonts ? [ ], }: let - version = "9.2.1"; + version = "9.3.1"; + x2t = callPackage ./x2t.nix { }; server-src = fetchFromGitHub { owner = "ONLYOFFICE"; repo = "server"; - tag = "v9.2.1.1"; - hash = "sha256-McG+PGL+ZmmnInuBhqVqMeX0o36/LbC0C5vQA1TDjO8="; + tag = "v9.3.1.1"; + hash = "sha256-uN1L/4I7wrg0BqAAu3zdn8LqtdfJDAHnAMbCvzQnOvI="; }; common = buildNpmPackage (finalAttrs: { name = "onlyoffice-server-Common"; @@ -50,7 +51,7 @@ let buildInputs = [ vips.dev ]; - npmDepsHash = "sha256-4t3wrO+Tt3bTRzmvB+tbVr5D3fXpn7CCU7+dNRc7xEo="; + npmDepsHash = "sha256-eD7hyeIcSL0nLcmBE5+gDJcjT+LdUaqIZ+g5sPcn8HQ="; npmFlags = [ "--loglevel=verbose" ]; dontNpmBuild = true; postInstall = '' @@ -67,7 +68,7 @@ let sourceRoot = "${finalAttrs.src.name}/FileConverter"; - npmDepsHash = "sha256-JKZqbpVBNe6dwxsTg8WqlJAlAqOYmqm+LyWgIxpRb8k="; + npmDepsHash = "sha256-zGLZBbQYV2z0HgQKISKVhclRKbMB8RYEX13H0mB6qJw="; dontNpmBuild = true; @@ -132,13 +133,13 @@ let # var/www/onlyoffice/documentserver/server/DocService/docservice onlyoffice-documentserver = stdenv.mkDerivation { pname = "onlyoffice-documentserver"; - version = "9.2.1"; + version = "9.3.1"; src = fetchFromGitHub { owner = "ONLYOFFICE"; repo = "document-server-package"; - tag = "v9.2.1.13"; - hash = "sha256-jyXSYkWu63vdeWsRm1Pl/3p3jRjasj0whzN0CytdHks="; + tag = "v9.3.1.11"; + hash = "sha256-AUXOiI6yRjbkSyCFbqMchGba5wiwQOVl1ciFXuWUOd4="; }; buildPhase = '' @@ -190,12 +191,16 @@ let passthru = { inherit + x2t x2t-with-fonts-and-themes common docservice fileconverter ; - tests = nixosTests.onlyoffice; + tests = { + nixosTest = nixosTests.onlyoffice; + } + // x2t.tests; fhs = buildFHSEnv { name = "onlyoffice-wrapper"; diff --git a/pkgs/by-name/x2/x2t/pdffile-limits-include.patch b/pkgs/by-name/on/onlyoffice-documentserver/pdffile-limits-include.patch similarity index 100% rename from pkgs/by-name/x2/x2t/pdffile-limits-include.patch rename to pkgs/by-name/on/onlyoffice-documentserver/pdffile-limits-include.patch diff --git a/pkgs/by-name/x2/x2t/v8_updates.patch b/pkgs/by-name/on/onlyoffice-documentserver/v8_updates.patch similarity index 100% rename from pkgs/by-name/x2/x2t/v8_updates.patch rename to pkgs/by-name/on/onlyoffice-documentserver/v8_updates.patch diff --git a/pkgs/by-name/on/onlyoffice-documentserver/versions.json b/pkgs/by-name/on/onlyoffice-documentserver/versions.json new file mode 100644 index 000000000000..84ec2a43e4c0 --- /dev/null +++ b/pkgs/by-name/on/onlyoffice-documentserver/versions.json @@ -0,0 +1,6 @@ +{ + "DocumentServer": { + "version": "9.2.0", + "hash": "xxx" + } +} diff --git a/pkgs/by-name/x2/x2t/web-apps-avoid-phantomjs.patch b/pkgs/by-name/on/onlyoffice-documentserver/web-apps-avoid-phantomjs.patch similarity index 100% rename from pkgs/by-name/x2/x2t/web-apps-avoid-phantomjs.patch rename to pkgs/by-name/on/onlyoffice-documentserver/web-apps-avoid-phantomjs.patch diff --git a/pkgs/by-name/x2/x2t/web-apps-mobile-no-spinner.patch b/pkgs/by-name/on/onlyoffice-documentserver/web-apps-mobile-no-spinner.patch similarity index 100% rename from pkgs/by-name/x2/x2t/web-apps-mobile-no-spinner.patch rename to pkgs/by-name/on/onlyoffice-documentserver/web-apps-mobile-no-spinner.patch diff --git a/pkgs/by-name/x2/x2t/web-apps-no-mobile.patch b/pkgs/by-name/on/onlyoffice-documentserver/web-apps-no-mobile.patch similarity index 100% rename from pkgs/by-name/x2/x2t/web-apps-no-mobile.patch rename to pkgs/by-name/on/onlyoffice-documentserver/web-apps-no-mobile.patch diff --git a/pkgs/by-name/x2/x2t/package.nix b/pkgs/by-name/on/onlyoffice-documentserver/x2t.nix similarity index 91% rename from pkgs/by-name/x2/x2t/package.nix rename to pkgs/by-name/on/onlyoffice-documentserver/x2t.nix index 2d6595ac45c8..26d1d20ea9db 100644 --- a/pkgs/by-name/x2/x2t/package.nix +++ b/pkgs/by-name/on/onlyoffice-documentserver/x2t.nix @@ -25,7 +25,7 @@ stdenv, writers, writeScript, - x2t, + onlyoffice-documentserver, grunt-cli, }: @@ -50,21 +50,21 @@ let "QMAKE_LFLAGS+=-licudata" "QMAKE_LFLAGS+=-L${icu}/lib" ]; - # see core/Common/3dParty/html/fetch.py + # see DocumentServer/core/Common/3dParty/html/fetch.py gumbo-parser-src = fetchFromGitHub { owner = "google"; repo = "gumbo-parser"; rev = "aa91b27b02c0c80c482e24348a457ed7c3c088e0"; hash = "sha256-+607iXJxeWKoCwb490pp3mqRZ1fWzxec0tJOEFeHoCs="; }; - # see core/Common/3dParty/html/fetch.sh + # see DocumentServer/core/Common/3dParty/html/fetch.py katana-parser-src = fetchFromGitHub { owner = "jasenhuang"; repo = "katana-parser"; rev = "be6df458d4540eee375c513958dcb862a391cdd1"; hash = "sha256-SYJFLtrg8raGyr3zQIEzZDjHDmMmt+K0po3viipZW5c="; }; - # see build_tools scripts/core_common/modules/googletest.py + # see build_tools/scripts/core_common/modules/googletest.py googletest-src = fetchFromGitHub { owner = "google"; repo = "googletest"; @@ -72,49 +72,49 @@ let hash = "sha256-LVLEn+e7c8013pwiLzJiiIObyrlbBHYaioO/SWbItPQ="; }; # 'latest' version - # (see build_tools scripts/core_common/modules/hyphen.py) + # (see build_tools/scripts/core_common/modules/hyphen.py) hyphen-src = fetchFromGitHub { owner = "hunspell"; repo = "hyphen"; rev = "73dd2967c8e1e4f6d7334ee9e539a323d6e66cbd"; hash = "sha256-WIHpSkOwHkhMvEKxOlgf6gsPs9T3xkzguD8ONXARf1U="; }; - # core/Common/3dParty/md/fetch.py + # see DocumentServer/core/Common/3dParty/md/fetch.py md4c-src = fetchFromGitHub { owner = "mity"; repo = "md4c"; rev = "481fbfbdf72daab2912380d62bb5f2187d438408"; hash = "sha256-zhInM3R0CJUqnzh6wRxMwlUdErovplbZQ5IwXe9XzZ4="; }; - # core/Common/3dParty/apple/fetch.py + # see DocumentServer/core/Common/3dParty/apple/fetch.py glm-src = fetchFromGitHub { owner = "g-truc"; repo = "glm"; rev = "33b4a621a697a305bc3a7610d290677b96beb181"; hash = "sha256-wwGI17vlQzL/x1O0ANr5+KgU1ETnATpLw3njpKfjnKQ="; }; - # core/Common/3dParty/apple/fetch.py + # see DocumentServer/core/Common/3dParty/apple/fetch.py mdds-src = fetchFromGitHub { owner = "kohei-us"; repo = "mdds"; rev = "0783158939c6ce4b0b1b89e345ab983ccb0f0ad0"; hash = "sha256-HMGMxMRO6SadisUjZ0ZNBGQqksNDFkEh3yaQGet9rc0="; }; - # core/Common/3dParty/apple/fetch.py + # see DocumentServer/core/Common/3dParty/apple/fetch.py librevenge-src = fetchFromGitHub { owner = "DistroTech"; repo = "librevenge"; rev = "becd044b519ab83893ad6398e3cbb499a7f0aaf4"; hash = "sha256-2YRxuMYzKvvQHiwXH08VX6GRkdXnY7q05SL05Vbn0Vs="; }; - # core/Common/3dParty/apple/fetch.py + # see DocumentServer/core/Common/3dParty/apple/fetch.py libodfgen-src = fetchFromGitHub { owner = "DistroTech"; repo = "libodfgen"; rev = "8ef8c171ebe3c5daebdce80ee422cf7bb96aa3bc"; hash = "sha256-Bv/smZFmZn4PEAcOlXD2Z4k96CK7A7YGDHFDsqZpuiE="; }; - # core/Common/3dParty/apple/fetch.py + # see DocumentServer/core/Common/3dParty/apple/fetch.py libetonyek-src = fetchFromGitHub { owner = "LibreOffice"; repo = "libetonyek"; @@ -127,14 +127,14 @@ let # x2t is not 'directly' versioned, so we version it after the version # of documentserver it's pulled into as a submodule - version = "9.2.1"; - core-rev = "a22f0bfb6032e91f218951ef1c0fc29f6d1ceb36"; + version = "9.3.1"; + core-rev = "7043b3609328e917a4791aec8f3e8fca3225120f"; core = fetchFromGitHub { owner = "ONLYOFFICE"; repo = "core"; # rev that the 'core' submodule in documentserver points at rev = core-rev; - hash = "sha256-RSoCRcUGnavcNdZEfmBdtxJbEXhiOvbA8IwSeGBkWcs="; + hash = "sha256-tCYc5R0dlEBoEaUo3DY6GCDJjoBZIaz8Syik0Z30s/s="; }; # mini implementation of https://github.com/kentcdodds/cross-env # because that was not trivial to package and we don't need most @@ -156,8 +156,8 @@ let subprocess.run(cmd, env=env) ''; # rev that the 'web-apps' submodule in documentserver points at - web-apps-rev = "c2074bbff69902490d49fa7fb511801a11c581f4"; - web-apps-hash = "sha256-i+m8a1b8RaVmyUAC+FiEdSyXmPWse9XaJaaLL7iq73o="; + web-apps-rev = "1c8ca9987876bada73c0bde21367da09c0e1ed83"; + web-apps-hash = "sha256-1OniYHaf5kMVYJbEThkeuWfJPxaJoaYqiHaBTi/euAc="; web-apps-mobile = buildNpmPackage (finalAttrs: { name = "web-apps-mobile"; @@ -257,6 +257,12 @@ let # for device_scale.js chmod u+rwx ../.. ln -s ${sdkjs.src} ../../sdkjs + + echo "Merging and checking translation files" + cd ../translation + chmod u+rwx ../apps/*/main/locale/* + ${python3}/bin/python3 merge_and_check.py + cd - ''; postBuild = '' @@ -275,6 +281,9 @@ let mv ../deploy/web-apps $out + # e.g. formats@2.5x.svg + cp -r ../apps/common/main/resources/img/doc-formats/* $out/apps/common/main/resources/img/doc-formats + for component in documenteditor spreadsheeteditor presentationeditor visioeditor; do ln -s ${web-apps-mobile}/$component/mobile/css $out/apps/$component/mobile/css rm -r $out/apps/$component/mobile/dist @@ -291,8 +300,8 @@ let owner = "ONLYOFFICE"; repo = "sdkjs"; # rev that the 'sdkjs' submodule in documentserver points at - rev = "1e81e7e844fcc602c639067cce7d7726749dc11b"; - hash = "sha256-9vDGU8paLUAk3GtLbawhog2EDtCVHzNPBjkryxyg6Gs="; + rev = "aa78926242b3da023255d9c7e9180e5a3294167b"; + hash = "sha256-wZh4TH7+f1dr8sx2C3k3U8zRWLBxmKx8MocLBbPdhJA="; }; sourceRoot = "${finalAttrs.src.name}/build"; @@ -465,6 +474,7 @@ let libheif.lib x265 libde265 + boost ]; preConfigure = '' ln -s ${katana-parser-src} $BUILDRT/Common/3dParty/html/katana-parser @@ -519,9 +529,6 @@ let buildInputs = [ boost ]; }; xlsformatlib = buildCoreComponent "MsBinaryFile/Projects/XlsFormatLib/Linux" { - patches = [ - ./MsBinaryFile-pragma-regions.patch - ]; buildInputs = [ boost ]; }; docformatlib = buildCoreComponent "MsBinaryFile/Projects/DocFormatLib/Linux" { @@ -585,8 +592,25 @@ let odfformatlib = buildCoreComponent "OdfFile/Projects/Linux" { buildInputs = [ boost ]; }; + starmath = buildCoreComponent "OdfFile/Reader/Converter/StarMath2OOXML" { + buildInputs = [ + kernel + boost + ]; + preConfigure = '' + source ${fixIcu} + ''; + passthru.tests = buildCoreTests "OdfFile/Reader/Converter/StarMath2OOXML/TestSMConverter" { + buildInputs = [ starmath ]; + preConfigure = '' + source ${fixIcu} + ln -s ${googletest-src} $BUILDRT/Common/3dParty/googletest/googletest + ''; + }; + }; hwpfile = buildCoreComponent "HwpFile" { buildInputs = [ + starmath cryptopp kernel unicodeConverter @@ -805,6 +829,26 @@ let ''; }; }; + ooxmlsignature = buildCoreComponent "DesktopEditor/xmlsec/src" { + buildInputs = [ + kernel + ]; + preConfigure = '' + mkdir -p $BUILDRT/Common/3dParty/openssl/build/linux_64/lib + for i in ${openssl'.out}/lib/*; do + ln -s $i $BUILDRT/Common/3dParty/openssl/build/linux_64/lib/$(basename $i) + done + ''; + passthru.tests = buildCoreTests "DesktopEditor/xmlsec/src/test" { + buildInputs = [ + kernel + ooxmlsignature + ]; + preConfigure = '' + source ${fixIcu} + ''; + }; + }; allfontsgen = buildCoreComponent "DesktopEditor/AllFontsGen" { buildInputs = [ unicodeConverter @@ -906,6 +950,8 @@ buildCoreComponent "X2tConverter/build/Qt" { ofdfile vbaformatlib odfformatlib + starmath + ooxmlsignature ]; qmakeFlags = qmakeFlags ++ icuQmakeFlags ++ [ "X2tConverter.pro" ]; preConfigure = '' @@ -946,8 +992,10 @@ buildCoreComponent "X2tConverter/build/Qt" { docxrenderer = docxrenderer.tests; doctrenderer = doctrenderer.tests; ofdfile = ofdfile.tests; + starmath = starmath.tests; + ooxmlsignature = ooxmlsignature.tests; x2t = runCommand "x2t-test" { } '' - (${x2t}/bin/x2t || true) | grep "OOX/binary file converter." && mkdir -p $out + (${onlyoffice-documentserver.x2t}/bin/x2t || true) | grep "OOX/binary file converter." && mkdir -p $out ''; nixos-module = nixosTests.onlyoffice; }; diff --git a/pkgs/by-name/x2/x2t/xlsx-missing-import.patch b/pkgs/by-name/on/onlyoffice-documentserver/xlsx-missing-import.patch similarity index 100% rename from pkgs/by-name/x2/x2t/xlsx-missing-import.patch rename to pkgs/by-name/on/onlyoffice-documentserver/xlsx-missing-import.patch diff --git a/pkgs/by-name/x2/x2t/zlib-cstd.patch b/pkgs/by-name/on/onlyoffice-documentserver/zlib-cstd.patch similarity index 100% rename from pkgs/by-name/x2/x2t/zlib-cstd.patch rename to pkgs/by-name/on/onlyoffice-documentserver/zlib-cstd.patch diff --git a/pkgs/by-name/x2/x2t/MsBinaryFile-pragma-regions.patch b/pkgs/by-name/x2/x2t/MsBinaryFile-pragma-regions.patch deleted file mode 100644 index d167c51e3a3d..000000000000 --- a/pkgs/by-name/x2/x2t/MsBinaryFile-pragma-regions.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/StringPtgParser.cpp b/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/StringPtgParser.cpp -index 08f56fb64e..dfbc4e4e15 100644 ---- a/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/StringPtgParser.cpp -+++ b/MsBinaryFile/XlsFile/Format/Logic/Biff_structures/StringPtgParser.cpp -@@ -73,7 +73,6 @@ const bool StringPtgParser::parseToPtgs(const std::wstring& assembled_formula, R - - for(std::wstring::const_iterator it = assembled_formula.begin(), itEnd = assembled_formula.end(); it != itEnd;) - { -- #pragma region Operators - if(SyntaxPtg::is_operators(it, itEnd) || SyntaxPtg::is_PtgIsect(it, itEnd)) - { - OperatorPtgPtr found_operator; -@@ -182,8 +181,6 @@ const bool StringPtgParser::parseToPtgs(const std::wstring& assembled_formula, R - ptg_stack.push(found_operator); - last_ptg = found_operator; - } -- #pragma endregion -- #pragma region Parenthesis - else if(SyntaxPtg::extract_LeftParenthesis(it, itEnd)) - { - PtgFuncPtr func; -@@ -246,8 +243,6 @@ const bool StringPtgParser::parseToPtgs(const std::wstring& assembled_formula, R - rgce.addPtg(last_ptg); - operand_expected = false; - } -- #pragma endregion -- #pragma region Comma and PtgUnion - else if(SyntaxPtg::extract_comma(it, itEnd)) - { - PtgParenPtr left_p; -@@ -271,8 +266,6 @@ const bool StringPtgParser::parseToPtgs(const std::wstring& assembled_formula, R - last_ptg = left_p; // PtgParen. Mostly to differ unary and binary minuses and pluses - operand_expected = true; - } -- #pragma endregion -- #pragma region Operands - else - { - OperandPtgPtr found_operand; -@@ -401,7 +394,6 @@ const bool StringPtgParser::parseToPtgs(const std::wstring& assembled_formula, R - last_ptg = found_operand; - operand_expected = false; - } -- #pragma endregion - } - - while(ptg_stack.size())