tis-geogebra icon

GeoGebra Classic

Silent install package for GeoGebra Classic

6.0.899.0-10

  • package: tis-geogebra
  • name: GeoGebra Classic
  • version: 6.0.899.0-10
  • categories: Office
  • maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ,Simon FONTENEAU,Clément BAZIRET
  • editor: Markus Hohenwarter et al
  • licence: opensource_free,cpe:/a:gnu:gpl_v3,wapt_public
  • locale: all
  • target_os: windows
  • impacted_process: GeoGebra,GeoGebraCalculator,GeoGebraCAS,GeoGebraGeometry,GeoGebraGraphing
  • architecture: all
  • signature_date:
  • size: 96.03 Mo
  • installed_size: 283.83 Mo
  • homepage : https://www.geogebra.org/

package           : tis-geogebra
version           : 6.0.899.0-10
architecture      : all
section           : base
priority          : optional
name              : GeoGebra Classic
categories        : Office
maintainer        : WAPT Team,Tranquil IT,Jimmy PELÉ,Simon FONTENEAU,Clément BAZIRET
description       : GeoGebra is an interactive geometry, algebra, statistics and calculus application, intended for learning and teaching mathematics and science from primary school to university level.
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.3
sources           : https://www.geogebra.org/download
installed_size    : 283828911
impacted_process  : GeoGebra,GeoGebraCalculator,GeoGebraCAS,GeoGebraGeometry,GeoGebraGraphing
description_fr    : GeoGebra est un logiciel de géométrie dynamique en 2D/3D c'est-à-dire qu'il permet de manipuler des objets géométriques (cercle, droite et angle, par exemple) et de voir immédiatement le résultat. Il vient aussi avec un ensemble de fonctions algébriques.
description_pl    : GeoGebra to interaktywna aplikacja do geometrii, algebry, statystyki i rachunku, przeznaczona do uczenia się i nauczania matematyki i nauk ścisłych od szkoły podstawowej do poziomu uniwersyteckiego
description_de    : GeoGebra (Kofferwort aus Geometrie und Algebra) ist eine Dynamische-Geometrie-Software (DGS), die zu ihren geometrischen Objekten nicht nur die übliche geometrische, sondern auch eine algebraische Schnittstelle zur Verfügung stellt.
description_es    : GeoGebra es un software matemático interactivo libre para la educación en colegios y universidades.
description_pt    : O GeoGebra é uma aplicação interactiva de geometria, álgebra, estatística e cálculo, destinada à aprendizagem e ensino de matemática e ciências desde a escola primária até ao nível universitário
description_it    : GeoGebra è un'applicazione interattiva per la geometria, l'algebra, la statistica e il calcolo, destinata all'apprendimento e all'insegnamento della matematica e delle scienze dalla scuola primaria al livello universitario
description_nl    : GeoGebra is een interactieve toepassing voor meetkunde, algebra, statistiek en calculus, bedoeld voor het leren en onderwijzen van wiskunde en wetenschappen van lagere school tot universitair niveau
description_ru    : GeoGebra - это интерактивное приложение по геометрии, алгебре, статистике и исчислению, предназначенное для изучения и преподавания математики и естественных наук от начальной школы до университетского уровня
audit_schedule    : 
editor            : Markus Hohenwarter et al
keywords          : geo,gebra,geogebra,classic,algebra,geometry,learn,learning,mathematic,mathematics,science,sciences,school,university
licence           : opensource_free,cpe:/a:gnu:gpl_v3,wapt_public
homepage          : https://www.geogebra.org/
package_uuid      : 8a912717-fb10-423b-a82e-2de51db77b7e
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : https://wiki.geogebra.org/en/Reference:Changelog_6.0
min_os_version    : 6.1
max_os_version    : 
icon_sha256sum    : 0730fb5e292bf33108bee5fb8b987a88e2ee57f69cd01b6c6e606f93357f9e9d
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2025-09-12T14:00:18.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         : WRJw+Nhp/qz7EiYzsaVbHuMQ4FEsVSgh5DaPefgvTUT1HycexR0++nXleLP/HVMya77ESZOvO9bsJvM+qG/WfkACwI7SsBUpnOhcOV1AyLYY7zWy1IfkvfgH2FQzflirfTzyR8M3lumign96T2SGTU/eHwQuHy5oTh8Sg9WSXzII4HvAjuGAdpgSiy6rNDAGvi+a9P3DvkN5UNfjbJI2oCrNX1qHJOkdGZG188+spAozd7y+Xa+jXleT93juywMFXVB+XcDBlqBbyRMULPe1j9qsMBRY0u2EE/NWtvzDEGmXasT3z7CFPMudK8ooTr5RWcASpL4KiZCvhtO/mzQVSQ==

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


