tis-vivaldi icon

Vivaldi Installer

Silent install package for Vivaldi Installer

7.9.3970.47-1

Preprod packages are packages built on LUTI. They remain in PREPROD usually for 5 days, after which a second VirusTotal scan is performed to verify that the status has not changed.
If the package passes this last check, it is promoted to PROD and published on the store.

  • package: tis-vivaldi
  • name: Vivaldi Installer
  • version: 7.9.3970.47-1
  • maintainer: Amel FRADJ
  • licence: https://vivaldi.com/privacy/vivaldi-end-user-license-agreement/
  • target_os: windows
  • architecture: x64
  • signature_date:
  • size: 137.19 Mo
  • homepage : https://vivaldi.com/

package           : tis-vivaldi
version           : 7.9.3970.47-1
architecture      : x64
section           : base
priority          : optional
name              : Vivaldi Installer
categories        : 
maintainer        : Amel FRADJ
description       : It's a navigator. But fun. It's packed with smart built-in features. It's also incredibly flexible and private
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : 
target_os         : windows
min_wapt_version  : 
sources           : 
installed_size    : 
impacted_process  : 
description_fr    : C'est un navigateur. Mais amusant. Il est doté de nombreuses fonctionnalités intelligentes intégrées. Il est également incroyablement flexible et privé
description_pl    : To nawigator. Ale zabawny. Ma wbudowanych wiele inteligentnych funkcji. Jest również niezwykle elastyczny i prywatny
description_de    : Es ist ein Browser. Aber einer, der Spaß macht. Er verfügt über viele eingebaute intelligente Funktionen. Er ist außerdem unglaublich flexibel und privat
description_es    : Es un navegador. Pero divertido. Tiene un montón de funciones inteligentes integradas. También es increíblemente flexible y privado
description_pt    : É um navegador. Mas um divertido. Tem muitas funcionalidades inteligentes incorporadas. É também incrivelmente flexível e privado
description_it    : È un navigatore. Ma divertente. Ha molte funzioni intelligenti integrate. È anche incredibilmente flessibile e privato
description_nl    : Het is een navigator. Maar wel een leuke. Er zijn veel slimme functies ingebouwd. Het is ook ongelooflijk flexibel en privé
description_ru    : Это навигатор. Но очень интересный. В него встроено множество умных функций. Кроме того, он невероятно гибкий и индивидуальный
audit_schedule    : 
editor            : 
keywords          : 
licence           : https://vivaldi.com/privacy/vivaldi-end-user-license-agreement/
homepage          : https://vivaldi.com/
package_uuid      : 2a79e5ad-7fda-4cec-9d79-99131d81084b
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 10.0
max_os_version    : 
icon_sha256sum    : ba4569a7cb2fefd8e3cd20b9c67d858355e38038a6509f357b5f8b4447b3411a
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-04-01T07:04:00.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         : DEEndpbFipN945CawtFFouSkxGJqaXlk5z88odtbMJMY5T10y46QD5nr86lHsntwpUGiKOy2n9HhPBJ7M6lEI38q2l3NHAam12DfmhPtKRfQymlgGfJII4dCGi+ehMfGW8e5vCkL9bikCCDcVklmUgXGEodvEQLhc9BgkMxz1HC4hOoBaHNB+DoXdTNVRuLaBUu3deUfyQAMVRgn9wyua4B1j1PuBDh+WgaCfo85h+kwL5hq6lu4lllASJbeyH1xl3IEJc1nsJisPhTQvzcLXASRNGnj/1fjLXbwUQ0ldVYxVayZ8FPsalYzZKJ/dWj5G98ohMWRv0VxpReyKz6K4A==

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

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""

def install():
    # Déclaration des variables locales
    try:
        bin_name = glob.glob('Vivaldi.*.exe')[0]
    except IndexError:
        raise Exception("No Vivaldi installer found in the current directory")

    # Installation du logiciel
    install_exe_if_needed(bin_name,
                          silentflags='--vivaldi-silent --do-not-launch-chrome --system-level',
                          key='Vivaldi',
                          min_version=control.get_software_version(),
                          accept_returncodes=[0, 3010, 1641])
    
    # Nettoyer les clés de désinstallation pour éviter les audits sans code
    uninstallkey.clear()

def uninstall():
    for uninstall in installed_softwares('vivaldi'):
        uninstall_string = uninstall.get("uninstall_string", "")
        if uninstall_string:
            print(f"Uninstalling Vivaldi: {uninstall_string}")
            try:
                # Exécution de la commande de désinstallation avec gestion des erreurs
                run(f"{uninstall_string} --uninstall --force-uninstall --vivaldi --system-level", accept_returncodes=[0, 19])
                wait_uninstallkey_absent(uninstall['key'], max_loop=600)
            except CalledProcessErrorOutput as e:
                print(f"Error uninstalling Vivaldi: {e.output}")
                if 'Could not get application shortcuts location' in e.output:
                    print("Ignoring error related to application shortcuts location.")
                else:
                    raise
        else:
            print("No uninstall string found for Vivaldi")

def audit():
    if not uninstall_key_exists("Vivaldi"):
        print('uninstallkey Vivaldi not found')
        return "ERROR"
    else:
        return "OK"


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



def update_package():
    # Declaring local variables
    package_updated = False

    proxies = get_proxies_from_wapt_console()
    if not proxies:
        proxies = get_proxies()


    url_base = "https://vivaldi.com/fr/download/"
    response = requests.get(url_base,allow_redirects=True, proxies=proxies)
    # Extract the correct div using bs_find_all
    links = bs_find_all(url_base, "a","class","download-link", proxies=proxies)
    exe_file = None
    for link in links:
        if link['href'].endswith('x64.exe'):
            href = link['href']
            exe_file = href
            download_url = exe_file
            latest_bin = exe_file.split('/')[-1]
            break


    # Downloading latest binaries
    print("Download URL is: %s" % download_url)
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies)
        package_updated = True
    else:
        print("Binary is present: %s" % latest_bin)


    # Deleting outdated binaries
    for f in glob.glob('*.zip'):
        if f != latest_bin:
            remove_file(f)


    version = get_version_from_binary(latest_bin)
    # Mettre à jour le package
    control.set_software_version(version)
    control.save_control_to_wapt()


22f7d0afa2bccd52e054aa9dd3522d6829265df8cb14d4219b726add342d71c7 : Vivaldi.7.9.3970.47.x64.exe
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
d370827516b667b3f43bd2a7a98155971e1e98e26153b7da5ede1abc970d15cc : WAPT/control
ba4569a7cb2fefd8e3cd20b9c67d858355e38038a6509f357b5f8b4447b3411a : WAPT/icon.png
5c8ca58357590c68e2079795c3d49a57e23d063a7f14b1754699577f3b59bb3e : luti.json
0a9fb9fa6c1d714f98e914671833e621cdbd8afdf3b092f117d3081edd9757f5 : setup.py
b0a71b888758e9ac35af2ceb5c43e8a4f78cdb5993462d2214ec8eb192dae345 : update_package.py