tis-libreoffice-fresh icon

LibreOffice Fresh

Paquet d’installation silencieuse pour LibreOffice Fresh

26.2.2-37
Office
Office

Les paquets PREPROD sont des paquets construits via LUTI. Ils restent généralement 5 jours en PREPROD, après quoi un deuxième scan VirusTotal est effectué pour vérifier que le status n'a pas changé.
Si le paquet réussit ce dernier contrôle, il est promu en PROD et publié sur le store.

  • package: tis-libreoffice-fresh
  • name: LibreOffice Fresh
  • version: 26.2.2-37
  • categories: Office
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
  • editor: The Document Foundation
  • licence: opensource_free,cpe:/a:apache:license_2.0,cpe:/a:mozilla:public_license_2.0,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: swriter,sweb,soffice,smath,simpress,sdraw,scalc,sbase
  • architecture: x64
  • signature_date:
  • size: 372.74 Mo
  • installed_size: 1.29 Go
  • homepage : https://www.libreoffice.org/
  • depends:
  • conflicts :

package           : tis-libreoffice-fresh
version           : 26.2.2-37
architecture      : x64
section           : base
priority          : optional
name              : LibreOffice Fresh
categories        : Office
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ
description       : LibreOffice (Fresh Branch) is a free and open-source office suite
depends           : tis-vcredist
conflicts         : tis-libreoffice-still
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.1
sources           : https://www.libreoffice.org/download/download
installed_size    : 1294839808
impacted_process  : swriter,sweb,soffice,smath,simpress,sdraw,scalc,sbase
description_fr    : LibreOffice (Branche Évolution) est une suite bureautique libre et gratuite
description_pl    : LibreOffice (Fresh Branch) to darmowy i open-source’owy pakiet biurowy
description_de    : LibreOffice (Fresh Branch) ist ein freies und quelloffenes Office-Paket
description_es    : LibreOffice (Fresh Branch) es una suite ofimática gratuita y de código abierto
description_pt    : LibreOffice (Sucursal Fresh) é uma suite de escritório gratuita e de código aberto
description_it    : LibreOffice (Fresh Branch) è una suite per ufficio libera e open-source
description_nl    : LibreOffice (Fresh Branch) is een gratis en open-source kantoorpakket
description_ru    : LibreOffice (Fresh Branch) - это бесплатный офисный пакет с открытым исходным кодом
audit_schedule    : 
editor            : The Document Foundation
keywords          : bureautique,office,suite
licence           : opensource_free,cpe:/a:apache:license_2.0,cpe:/a:mozilla:public_license_2.0,wapt_public
homepage          : https://www.libreoffice.org/
package_uuid      : e8c53d43-388c-4c09-b7d6-65a99302a942
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://wiki.documentfoundation.org/Category:ReleaseNotes
min_os_version    : 10
max_os_version    : 
icon_sha256sum    : 9c51eebe7a7aa8b0066cc11588899f1add0a10f4b80fcee271d6eca64be46a87
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-03-26T15:07:55.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature         : oZ0Yby/U6bSPrBjZQ9gdy/9NubnVYYiNIsBNPTbJA7LwtHfYe+ct5AptnIzsYXxm6jJmBMUApTUEEm6Bk/I7M52LHxJRIV3ZyGHnED81JnBHKfiGJliRBt61I/lg9x13gGirCrVI9VieQtTN1WVK11O4cSZAo01Jd4bo0BATfZrVD8BTS7JP+qClNjyZMSwrlkvzPGo3M8/jJuBhp7G3wUpHJVnzmggrChNtW1tQWIgTQFeX65dTJWVotqGWR8xu9KS1uMT7XPeVO6BQTBi8xAJeuKThZ5MaJ+wROhTG0mhPb6jM4x6dQjtOpMAMBOtfPJJy6mTUsjooWT7MYH8Yaw==

# -*- coding: utf-8 -*-
from setuphelpers import *
import winreg

