tis-qgis-ltr icon

QGIS Long Term Release

Silent install package for QGIS Long Term Release

3.40.15-23
Utilities
Utilities

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-qgis-ltr
  • name: QGIS Long Term Release
  • version: 3.40.15-23
  • categories: Utilities
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON
  • editor: QGIS Development Team
  • licence: GNU GPLv2
  • locale: all
  • target_os: windows
  • impacted_process: qgis-bin,qgis-bin-g7,qgis-ltr-bin,qgis-ltr-bin-g7,qgiscrashhandler
  • architecture: x64
  • signature_date:
  • size: 1.36 Go
  • installed_size: 2.05 Go
  • homepage : https://www.qgis.org/

package           : tis-qgis-ltr
version           : 3.40.15-23
architecture      : x64
section           : base
priority          : optional
name              : QGIS Long Term Release
categories        : Utilities
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ,Pierre COSSON
description       : QGIS (Quantum GIS) is a free and open-source cross-platform desktop geographic information system (GIS) application that supports viewing, editing, and analysis of geospatial data
depends           : 
conflicts         : 
maturity          : PREPROD
locale            : all
target_os         : windows
min_wapt_version  : 2.1
sources           : https://www.qgis.org/en/site/forusers/download.html
installed_size    : 2045370368
impacted_process  : qgis-bin,qgis-bin-g7,qgis-ltr-bin,qgis-ltr-bin-g7,qgiscrashhandler
description_fr    : QGIS (Quantum GIS) est un logiciel SIG (système d'information géographique) qui prend en charge la visualisation, l'édition et l'analyse de données géospatiales
description_pl    : QGIS (Quantum GIS) jest darmową i otwartą, wieloplatformową aplikacją systemu informacji geograficznej (GIS), która wspiera przeglądanie, edycję i analizę danych geoprzestrzennych
description_de    : QGIS (Quantum GIS) ist eine freie und quelloffene, plattformübergreifende Desktop-Anwendung für geografische Informationssysteme (GIS), die die Anzeige, Bearbeitung und Analyse von Geodaten unterstützt
description_es    : QGIS (Quantum GIS) es una aplicación de sistema de información geográfica (SIG) de escritorio, gratuita y de código abierto, que permite visualizar, editar y analizar datos geoespaciales
description_pt    : QGIS (Quantum GIS) é uma aplicação gratuita e de código aberto de sistema de informação geográfica (GIS) que suporta a visualização, edição e análise de dados geoespaciais
description_it    : QGIS (Quantum GIS) è un'applicazione desktop di sistema informativo geografico (GIS) multipiattaforma, gratuita e open-source, che supporta la visualizzazione, la modifica e l'analisi di dati geospaziali
description_nl    : QGIS (Quantum GIS) is een vrije en open-source desktop toepassing voor een geografisch informatiesysteem (GIS) dat het bekijken, bewerken en analyseren van geospatiale gegevens ondersteunt
description_ru    : QGIS (Quantum GIS) - это бесплатное кроссплатформенное приложение с открытым исходным кодом для настольных географических информационных систем (ГИС), которое поддерживает просмотр, редактирование и анализ геопространственных данных
audit_schedule    : 
editor            : QGIS Development Team
keywords          : qgis,gis,geographic,information,system,application,geo,spatial,geospatial,data
licence           : GNU GPLv2
homepage          : https://www.qgis.org/
package_uuid      : d7577937-c62c-4a8b-a1af-316888b08a89
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://www.qgis.org/en/site/forusers/visualchangelogs.html
min_os_version    : 6.2
max_os_version    : 
icon_sha256sum    : 66b55efb00a97350a0e1c853a218f5b52e618117b19eb9818a34d19482dff5ff
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-01-28T11:58:31.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         : Yqi9VZa3bkLdmeNiCZQ6Rz19EZN2i+tIFfI8ip2wuz3mUsrEgnnxqqwl8PFmw79iohLshjuYfp//P6/rH57KW5knNsmBx4XlhlRsj/07WWb8OrcnDK8YU7K/6uG40aXQ2OdSkmpOdiZlGLhQNSZyY299tuQasHnC24VBe4kL2CFPDTiMUhjeBg3bhT4do61NC1AZh7LG+rV5z9Wu/K5jXpa83WtFrnbusKSh7/iQjizhRJSlkxmnC1T1Nmek0gyIFFYIXcVzJCgzSevgy/+oW0ySXkG4FYu++clOLqF/toUPTcPZwmG9y3SvHZi9RqJyZojMgMNZfnvhQ5ba0YwWjw==

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

# Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_contains = "QGIS-OSGeo4W-"

def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = glob.glob("*%s*.msi" % bin_contains)[0]
    short_package_version = ".".join(package_version.split(".")[:2])
    app_uninstallkey = "QGIS %s" % short_package_version
    app_name = "QGIS"
    processes_to_kill = control.impacted_process.split(",")

    # Uninstalling all other versions of the software before installation
    for uninstall in installed_softwares(app_name):
        if uninstall["version"] != package_version:
            print("Removing: %s" % uninstall["name"])
            killalltasks(processes_to_kill)
            try:
                run(uninstall_cmd(uninstall["key"]), timeout=1200)
            except:
                print("Unable to uninstall %s" % uninstall["name"])
            folder_path = makepath("\\".join(uninstall["uninstall_string"].split("\\")[:3]))
            wait_uninstallkey_absent(uninstall["key"])
            time.sleep(60)
            if isdir(folder_path):
                remove_tree(folder_path)

    # Installing the software
    print("Installing: %s" % bin_name)
    install_msi_if_needed(bin_name, timeout=1200)

    # Removing desktop shortcuts
    shortcuts_folder = makepath(systemdrive, "Users", "Public", "Desktop", app_uninstallkey)
    if isdir(shortcuts_folder):
        remove_tree(shortcuts_folder)

    uninstallkey.clear()

def uninstall():
    # Specific app values
    package_version = control.version.split("-")[0]
    short_package_version = ".".join(package_version.split(".")[:2])
    app_uninstallkey = "QGIS %s" % short_package_version

    for soft in installed_softwares("QGIS %s" % control.get_software_version()):
        run(uninstall_cmd(soft['key']),timeout=1800)

    # Removing the remaining folder of the app in %programfiles%
    folder_name = app_uninstallkey
    appfolder_path = makepath(programfiles, folder_name)
    time.sleep(60)
    if isdir(appfolder_path):
        remove_tree(appfolder_path)

def session_setup():
    print("Disabling: auto update check")

    # AppData\Roaming\QGIS\QGIS3\profiles\default\QGIS\QGIS3.ini
    r"""[qgis]
    checkVersion=true
    [core]
    NewsFeed\httpsfeedqgisorg\disabled=false"""

    user_conf_folder = makepath(user_appdata, "QGIS", "QGIS3", "profiles", "default", "QGIS")
    user_conf_file = makepath(user_conf_folder, "QGIS3.ini")

    if not isdir(user_conf_folder):
        mkdirs(user_conf_folder)

    inifile_writestring(user_conf_file, "qgis", r"checkVersion", "false")
    inifile_writestring(user_conf_file, "core", r"NewsFeed\httpsfeedqgisorg\disabled", "true")

# -*- coding: utf-8 -*-
from setuphelpers import *
import bs4 as BeautifulSoup


def update_package():
    # Declaring local variables
    result = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()

    for u in bs_find_all("https://www.qgis.org/download/",'a','href',proxies=proxies):
        if 'Long Term Version for Windows' in u.text and 'with Qt6' not in u.text:
            download_url = u["href"]
            latest_bin = download_url.split("/")[-1]

    # Downloading latest binaries
    if not isfile(latest_bin):
        result = True
        print("Downloading: %s" % latest_bin)
        wget(download_url, latest_bin, proxies=proxies, connect_timeout=30)

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

    # Changing version of the package
    control.set_software_version(get_version_from_binary(latest_bin))
    
    # control.set_software_version(version)
    control.save_control_to_wapt()

    # Validating update-package-sources
    return result

5094aad299e9f89e3d51a274b8fb29480a47e9712bdc903b40b6488f37981c43 : QGIS-OSGeo4W-3.40.15-1.msi
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
1cc267fcf2af10ac5eee2c767d79ab8b1586ca99cca69a698ba0e01c79c34cbd : WAPT/control
66b55efb00a97350a0e1c853a218f5b52e618117b19eb9818a34d19482dff5ff : WAPT/icon.png
4fabfb9a7bf87e4c5ae1e48a977c4f3a3a832be268fc34d67235bfe602c46e03 : luti.json
b4c286105a0014147c456821e3f424cea19dbf49d83d6b27c7dbbaf35482c297 : setup.py
bb75fb91481c926fe1eda7b67c8e1a7f00f7264e788da3676a8190a4d624f0b0 : update_package.py