tis-mongodb-server-community-7 icon

MongoDB Server Community

Paquet d’installation silencieuse pour MongoDB Server Community

7.0.29.0-6
System and network
System and network

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-mongodb-server-community-7
version           : 7.0.29.0-6
architecture      : x64
section           : base
priority          : optional
name              : MongoDB Server Community
categories        : System and network
maintainer        : Kevin Guerineau
description       : MongoDB is a document-oriented database management system that can be distributed to any number of computers and does not require a predefined data schema.
depends           : 
conflicts         : tis-mongodb-server-community-6,tis-mongodb-server-community-5
maturity          : PREPROD
locale            : all
target_os         : debian-bookworm
min_wapt_version  : 2.2
sources           : 
installed_size    : 
impacted_process  : 
description_fr    : MongoDB est un système de gestion de base de données orienté documents, répartissable sur un nombre quelconque d'ordinateurs et ne nécessitant pas de schéma prédéfini des données.
description_pl    : MongoDB to zorientowany na dokumenty system zarządzania bazą danych, który może być dystrybuowany do dowolnej liczby komputerów i nie wymaga predefiniowanego schematu danych.
description_de    : MongoDB ist ein dokumentenorientiertes Datenbankverwaltungssystem, das auf beliebig vielen Computern verteilt werden kann und kein vordefiniertes Datenschema benötigt.
description_es    : MongoDB es un sistema de gestión de bases de datos orientado a documentos que puede distribuirse a cualquier número de ordenadores y no requiere un esquema de datos predefinido.
description_pt    : MongoDB é um sistema de gestão de bases de dados orientado para a documentação que pode ser distribuído para qualquer número de computadores e não requer um esquema de dados pré-definido.
description_it    : MongoDB è un sistema di gestione di database orientato ai documenti che può essere distribuito su un numero qualsiasi di computer e non richiede uno schema di dati predefinito.
description_nl    : MongoDB is een documentgeoriënteerd databasebeheersysteem dat op een willekeurig aantal computers kan worden gedistribueerd en geen vooraf gedefinieerd gegevensschema vereist.
description_ru    : MongoDB - это документо-ориентированная система управления базами данных, которая может быть распространена на любом количестве компьютеров и не требует предопределенной схемы данных.
audit_schedule    : 
editor            : MongoDB, Inc
keywords          : 
licence           : AGPL3.0
homepage          : https://www.mongodb.com
package_uuid      : fee611ed-0a2a-46ae-95a8-731f50af241f
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 6c1229fda0b906acc164f55d1c3b9b221a60b7b009b795fcc9d2da85e1f25eb3
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2026-01-28T00:06:29.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         : kBAB2/AfFa0BvP7UTzr08ravQaDQ2nIF7OBuWzwsjY8mFwU0GP+S9+fMAIKqA5q4K82rnEW4Kpc1EiF4DqDb8Tzh5BFkhWg+Q8Xkfc0wLC296ujz0FJOnZOrfapQxncMtt4PF+yyct4MvOnxuZoORijMpRQ12SliWy9/JiZca2CZuNp9GrH4N+viijl3nz1WoWW7p4MJir/5uGBWAFv0ujMr+he0IOpWxEfK/+4L5JR9slsu8JSKVjXB8WvJNU9wHo1Bd9672gqXV3ZKK0MP/8/kwud267A79h6pfFwA1yFrelDZDLx7nbBJDMlx3UXlWJXX2NMOwA4/iX/Be2dhnQ==

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

def install():
    run("LANG=C DEBIAN_FRONTEND=noninteractive apt-get install ./*.deb -y --allow-downgrades")

    print('Enable and start mongod service')
    systemd_enable_start_service('mongod')


def uninstall():
    uninstall_apt("mongodb-database-tools mongodb-mongosh mongodb-org-database mongodb-org-database-tools-extra mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools",autoremove=True)