# Installation procedure: https://wiki.documentfoundation.org/Deployment_and_Migration
# Consider LBO as Collabora Office if relevant
silent_args_dict = {
    "ALLUSERS": 1,
    "CREATEDESKTOPLINK": 1,
    "REBOOTYESNO": "No",
    "ISCHECKFORPRODUCTUPDATES": 0,
    "VC_REDIST": 0,
    "QUICKSTART": 0,
    "ADDLOCAL": "ALL",
}
# To auto detect if LBO should be set as default Office applications make sure both following parameters are set to False
force_register_as_default_mso_app = False  # Make sure that LBO will BE the default application for any Office applications
force_no_register_as_default_mso_app = True  # Make sure that LBO will NOT BE the default application for any Office applications


def install():
    # Declaring local variables
    bin_name = glob.glob("*Office_*.msi")[0]
    if "libreoffice" in control.package:
        silent_args_dict.update({"REMOVE": "gm_o_Onlineupdate"})

    """
    REGISTER_ALL_MSO_TYPES (default=0) - use LibreOffice as the default application for Microsoft Office file formats
    REGISTER_NO_MSO_TYPES  (default=0) - don't use LibreOffice as default application for any Microsoft Office file formats
    REGISTER_DOC           (default=0) - use LibreOffice as the default application for Microsoft Word file format .doc (You can use similar for .xls, .ppt etc.)
    """
    # Defining Office default applications
    if force_register_as_default_mso_app == force_no_register_as_default_mso_app:
        # Checking if MSO file extensions refer to MSO apps and affect LBO if not
        if not get_file_assocation(".doc").startswith("Word") and not get_file_assocation(".docx").startswith("Word"):
            silent_args_dict["REGISTER_DOC"] = 1
            silent_args_dict["REGISTER_DOCX"] = 1
        if not get_file_assocation(".xls").startswith("Excel") and not get_file_assocation(".xlsx").startswith("Excel"):
            silent_args_dict["REGISTER_XLS"] = 1
            silent_args_dict["REGISTER_XLSX"] = 1
        if not get_file_assocation(".ppt").startswith("PowerPoint") and not get_file_assocation(".pptx").startswith("PowerPoint"):
            silent_args_dict["REGISTER_PPT"] = 1
            silent_args_dict["REGISTER_PPTX"] = 1
        if not get_file_assocation(".pub").startswith("Publisher"):
            silent_args_dict["REGISTER_PUB"] = 1

        # Checking if a version of MSO is installed
        count_mso_apps = 0
        if installed_softwares(name="Microsoft Office "):
            count_mso_apps += 1
        if installed_softwares(name="Office 365"):
            count_mso_apps += 1
        if installed_softwares(name="Microsoft 365"):
            count_mso_apps += 1

        if count_mso_apps == 0:
            # Register LBO as default MSO apps if no MSO version was detected
            silent_args_dict["REGISTER_ALL_MSO_TYPES"] = 1
        else:
            # Do not register LBO as default MSO apps since a MSO version was detected
            silent_args_dict["REGISTER_NO_MSO_TYPES"] = 1

    else:
        if force_register_as_default_mso_app:
            # Register LBO as default MSO apps
            silent_args_dict["REGISTER_ALL_MSO_TYPES"] = 1
        elif force_no_register_as_default_mso_app:
            # Do not register LBO as default MSO apps
            silent_args_dict["REGISTER_NO_MSO_TYPES"] = 1

    # Installing the software
    if silent_args_dict.get("REGISTER_ALL_MSO_TYPES"):
        print("REGISTER_ALL_MSO_TYPES")
    elif silent_args_dict.get("REGISTER_NO_MSO_TYPES"):
        print("REGISTER_NO_MSO_TYPES")
    else:
        print("No parameter detected for REGISTER_MSO_TYPES")
    install_msi_if_needed(
        bin_name,
        properties=silent_args_dict,
        timeout=1200,
    )
    source_file = makepath(basedir,"no_update.xcd")
    destination_file = makepath(programfiles64,"LibreOffice","share","registry","no_update.xcd")
    filecopyto(source_file,destination_file)

