diff --git a/build/Dockerfile b/build/Dockerfile index 5a6fc836..fb22e413 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -273,12 +273,17 @@ RUN \ # https://github.com/arachnys/athenapdf/commit/ba25a8d80a25d08d58865519c4cd8756dc9a336d. COPY build/fonts.conf /etc/fonts/conf.d/100-gotenberg.conf +# Copy dictionnaries so that hypens work on Chromium. +# See https://github.com/gotenberg/gotenberg/issues/1293. +COPY --chown=gotenberg:gotenberg build/chromium-hyphen-data /home/gotenberg/chromium-hyphen-data + # Copy the Golang binaries. COPY --from=compress-go-binaries-stage /home/pdfcpu /usr/bin/ COPY --from=compress-go-binaries-stage /home/gotenberg /usr/bin/ # Environment variables required by modules or else. ENV CHROMIUM_BIN_PATH=/usr/bin/chromium +ENV CHROMIUM_HYPHEN_DATA_DIR_PATH=/home/gotenberg/chromium-hyphen-data ENV LIBREOFFICE_BIN_PATH=/usr/lib/libreoffice/program/soffice.bin ENV UNOCONVERTER_BIN_PATH=/usr/bin/unoconverter ENV PDFTK_BIN_PATH=/usr/bin/pdftk diff --git a/build/chromium-hyphen-data/120.0.6050.0/_metadata/verified_contents.json b/build/chromium-hyphen-data/120.0.6050.0/_metadata/verified_contents.json new file mode 100644 index 00000000..b5cf5454 --- /dev/null +++ b/build/chromium-hyphen-data/120.0.6050.0/_metadata/verified_contents.json @@ -0,0 +1 @@ +[{"description":"treehash per file","signed_content":{"payload":"eyJjb250ZW50X2hhc2hlcyI6W3siYmxvY2tfc2l6ZSI6NDA5NiwiZGlnZXN0Ijoic2hhMjU2IiwiZmlsZXMiOlt7InBhdGgiOiJoeXBoLWFmLmh5YiIsInJvb3RfaGFzaCI6ImU3S1ZpWjlhODYwT3ZfdHR1dTRDME9JODlGQUNkcjR0Z01lOGhnNU1xVUkifSx7InBhdGgiOiJoeXBoLWFzLmh5YiIsInJvb3RfaGFzaCI6InduaE9NeFdLZ0hFMWhROXhKYWZxcS1SeXM4X0hyN2dzZFBBdHBwNmlVUDQifSx7InBhdGgiOiJoeXBoLWJlLmh5YiIsInJvb3RfaGFzaCI6IlpLdnllRTdIQmlLMktnYjBwRUUzVnotRmZ4RlJoQVNQcUJHeXlCbGtkaDAifSx7InBhdGgiOiJoeXBoLWJnLmh5YiIsInJvb3RfaGFzaCI6ImRaUHdPVkNCNC02eTJGRnRFSFJtQ0tfWUpzXzlUbjQzMVRrMm1UMGdDaE0ifSx7InBhdGgiOiJoeXBoLWJuLmh5YiIsInJvb3RfaGFzaCI6InduaE9NeFdLZ0hFMWhROXhKYWZxcS1SeXM4X0hyN2dzZFBBdHBwNmlVUDQifSx7InBhdGgiOiJoeXBoLWNzLmh5YiIsInJvb3RfaGFzaCI6IklnUndJWmZEOFctRjdYbExMMHJ4TTdkYTVRc3FVQlVwS2F5SkdodlVfRXcifSx7InBhdGgiOiJoeXBoLWN1Lmh5YiIsInJvb3RfaGFzaCI6ImFiWlhPbWx5T0dnSEplVWlHMkhaQURadHA3dlM2QnI3RGh3TUF0eWV4N2sifSx7InBhdGgiOiJoeXBoLWN5Lmh5YiIsInJvb3RfaGFzaCI6Ims5Y1JTUUhCNDNiNlVNaHN6cE5nN3k2cGliTVZGOFJnQjk3MmpQVGNvYkEifSx7InBhdGgiOiJoeXBoLWRhLmh5YiIsInJvb3RfaGFzaCI6IlRMZk92MjdUTFFpSDdWaFNIbDlCblQydDlKSkl1WEpDMWlFWUxRS251bGcifSx7InBhdGgiOiJoeXBoLWRlLTE5MDEuaHliIiwicm9vdF9oYXNoIjoiMHlHekNnc2tpTGI1STJoTC0yc1FCVmJMXzNCekE4VFNwSUZ6aDltd1ZsYyJ9LHsicGF0aCI6Imh5cGgtZGUtMTk5Ni5oeWIiLCJyb290X2hhc2giOiJIMGVZZHhlbDNyZU15UHRqVEt2QUI4RWFzaEFTbGpMUmhZOU83c0ljUFVRIn0seyJwYXRoIjoiaHlwaC1kZS1jaC0xOTAxLmh5YiIsInJvb3RfaGFzaCI6InpMQVlIVGVvc3IwdlBrcTc2VjdJM083b0V1cUI5M3NtSmxqNThibjZuYWMifSx7InBhdGgiOiJoeXBoLWVsLmh5YiIsInJvb3RfaGFzaCI6IjFOazV4S1JiR1ZYVElCUkVIbjB2SFJzU1VNTjZfdDAzdTVtRkwzMEtNN3MifSx7InBhdGgiOiJoeXBoLWVuLWdiLmh5YiIsInJvb3RfaGFzaCI6IlZvR2ZOaHpnajBOQ29qelhscjBQdjFSdnpFTEZJVFJ3MURRTWRUMXZiT0kifSx7InBhdGgiOiJoeXBoLWVuLXVzLmh5YiIsInJvb3RfaGFzaCI6Il94OUFGM2dFMzBLelE0bHFRU1BqLWZXWnl0bnNqLURWQVgzdDRqZEVUVXMifSx7InBhdGgiOiJoeXBoLWVzLmh5YiIsInJvb3RfaGFzaCI6IjBmdWc0YWVadDc0Z19XbEVyNUtsY1JHWkVkMzJXZFEtWFptSkxZX2xuRWsifSx7InBhdGgiOiJoeXBoLWV0Lmh5YiIsInJvb3RfaGFzaCI6ImxkUFIwUm14R3EyZ3EzNFF1Ylp6LXRlRGtvWFFibmg4VjM2bjIyRkNxY0EifSx7InBhdGgiOiJoeXBoLWV1Lmh5YiIsInJvb3RfaGFzaCI6IjRuZUtUOGU0OEdTaksycEV2Q254RGlaTm5XSVV1TzI0NjlIMTl0YU9MckkifSx7InBhdGgiOiJoeXBoLWZyLmh5YiIsInJvb3RfaGFzaCI6IjFudGF1Nm9FVUtQbWV2SFJKSkwydEc5c1FYQmxOcHFSZFJxYlZpMnJZeDAifSx7InBhdGgiOiJoeXBoLWdhLmh5YiIsInJvb3RfaGFzaCI6ImxGLVlGb3VwcUItempfM1ZadFc0aEw4Uk51Ql9YREpna0p2N1VMMFJFc1kifSx7InBhdGgiOiJoeXBoLWdsLmh5YiIsInJvb3RfaGFzaCI6IlJBU1hfb0MxVzFDUmtOYURETC0xZVoxYnYyS0c0Y2hfWE1jUEU4cXRpY1kifSx7InBhdGgiOiJoeXBoLWd1Lmh5YiIsInJvb3RfaGFzaCI6InJ3N2JaOElobTRBOFByYkIzdWJ5MUJvXzRBUm9xZHFMNk85UVZ0Y0JxX00ifSx7InBhdGgiOiJoeXBoLWhpLmh5YiIsInJvb3RfaGFzaCI6IjlOOGlUVVdmMFJGcGpkV2hOaFBGdV9EdEVmQkNlTllDTU5Bb0FRNnNERUkifSx7InBhdGgiOiJoeXBoLWhyLmh5YiIsInJvb3RfaGFzaCI6IjFmQm1wV1ZfSFh3NTBGT1ZiZklFdDVKdlFOTC1UMmxYT3ZDZGtKQm00bXcifSx7InBhdGgiOiJoeXBoLWh1Lmh5YiIsInJvb3RfaGFzaCI6InExWmRIaTR3VElWbFFiSHhVdW5NVEJaaEMya29JWTg1d3pUTnE0aUhTVlEifSx7InBhdGgiOiJoeXBoLWh5Lmh5YiIsInJvb3RfaGFzaCI6Im16VGZ5b1hMSjFSb0tmRUU4VGQxZnZzblNUVEI2ZFNaSDFXdFZrbGlwMm8ifSx7InBhdGgiOiJoeXBoLWl0Lmh5YiIsInJvb3RfaGFzaCI6Ii1jQW4xXzFFc0J6VjRjMzRBdUlNWTFZR2N3bUs4WXZxQ1RDNm12TTA0UGMifSx7InBhdGgiOiJoeXBoLWthLmh5YiIsInJvb3RfaGFzaCI6IlZoTFVGQnBOSDg5RDU2WXVPRmx4dnRqTTBJcjZfVTRLMUJacXB6NzVmaTAifSx7InBhdGgiOiJoeXBoLWtuLmh5YiIsInJvb3RfaGFzaCI6Iks1bWRDaFV2Z0VZQnFvODRfdzA2YmxsSmwzdngycWR2cUlpc3JpRlNZb2MifSx7InBhdGgiOiJoeXBoLWxhLmh5YiIsInJvb3RfaGFzaCI6Il9VdHZOaE5jMDdreTQxRHNJQmZmMkowdU5xd2liMVRreVBMa3ZHMndXVDAifSx7InBhdGgiOiJoeXBoLWx0Lmh5YiIsInJvb3RfaGFzaCI6Il9pbnpod2o5ZEtMZ3NOeDdVOHV1TGE4WVlXZUFnZVZQb2pVVUJ2eVZPUkUifSx7InBhdGgiOiJoeXBoLWx2Lmh5YiIsInJvb3RfaGFzaCI6Imtkc0Ytd1FuNHpQQzNySW83ekw0UUZLNlJ4NkNZVjZmVkhzd3dBM0tDV2MifSx7InBhdGgiOiJoeXBoLW1sLmh5YiIsInJvb3RfaGFzaCI6ImtGY3R1UFNiQWV4cUVDY3l6ZkZQd19COU5qeS1EU1lSQS1XREJERms2SWcifSx7InBhdGgiOiJoeXBoLW1uLWN5cmwuaHliIiwicm9vdF9oYXNoIjoiMm5yb3g2UFNHU19XQ1FZWUk3SnZ0cWwxMlhjUHVTd3UxMk1aS2VMT1QzayJ9LHsicGF0aCI6Imh5cGgtbXIuaHliIiwicm9vdF9oYXNoIjoiOU44aVRVV2YwUkZwamRXaE5oUEZ1X0R0RWZCQ2VOWUNNTkFvQVE2c0RFSSJ9LHsicGF0aCI6Imh5cGgtbXVsLWV0aGkuaHliIiwicm9vdF9oYXNoIjoiOHZyQnZRYWZfbHpSRVMyVXpERVRmdE9LR3hZUWstelhUSndXaUVLTGFJcyJ9LHsicGF0aCI6Imh5cGgtbmIuaHliIiwicm9vdF9oYXNoIjoidW1oN2VNX0ptaVRpdVdjeUNSU2Y0eGVnT085aDZaczZxcl9XeHdtQk9IdyJ9LHsicGF0aCI6Imh5cGgtbmwuaHliIiwicm9vdF9oYXNoIjoiMWNMSjEtZ0J3UkhNMDlhVExINVZZOWpXeGY2cUpqYjgydFdSX0tsRlg5ZyJ9LHsicGF0aCI6Imh5cGgtbm4uaHliIiwicm9vdF9oYXNoIjoiVVRNblpKaGR0LW51UGEwSGRBMmpqeE9yUU9CMTZ4UVk3ZFo1b2dKeVB2MCJ9LHsicGF0aCI6Imh5cGgtb3IuaHliIiwicm9vdF9oYXNoIjoiVHB6VEFycl94T28tbGxJeWZxSkFjdXZ6ZTF4UHdIR1NrcjJzRUtxdFpscyJ9LHsicGF0aCI6Imh5cGgtcGEuaHliIiwicm9vdF9oYXNoIjoiUndNcDBvLXFTRS1VWFhqXzc3RjIzTGJ5QXl4MVBpVzhBVUVHclNTeXhvbyJ9LHsicGF0aCI6Imh5cGgtcHQuaHliIiwicm9vdF9oYXNoIjoiOXZ2eHZMSmd6SVlsYjhTVTg0ajNzbjBRaGwtX2oyRlJmZTRscjAxWTF1ZyJ9LHsicGF0aCI6Imh5cGgtcnUuaHliIiwicm9vdF9oYXNoIjoicXN2dk9SNU5oUWlrYV8zVXU5N3QwQ0tWU2o2RFhPSVFFMVVXbWRmR1VRdyJ9LHsicGF0aCI6Imh5cGgtc2suaHliIiwicm9vdF9oYXNoIjoiN2Z4MDBSMHQtYjVscVVlX3hGNy1pVThuNkZUTzJrVjNmYy1odGdEQVZlYyJ9LHsicGF0aCI6Imh5cGgtc2wuaHliIiwicm9vdF9oYXNoIjoiT1hDWTBsMS0wYzZ2eVk4YmpURTBObEJBSnlvUVl5YmFfOVp0WVN0UF83byJ9LHsicGF0aCI6Imh5cGgtc3EuaHliIiwicm9vdF9oYXNoIjoidkNuSlFCenBVa0ZNdXV2RnlPNGRKOEZ3Ykc5M2dIdGY5eFBpRWtRNHM4byJ9LHsicGF0aCI6Imh5cGgtc3YuaHliIiwicm9vdF9oYXNoIjoiR1hhQU9rUmRyWE5ac1FLbHBKX3lCd1doZUNpRzhjZFNzREZ4OWc3MnJwOCJ9LHsicGF0aCI6Imh5cGgtdGEuaHliIiwicm9vdF9oYXNoIjoiUVAycFNGYW9id1pkNkxxbUdFNm1QYzJ3RWU1TXBKaW53ZjdrVEpreFRHYyJ9LHsicGF0aCI6Imh5cGgtdGUuaHliIiwicm9vdF9oYXNoIjoiVVctcFpVLWpycXEwZ05RT3IyclhqOEE1Q0d2WTdjRkV2ajFaVWw3Y3JDayJ9LHsicGF0aCI6Imh5cGgtdGsuaHliIiwicm9vdF9oYXNoIjoiZF8ydTBwdllRcXFwZHF0LS1CdGhlaFhBb3RIcjBSWWNHX0pyZWFFSXRjMCJ9LHsicGF0aCI6Imh5cGgtdWsuaHliIiwicm9vdF9oYXNoIjoieWxjVXUzT05ZS3N1LW9pS3R5VWNSak1PQnhwZzBMdjdMNENvZHpsUW5zayJ9LHsicGF0aCI6Imh5cGgtdW5kLWV0aGkuaHliIiwicm9vdF9oYXNoIjoiSGVnOHQ0ZmZyMVA3Zm02TnM2cmxBSXJTVHIzU2ktQWdNVEJ1cWVuejRvVSJ9LHsicGF0aCI6Im1hbmlmZXN0Lmpzb24iLCJyb290X2hhc2giOiIxWEh2TTdEbkIxY2ZFTHMzdVpwZ2ZXOURyLU1fVTlGYlE1V3hidlA5cG1VIn1dLCJmb3JtYXQiOiJ0cmVlaGFzaCIsImhhc2hfYmxvY2tfc2l6ZSI6NDA5Nn1dLCJpdGVtX2lkIjoiamFtaGNubmtpaGlubWRsa2Fra2FvcGJqYmJjbmdmbGMiLCJpdGVtX3ZlcnNpb24iOiIxMjAuMC42MDUwLjAiLCJwcm90b2NvbF92ZXJzaW9uIjoxfQ","signatures":[{"header":{"kid":"publisher"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"ud33uh3_3o_eTIMSj_MKboC9-GzBxQ-Bu6XS31wn7JB3ntcoVSUfAgMjTBCsIYEEgqVfKJlf92wgl3SbjJWaT-_XfV8sMFwZtuAT0qJV0p9gammnprPP0OmUwJdJB-kK1MO8ESwSyeGKCEeIXGDqAVdQHkYD-oKzYS-zKhe9KVnU-WtJ6mtG80ybhjxJDM1aLyS6_ocXKYBmcB9av0IY-saDVR7hkVNjc-iR9lhYI1682VbDmlQ9-uueCkK4YsqmO1mOSgYcQ-Hm56zQxhGrMHbGokIX667-8yHRbxjoag7eNxHrY5VQI-te17pDKE9G9cz87qvGSMPUi9QGdyt7a1652KWPXe6bDEOjIoaHUq9juOd7r8SxYCv8tqhAx5nxhqkaq9oHSfiYrrcddaSdtdCOYo7hyqVQV1562x0NZiNrGH9sU5V-e_5DAmPVqBMA1yjY3ZQEWWyTdQ_Wtw5qbs3m5qh5Grut8RtIb7yGJJsamDN3LG73jcrtXZ1cMynqN3LysksG8Y73RfO3joVhy3gw5Y1X6ES1gvQi4n1hxvOCCXoGIbIJwIZGjTlcuh2J_eweLo0hm1IeXK_lAB9P1RiruKfEc0P75CY4V_LDziEdFHxIpFS6PjH94n1aAj0F3ba6opqyjgXs6n8uuhoJvdq5GwnAuwsOzs771p8mWl0"},{"header":{"kid":"webstore"},"protected":"eyJhbGciOiJSUzI1NiJ9","signature":"fLFplPrKe8OWo-G7YhCQxsnj2MHPUqYvWL9ACSCD1WuA4K5c0pOFNMZ10w0Po0lgprE7LTCjWTk3pKKvyTxojWAyAg-c75DU2kfnntDabBEn9ooCiBcWJIuOkJMdcLYBbfe-t-JO0KPKm-2mGi59MkO9xir2MMwAqtITGdrH4WXjHTIB6guYQMtre_Bp_zqvZnGQKqZI0Cdq8QVqd7z69_j63fvv0CjXuZ-6F1RNElS75H3FzJ1OrVMCOjEOaKyk1DD-aqgr-6lUq2er1XWrf9JxtAmAawpnh3RAEi_1VoGtbga92USt_0ZLiapoC4PlWSloLuX-_NYFg9gtPJNS9w"}]}}] \ No newline at end of file diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-af.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-af.hyb new file mode 100644 index 00000000..54e6c0e1 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-af.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-as.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-as.hyb new file mode 100644 index 00000000..43a9527f Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-as.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-be.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-be.hyb new file mode 100644 index 00000000..4da6b749 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-be.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-bg.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-bg.hyb new file mode 100644 index 00000000..3f46fa1c Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-bg.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-bn.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-bn.hyb new file mode 100644 index 00000000..43a9527f Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-bn.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-cs.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-cs.hyb new file mode 100644 index 00000000..4255d569 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-cs.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-cu.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-cu.hyb new file mode 100644 index 00000000..4ec90d39 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-cu.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-cy.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-cy.hyb new file mode 100644 index 00000000..5afe8aaa Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-cy.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-da.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-da.hyb new file mode 100644 index 00000000..f33f4307 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-da.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-de-1901.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-de-1901.hyb new file mode 100644 index 00000000..7de89ade Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-de-1901.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-de-1996.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-de-1996.hyb new file mode 100644 index 00000000..9880a9c3 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-de-1996.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-de-ch-1901.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-de-ch-1901.hyb new file mode 100644 index 00000000..7e0b36ac Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-de-ch-1901.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-el.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-el.hyb new file mode 100644 index 00000000..413defde Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-el.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-en-gb.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-en-gb.hyb new file mode 100644 index 00000000..8b2ca339 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-en-gb.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-en-us.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-en-us.hyb new file mode 100644 index 00000000..db1469a5 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-en-us.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-es.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-es.hyb new file mode 100644 index 00000000..1ef23304 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-es.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-et.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-et.hyb new file mode 100644 index 00000000..bc42bf3a Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-et.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-eu.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-eu.hyb new file mode 100644 index 00000000..b9d6f468 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-eu.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-fr.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-fr.hyb new file mode 100644 index 00000000..b24b5a2a Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-fr.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-ga.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-ga.hyb new file mode 100644 index 00000000..3eb376f8 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-ga.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-gl.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-gl.hyb new file mode 100644 index 00000000..604c80ae Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-gl.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-gu.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-gu.hyb new file mode 100644 index 00000000..908ea1ac Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-gu.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-hi.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-hi.hyb new file mode 100644 index 00000000..b0b9680f Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-hi.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-hr.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-hr.hyb new file mode 100644 index 00000000..f73854cf Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-hr.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-hu.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-hu.hyb new file mode 100644 index 00000000..95d81941 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-hu.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-hy.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-hy.hyb new file mode 100644 index 00000000..1bb18328 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-hy.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-it.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-it.hyb new file mode 100644 index 00000000..aadffdf6 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-it.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-ka.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-ka.hyb new file mode 100644 index 00000000..818a72d2 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-ka.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-kn.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-kn.hyb new file mode 100644 index 00000000..46bdbcf4 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-kn.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-la.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-la.hyb new file mode 100644 index 00000000..c91ca2ff Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-la.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-lt.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-lt.hyb new file mode 100644 index 00000000..98c190c3 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-lt.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-lv.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-lv.hyb new file mode 100644 index 00000000..105c2744 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-lv.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-ml.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-ml.hyb new file mode 100644 index 00000000..c716ff2b Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-ml.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-mn-cyrl.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-mn-cyrl.hyb new file mode 100644 index 00000000..3c6a4a4d Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-mn-cyrl.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-mr.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-mr.hyb new file mode 100644 index 00000000..b0b9680f Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-mr.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-mul-ethi.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-mul-ethi.hyb new file mode 100644 index 00000000..1bfa7d93 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-mul-ethi.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-nb.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-nb.hyb new file mode 100644 index 00000000..1e897a02 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-nb.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-nl.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-nl.hyb new file mode 100644 index 00000000..09b81c57 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-nl.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-nn.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-nn.hyb new file mode 100644 index 00000000..74cf56e4 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-nn.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-or.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-or.hyb new file mode 100644 index 00000000..e320ce8c Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-or.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-pa.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-pa.hyb new file mode 100644 index 00000000..fd613259 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-pa.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-pt.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-pt.hyb new file mode 100644 index 00000000..10a669be Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-pt.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-ru.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-ru.hyb new file mode 100644 index 00000000..eddd313a Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-ru.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-sk.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-sk.hyb new file mode 100644 index 00000000..303df318 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-sk.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-sl.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-sl.hyb new file mode 100644 index 00000000..2215e70a Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-sl.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-sq.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-sq.hyb new file mode 100644 index 00000000..dfb9c8b7 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-sq.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-sv.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-sv.hyb new file mode 100644 index 00000000..9f07d78b Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-sv.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-ta.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-ta.hyb new file mode 100644 index 00000000..3cb21b5b Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-ta.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-te.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-te.hyb new file mode 100644 index 00000000..4b349071 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-te.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-tk.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-tk.hyb new file mode 100644 index 00000000..1bc93452 Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-tk.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-uk.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-uk.hyb new file mode 100644 index 00000000..fc65a25e Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-uk.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/hyph-und-ethi.hyb b/build/chromium-hyphen-data/120.0.6050.0/hyph-und-ethi.hyb new file mode 100644 index 00000000..3c98edbd Binary files /dev/null and b/build/chromium-hyphen-data/120.0.6050.0/hyph-und-ethi.hyb differ diff --git a/build/chromium-hyphen-data/120.0.6050.0/manifest.json b/build/chromium-hyphen-data/120.0.6050.0/manifest.json new file mode 100644 index 00000000..e8922aa4 --- /dev/null +++ b/build/chromium-hyphen-data/120.0.6050.0/manifest.json @@ -0,0 +1,5 @@ +{ + "manifest_version": 2, + "name": "hyphens-data", + "version": "120.0.6050.0" +} \ No newline at end of file diff --git a/pkg/modules/chromium/browser.go b/pkg/modules/chromium/browser.go index e05ea3cd..0350cc27 100644 --- a/pkg/modules/chromium/browser.go +++ b/pkg/modules/chromium/browser.go @@ -39,6 +39,7 @@ type browserArguments struct { hostResolverRules string proxyServer string wsUrlReadTimeout time.Duration + hyphenDataDirPath string // Tasks specific. allowList *regexp2.Regexp @@ -79,6 +80,16 @@ func (b *chromiumBrowser) Start(logger *zap.Logger) error { debug := &debugLogger{logger: logger} b.userProfileDirPath = b.fs.NewDirPath() + // See https://github.com/gotenberg/gotenberg/issues/1293. + err := os.MkdirAll(b.userProfileDirPath, 0o755) + if err != nil { + return fmt.Errorf("could not create user profile directory: %w", err) + } + err = os.Symlink(b.arguments.hyphenDataDirPath, fmt.Sprintf("%s/hyphen-data", b.userProfileDirPath)) + if err != nil { + return fmt.Errorf("create symlink to hyphen-data directory: %w", err) + } + opts := append(chromedp.DefaultExecAllocatorOptions[:], chromedp.CombinedOutput(debug), chromedp.ExecPath(b.arguments.binPath), @@ -93,6 +104,8 @@ func (b *chromiumBrowser) Start(logger *zap.Logger) error { // See https://github.com/gotenberg/gotenberg/issues/1177. chromedp.Flag("no-zygote", true), chromedp.Flag("disable-dev-shm-usage", true), + // See https://github.com/gotenberg/gotenberg/issues/1293. + chromedp.Flag("disable-component-update", false), ) if b.arguments.incognito { @@ -133,7 +146,7 @@ func (b *chromiumBrowser) Start(logger *zap.Logger) error { allocatorCtx, allocatorCancel := chromedp.NewExecAllocator(b.initialCtx, opts...) ctx, cancel := chromedp.NewContext(allocatorCtx, chromedp.WithDebugf(debug.Printf)) - err := chromedp.Run(ctx) + err = chromedp.Run(ctx) if err != nil { cancel() allocatorCancel() diff --git a/pkg/modules/chromium/chromium.go b/pkg/modules/chromium/chromium.go index 22432633..799b2e66 100644 --- a/pkg/modules/chromium/chromium.go +++ b/pkg/modules/chromium/chromium.go @@ -395,6 +395,11 @@ func (mod *Chromium) Provision(ctx *gotenberg.Context) error { return errors.New("CHROMIUM_BIN_PATH environment variable is not set") } + hyphenDataDirPath, ok := os.LookupEnv("CHROMIUM_HYPHEN_DATA_DIR_PATH") + if !ok { + return errors.New("CHROMIUM_HYPHEN_DATA_DIR_PATH environment variable is not set") + } + mod.args = browserArguments{ binPath: binPath, incognito: flags.MustBool("chromium-incognito"), @@ -405,6 +410,7 @@ func (mod *Chromium) Provision(ctx *gotenberg.Context) error { hostResolverRules: flags.MustString("chromium-host-resolver-rules"), proxyServer: flags.MustString("chromium-proxy-server"), wsUrlReadTimeout: flags.MustDuration("chromium-start-timeout"), + hyphenDataDirPath: hyphenDataDirPath, allowList: flags.MustRegexp("chromium-allow-list"), denyList: flags.MustRegexp("chromium-deny-list"), @@ -449,6 +455,11 @@ func (mod *Chromium) Validate() error { return fmt.Errorf("chromium binary path does not exist: %w", err) } + _, err = os.Stat(mod.args.hyphenDataDirPath) + if os.IsNotExist(err) { + return fmt.Errorf("chromium hyphen-data directory path does not exist: %w", err) + } + return nil }