def install():
    bin_name = glob.glob("GeoGebra-Windows-Installer-*.msi")[0]

    # Uninstalling installed Geogebra versions
    for soft in installed_softwares("Geogebra"):
        print("Uninstalling %s (%s)" % (soft["name"], soft["version"]))
        run(soft["uninstall_string"] + " /q /norestart")

    # Installing the package
    install_msi_if_needed(
        bin_name,
        min_version=control.get_software_version(),
        properties={"ALLUSERS": "2"},
    )

    remove_desktop_shortcut("Geogebra")
    create_desktop_shortcut("Geogebra",target=makepath(programfiles32,"GeoGebra Classic","GeoGebra.exe"))

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


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

    url = "https://download.geogebra.org/installers/6.0/"

    binary_dict = bs_index_of_to_dict(url)

    # Getting the latest binary available
    latest_bin = "GeoGebra-Windows-Installer-1-0-0-0"
    file_ext = ".msi"
    for key in binary_dict.keys():
        if file_ext in key:
            key = key.strip(file_ext)
            if Version(".".join(key.split("-")[3:7])) > Version(".".join(latest_bin.split("-")[3:7])):
                latest_bin = key + file_ext

    download_url = binary_dict[latest_bin]
    version = ".".join(latest_bin.strip(file_ext).split("-")[3:7])

    # Deleting binaries
    remove_outdated_binaries("*")

    # 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)
    else:
        print("Binary is present: %s" % latest_bin)

    # Checking version from file
    if get_os_name() == "Windows" and "windows" in control.target_os.lower():
        version_from_file = get_version_from_binary(latest_bin)
        if Version(version_from_file, 3) == Version(version, 3):
            print("INFO: Binary file version corresponds to online version")
        else:
            error("ERROR: Binary file version do NOT corresponds to online version")

    # Changing version of the package
    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()

    # Validating update-package-sources
    return package_updated


def bs_index_of_to_dict(url, **kwargs):
    r"""Parse html "Index of" web page with BeautifulSoup and get a dict of the result

    Args:
        url (str): url of the web page to parse

    Return:
        result: a dict of the index URLs

    """
    result = {}
    for elem in bs_find_all(url, "a", "href"):
        if not "://" in elem["href"]:
            # absolute_link = urljoin(url, url + "/" + elem["href"] if not url.endswith("/") else url + elem["href"])
            absolute_link = url + "/" + elem["href"] if not url.endswith("/") else url + elem["href"]
        else:
            absolute_link = elem["href"]
        key = elem.text
        if key.endswith("..>"):  # if key.endswith("..>"):
            key = elem["href"]
        result[key] = absolute_link
    return result

bd7988ef797de928308d84271123a51140fc57b6aa943b53bf49284db2df3420 : GeoGebra-Windows-Installer-6-0-899-0.msi
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
71fc7988fc8e4fddc48a611673f283316c19c1e94cdd7796b327d8600ee0a818 : WAPT/control
0730fb5e292bf33108bee5fb8b987a88e2ee57f69cd01b6c6e606f93357f9e9d : WAPT/icon.png
9626cab2a29aad6614f4685c3a0b038bbd277f2121f9cc10c3e3d1d8d5e7fb06 : luti.json
7ebb0ab62d7adc3419ab1a8386f428800dfc50363d02c2cea69ec3ea53f0de1d : setup.py
a9c31700b5163b6156e2faa8502753af2c8bc8a7b517a24fe83279349596cc6c : update_package.py