def uninstall():
    config_file = makepath(programfiles64,"LibreOffice","share","registry","no_update.xcd")
    if isfile(config_file):
        remove_file(config_file)

def get_file_assocation(ext):
    r"""Return the associated application for a file extension (example : '.doc')

    >>> get_file_assocation('.pptx')
    'LibreOffice.Pptx'

    """
    try:
        return winreg.QueryValue(winreg.HKEY_CLASSES_ROOT, ext)
    except:
        return ""

# -*- coding: utf-8 -*-
from setuphelpers import *
import requests


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    url = "https://www.libreoffice.org/download/download"
    if control.architecture == "x64":
        dl_arch = "x86_64"
        ends_bin_name = "_Win_x86-64.msi"
    else:
        dl_arch = "x86"
        ends_bin_name = "_Win_x86.msi"

    # Getting latest version from official website
    version = bs_find_all(url, "span", "class", "dl_version_number", proxies=proxies)[0 if "fresh" in control.package else 1].text
    search_url = "https://download.documentfoundation.org/libreoffice/stable/%s/win/%s/" % (version, dl_arch)
    latest_bin = "LibreOffice_" + version + ends_bin_name
    download_url = search_url + latest_bin
    if requests.head(download_url, proxies=proxies).status_code == 404:
        latest_bin = "LibreOffice_" + version + "_Win_x86-64.msi"
        download_url = search_url + latest_bin

    # Downloading latest binaries
    print("Latest %s version is: %s" % (control.name, version))
    print("Download URL is: %s" % download_url)
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print("Binary is present: %s" % latest_bin)

    # Checking version from file
    version_from_file = get_version_from_binary(latest_bin)
    if Version(version_from_file, 3) != Version(version, 3) and version_from_file != "":
        print("Changing version to the version number of the binary (from: %s to: %s)" % (version, version_from_file))
        # os.rename(latest_bin, latest_bin.replace(version, version_from_file))
        version = version_from_file
    else:
        print("Binary file version corresponds to online version")

    # Changing version of the package
    version = ".".join(version.split(".")[:3])
    if Version(version, 4) > Version(control.get_software_version(), 4):
        print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
        package_updated = True
    else:
        print("Software version up-to-date (%s)" % Version(version))
    control.set_software_version(version)
    control.save_control_to_wapt()

    # Deleting outdated binaries
    remove_outdated_binaries(version)

    # Validating or not update-package-sources
    return package_updated

fa83774e81dae12bf26747b26e5a90d05f5e40330347f016c681fc5e019acadf : LibreOffice_26.2.2_Win_x86-64.msi
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
16be651623256cf303b936b6630a7f0183766dbd4750dc10b183c21957e8e746 : WAPT/changelog.txt
345de2b4cde588b10b15a3d940ea93542a9fa668725ce7cb15b09d81e920ab23 : WAPT/control
9c51eebe7a7aa8b0066cc11588899f1add0a10f4b80fcee271d6eca64be46a87 : WAPT/icon.png
44679610bba84fcd23974bdbc2e7bfb36c5a7deb3b1141dd5538486efea00d56 : luti.json
6a8309fa352e164e636fbd03394c9eb8e0b2a64fcd8b154d57630930386ec21e : no_update.xcd
73a462f07cfd314953d56885cbc1714f2d6a2ce2cd5d837bcd8b4fd096cb953b : setup.py
a04bad51d8f151e9aa53f01267292e4c8cc44a4cf505ac8559bb94b6f9ddece8 : update_package.py

https://wiki.documentfoundation.org/Category:ReleaseNotes
25.2.4-37
===
add file to disable auto update

7.5.3-36
===
fix auto detection
no longer auto detect by default if LBO should be set as default Office applications
force_no_register_as_default_mso_app by default (switch it to False to go back for auto detection)
merging Collabora Office and LibreOffice code
force 3 digits version