# -*- coding: utf-8 -*-
from setuphelpers import *
import gzip
from io import BytesIO
from setuphelpers import Version,wgets
from setupdevhelpers import *
import requests

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

    if not proxies:
        proxies = get_proxies()

    dict_arch = {"x64": "amd64"}

    urldepot = 'http://repo.mongodb.org/apt/debian'
    dist = control.target_os.split('-')[1]

    arch = dict_arch[control.architecture]
    package_name_list = ["mongodb-org-server","mongodb-org","mongodb-database-tools","mongodb-mongosh","mongodb-org-database","mongodb-org-database-tools-extra","mongodb-org-mongos","mongodb-org-shell","mongodb-org-tools"]

    if len(dist.split(' ')) < 2 :
        dist = dist + "/mongodb-org/7.0" +  ' ' + "main"

    disturl = dist.replace(' ','/')

    with gzip.open(BytesIO(requests.get('%s/dists/%s/binary-%s/Packages.gz' % (urldepot,disturl,arch),proxies=proxies).content)) as f:
        data = f.read().decode('utf-8')

    list_package = listcontrol_to_dict_data(data,'\nPackage: ')
    all_dep=[]

    last_version= None
    list_deb = []
    for package_name in package_name_list :

        last_package = sorted([u for u in list_package if u['package'] == package_name], key=lambda p: (Version(p['version'].split(':',1)[-1].split('+')[0],4)), reverse=True)[0]
        if not last_version:
            last_version = last_package['version'].split(':',1)[-1].split('+')[0]

        all_dep.append(last_package)

        for s in last_package.get('depends','').split(','):
            for p in s.split('|'):
                get_all_dep_version_pacakge(list_package,p.split('(')[0].strip(),all_dep)

        for u in all_dep:
            list_deb.append(urldepot + '/' + u['filename'])

    list_all_file = []
    for f in list_deb:
        filename = f.split('/')[-1]
        list_all_file.append(filename)
        if not isfile(filename):
            wget(f,filename,proxies=proxies)

    for f in glob.glob('*.deb'):
        if not f in list_all_file:
            remove_file(f)

    control.set_software_version(str(Version(last_version,4)).split('-')[0])
    control.save_control_to_wapt()



def listcontrol_to_dict_data(data=None, first_entry=None):
    list_package = '\n' + data
    list_control=[]
    for i in list_package.split(first_entry):
        if not i.strip('\n'):
            continue
        list_control.append(first_entry.replace('\n','') + i)

    list_package = []
    for pkg in list_control:
        entry = {}
        gpg = False
        for l in pkg.split('\n'):

            if '-----BEGIN PGP PUBLIC KEY BLOCK-----' in l:
                gpg = True
                continue
            if '-----END PGP PUBLIC KEY BLOCK-----' in l:
                gpg = False
                continue
            if gpg :
                continue

            if not l:
                continue
            if (':' in l) and (not '::' in l) and (not l.startswith(' ')) :
                key = l.split(':',1)[0].strip().lower()
                value = l.split(':',1)[1].strip()
                entry[key] = value.strip('\n')
            else:
                entry[key] =  entry[key].strip('\n') + ' ' if entry[key].strip() else "" + l.strip()

        list_package.append(entry)
    return list_package

def get_all_dep_version_pacakge(list_package,package_name,all_dep):
    last_package = sorted([u for u in list_package if u['package'] == package_name], key=lambda p: (Version(p['version'].split(':',1)[-1].split('+')[0])), reverse=True)
    if last_package:
        last_package = last_package[0]
        all_dep.append(last_package)
    else:
        return
    for k in last_package.get('depends','').split('|'):
        for p in k.split(','):
            get_all_dep_version_pacakge(list_package,p.split('(')[0].strip(),all_dep)

01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
20bf37f05a85fe1b325cd3df87da233a259996b39d168dc819703d9404ce3f54 : WAPT/control
6c1229fda0b906acc164f55d1c3b9b221a60b7b009b795fcc9d2da85e1f25eb3 : WAPT/icon.png
815a3ca2b36e0ca2d2ddef04e6c074aff6624d544c1a4fca3d7ac969421ba848 : luti.json
4a44a8d8cfa54527662a5cc8b312fc4078af802d4fac2b6cdb18efe8f3694a0a : mongodb-database-tools_100.14.0_amd64.deb
aa566d11eb8d3a5385347a982f8ba85260bfd2881a551001f4c7d42d73ce85fa : mongodb-mongosh_2.6.0_amd64.deb
462a14173b9c1b63c66187b214c660c905075d8f89bdfdd3585c82a5967e48be : mongodb-org-database-tools-extra_7.0.29_amd64.deb
0fee970514ac073d3ee4abfd08b3dbe2952f8d7f4310b460a51691f7c40ad6c6 : mongodb-org-database_7.0.29_amd64.deb
2d878b25601694939880d05a06e0eeb3cde7d3edfe9bcc787ca8174b6cf2dc2e : mongodb-org-mongos_7.0.29_amd64.deb
82c57f522eaa96e19ac5199073f17fb0baaf33784958afbabf93c40746d54678 : mongodb-org-server_7.0.29_amd64.deb
9fc2e42801ea2f25756691fbbf6922ea2b10dffaf9260d95212b0d9bd33f9cee : mongodb-org-shell_7.0.29_amd64.deb
f53fa71aa82ac81d14c0bb20359116f5ba8d9c11711be7d84f9c09fbc289a7d2 : mongodb-org-tools_7.0.29_amd64.deb
e4999f9177835b5394f374479f92e4620583f2005ad0a574051b906205e4025f : mongodb-org_7.0.29_amd64.deb
5325a210892c3ea085026662a958a9d56c1b79ebec29cf6253629ea4ad67a5e4 : setup.py
fa2bc40673cff707e8837e3ef6c29d88a576cd2a5241fc935d548d6b7967ae64 : update_package.py