[RESUELTO] Paquetes para Logi Options+ (Windows / MacOS)

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
Bastien30
Mensajes: 38
Inscripción: 8 de marzo de 2024 - 15:21

20 de noviembre de 2025 - 12:26

Buen día,

Creé un paquete para el software Logi Options+ bajo Windows y MacOS, con la función update_package() funcional.

Ventanas

configuración.py:

Código: Seleccionar todo

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

installer = r'logioptionsplus_%s.exe'

def install():
    appver = control.version.split('-',1)[0]
    install_exe_if_needed(installer % appver,
        silentflags = '/quiet /analytics no /device-recommendation no /update no',
        name = 'Logi Options+',
        min_version = get_version_from_binary(installer % appver, property_name='ProductVersion')
    )
    remove_desktop_shortcut(r'Logi Options+')

def update_package():
    appname = control.name
    url_dl = control.sources
    appver = control.version.split('-',1)[0]
    installer_dl = r'logioptionsplus_latest.exe'

    # Download installer to check its version
    wget(url_dl, installer_dl)
    installer_dl_version = get_version_from_binary(installer_dl)
    print(r'Latest %s version : %s' % (appname, installer_dl_version))

    if Version(installer_dl_version) > Version(appver):
        os.rename(installer_dl, installer % installer_dl_version)
        # Changing version of the package
        control.version = '%s-%s'%(installer_dl_version, control.version.split('-')[-1])
        control.save_control_to_wapt()
        print('Changing version to: %s in WAPT\\control' % control.version)
        remove_outdated_binaries(installer_dl_version)
    else:
        print("Already up to date")
control:

Código: Seleccionar todo

package           : xxx-logi_options_plus
version           : 1.97.791262-3
architecture      : x64
section           : base
priority          : optional
name              : Logi Options+
categories        : Utilities
maintainer        : XXXX
description       : Enhance your Logitech devices with Logi Options Plus software. Customize settings, create shortcuts, and increase productivity.
depends           : xxx-vcredist2015-2022
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 
sources           : https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.exe
installed_size    : 
impacted_process  : logioptionsplus,logioptionsplus_agent,logioptionsplus_appbroker,logioptionsplus_updater,LogiSyncStub
description_fr    : Améliorez vos appareils Logitech grâce au logiciel Logi Options Plus. Personnalisez les paramètres, créez des raccourcis et augmentez votre productivité.
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : Logitech, Inc.
keywords          : 
licence           : Proprietary
homepage          : https://www.logitech.com/software/logi-options-plus
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://support.logi.com/hc/fr/articles/1500005516462-Logi-Options-Release-Notes
min_os_version    : 10
max_os_version    : 
macOS

configuración.py:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import plistlib

installer_name = r'logioptionsplus_installer'

def install():
    appname = control.name
    appver = control.version.split('-',1)[0]
    installer_zip = r'%s_%s.zip' % (installer_name, appver)
    installer = r'./%s_%s/%s.app/Contents/MacOS/%s' % (installer_name, appver, installer_name, installer_name)

    soft = installed_softwares(r'logioptionsplus')
    if soft:
        if soft[0]["version"] >= appver:
            if not WAPT.options.force:
                print(r'%s is already installed with version %s' % (appname, soft[0]["version"]))
                return(0)

    unzip(installer_zip, r'%s_%s' % (installer_name, appver))
    run(r'%s --quiet --analytics no --device-recommendation no --update no' % installer)

def uninstall():
    # Uninstall and clean leftovers
    run(r'sudo /Library/Application\ Support/Logitech.localized/LogiOptionsPlus/logioptionsplus_agent.app/Contents/Frameworks/logioptionsplus_updater.app/Contents/MacOS/logioptionsplus_updater --full --uninstall --quiet')
    uninstall_pkg(r'com.logi.installer.pluginservice.media.package')
    uninstall_pkg(r'com.logi.installer.pluginservice.package')
    if isdir(r'/Library/Application\ Support/Logi/'):
        remove_tree(r'/Library/Application\ Support/Logi/')
    
def update_package():
    appname = control.name
    url_dl = control.sources
    appver = control.version.split('-',1)[0]
    installer_dl = r'%s.zip' % installer_name
    plist_file_name = r'Info.plist'

    # Download installer to check it's version
    wget(url_dl, installer_dl)

    # Check version from plist file
    if isfile(plist_file_name):
        remove_file(plist_file_name)
    unzip_with_7zip(installer_dl, target=basedir, filenames=[r'%s.app/Contents/Info.plist' % installer_name], extract_with_full_paths=False, recursive=False)
    plist_file = get_plist_obj(plist_file_name)
    installer_dl_version = plist_file[r'CFBundleVersion']
    print(r'Latest %s version : %s' % (appname, installer_dl_version))
    remove_file(plist_file_name)

    if Version(installer_dl_version) > Version(appver):
        old_zip_name = r'%s-%s.zip' % (installer_name, appver)
        if isfile(old_zip_name):
            remove_file(old_zip_name)
        os.rename(installer_dl, r'%s_%s.zip' % (installer_name, installer_dl_version))
        # Changing version of the package
        control.version = '%s-%s'%(installer_dl_version, control.version.split('-')[-1])
        control.save_control_to_wapt()
        print('Changing version to: %s in WAPT\\control' % control.version)
    else:
        print("Already up to date")
        
def get_plist_obj(plist_file):
    """ Returns a plist obj when given the path to a plist file. """

    with open(plist_file, 'rb') as fp :
        plist_obj = plistlib.load(fp)
    return plist_obj
control:

Código: Seleccionar todo

package           : xxx-logi_options_plus
version           : 1.97.791262-8
architecture      : all
section           : base
priority          : optional
name              : Logi Options+
categories        : Utilities
maintainer        : XXXX
description       : Enhance your Logitech devices with Logi Options Plus software. Customize settings, create shortcuts, and increase productivity.
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : darwin
min_wapt_version  : 
sources           : https://download01.logi.com/web/ftp/pub/techsupport/optionsplus/logioptionsplus_installer.zip
installed_size    : 
impacted_process  : logioptionsplus,logioptionsplus_agent,logioptionsplus_appbroker,logioptionsplus_updater,LogiSyncStub
description_fr    : Améliorez vos appareils Logitech grâce au logiciel Logi Options Plus. Personnalisez les paramètres, créez des raccourcis et augmentez votre productivité.
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : Logitech, Inc.
keywords          : 
licence           : Proprietary
homepage          : https://www.logitech.com/software/logi-options-plus
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://support.logi.com/hc/fr/articles/1500005516462-Logi-Options-Release-Notes
min_os_version    : 13
max_os_version    : 
gadam
Mensajes: 21
Inscripciones: 30 Oct 2025 - 14:46 horas.

21 de noviembre de 2025 - 16:30

Hola Bastien,

el paquete Logi Options+ se ha creado para Windows y estará disponible en la tienda en los próximos días.
Seguimos trabajando en la versión para Mac.

Saludos,

Gwenaël
Bloqueado