tis-linphone

5.2.6-11
Linphone is an open source softphone for voice and video over IP calling and instant messaging. It is fully SIP-based, for all calling, presence and IM features
2666 downloads
Download
See build result See VirusTotal scan
tis-linphone icon
  • package : tis-linphone
  • name : Linphone
  • version : 5.2.6-11
  • categories : Messaging
  • maintainer : WAPT Team,Tranquil IT,Alexandre Gauvrit,Jimmy PELÉ
  • installed_size : 317656975
  • editor : Belledonne Communications
  • licence : opensource_free,cpe:/a:gnu:gpl_v3,wapt_private
  • signature_date : 2024-09-30T10:29:45.000000
  • size : 108.26 Mo
  • locale : all
  • target_os : linux
  • impacted_process : linphone
  • architecture : x64
  • Homepage : https://www.linphone.org/
package           : tis-linphone
version           : 5.2.6-11
architecture      : x64
section           : base
priority          : optional
name              : Linphone
categories        : Messaging
maintainer        : WAPT Team,Tranquil IT,Alexandre Gauvrit,Jimmy PELÉ
description       : Linphone is an open source softphone for voice and video over IP calling and instant messaging. It is fully SIP-based, for all calling, presence and IM features
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : linux
min_wapt_version  : 2.3
sources           : https://www.linphone.org/technical-corner/linphone
installed_size    : 317656975
impacted_process  : linphone
description_fr    : Linphone est un softphone open source pour les appels vocaux et vidéo sur IP et la messagerie instantanée. Il est entièrement basé sur le protocole SIP, pour toutes les fonctions d'appel, de présence et de messagerie instantanée
description_pl    : Linphone to softphone o otwartym kodzie źródłowym do połączeń głosowych i wideo przez IP oraz komunikatorów internetowych. Jest w pełni oparty na protokole SIP dla wszystkich funkcji połączeń, obecności i wiadomości błyskawicznych
description_de    : Linphone ist ein Open-Source-Softphone für Sprach- und Videoanrufe über IP und Instant Messaging. Es ist vollständig SIP-basiert, für alle Anruf-, Präsenz- und IM-Funktionen
description_es    : Linphone es un softphone de código abierto para llamadas de voz y vídeo sobre IP y mensajería instantánea. Está totalmente basado en SIP, para todas las funciones de llamada, presencia y mensajería instantánea
description_pt    : O Linphone é um softphone de código aberto para chamadas de voz e vídeo sobre IP e mensagens instantâneas. É totalmente baseado em SIP, para todas as funcionalidades de chamada, presença e IM
description_it    : Linphone è un softphone open source per chiamate vocali e video su IP e messaggistica istantanea. È completamente basato su SIP, per tutte le funzioni di chiamata, presenza e messaggistica istantanea
description_nl    : Linphone is een open source softphone voor spraak en video over IP bellen en instant messaging. Het is volledig gebaseerd op SIP, voor alle functies voor bellen, aanwezigheid en IM
description_ru    : Linphone - это программный телефон с открытым исходным кодом для голосовых и видеовызовов по IP и обмена мгновенными сообщениями. Он полностью основан на протоколе SIP и обеспечивает все функции звонков, присутствия и обмена мгновенными сообщениями
audit_schedule    : 
editor            : Belledonne Communications
keywords          : 
licence           : opensource_free,cpe:/a:gnu:gpl_v3,wapt_private
homepage          : https://www.linphone.org/
package_uuid      : 071e62e2-3438-43f2-a531-2185a1fdc5a4
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 73897b6f03daf2d4bbe00c4d1e75819b9b9f69415cae467997665ddcba080ea5
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date    : 2024-09-30T10:29:45.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         : jHVIn7aT/wLV7DEd9CUEtOQtF+74AILFkAp4iddt4+nSr6E67kBTgN4CKRRhYMt0fY2gTPgb2150bJtTFyuhqkpShJ3AURyNx9XtPxD4iy9prnUjftfOFTPVyKGnbZTGt45iqRJ+qlsrjnqNOYaz6iVGxtmZ//5qPvBltL1qYsY4IOyIN+37xibQtUG3d6bTmA1C7C7Ms0VKtsjhjz3P5+pNk1hz3fQcxJpPs0LvGRrS+XiqO7C6oP/49ggBhNuxjCqdfONERcGO0zhtjWUGB0LlQg9u/+0a/U13fFrkZKIWYYYZWaoDEe/CbujDr2VF+i5RnWu4Damtf9zFu0foTA==
# -*- coding: utf-8 -*-
##################################################
# This file is part of WAPT Enterprise
# All right reserved, (c) Tranquil IT Systems 2024
# For more information please refer to
# https://wapt.tranquil.it/store/licences.html
##################################################
from setuphelpers import *
from iniparse import ConfigParser
import os


def install():
    install_dir = makepath('/','opt',control.package.split('-',1)[1])
    appimage = glob.glob("*.AppImage")[0]
    install_appimage(appimage,install_dir)

def uninstall():
    install_dir = makepath('/','opt',control.package.split('-',1)[1])
    uninstall_appimage(install_dir)

def install_appimage(appimage,install_dir,binaliasname=None):
    run('chmod a+x ./' + appimage)

    if isdir(install_dir):
        uninstall_appimage(install_dir)

    mkdirs(install_dir)

    name_appimage = appimage.split('/')[-1]
    filecopyto(appimage, makepath(install_dir, name_appimage))
    run('"./%s" --appimage-extract' % appimage)
    

    for desktop in glob.glob(makepath('squashfs-root','*.desktop')):
 
        desktop_cp = ConfigParser()
        desktop_cp.optionxform = str
        desktop_file = open(desktop, encoding="utf-8")
        desktop_cp.readfp(desktop_file)
        bin_path = desktop_cp.get('Desktop Entry',"Exec")

        newbin_path = install_dir + '/' + name_appimage
        if ' %' in bin_path:
            newbin_path = newbin_path + ' %' + bin_path.split(' %',1)[1]

        icon_path = desktop_cp.get('Desktop Entry',"Icon")

        srcicon = makepath('squashfs-root',icon_path +'.svg')
        if not isfile(srcicon):
            srcicon = makepath('squashfs-root',icon_path +'.png')

        if not isfile(srcicon):
            lstglob = glob.glob(makepath('squashfs-root','*.svg'))
            if lstglob :
                srcicon=lstglob[0]

        if not isfile(srcicon):
            lstglob = glob.glob(makepath('squashfs-root','*.png'))
            if lstglob :
                srcicon=lstglob[0]
            else:
                srcicon = None

        if srcicon:            
            new_icon = install_dir + '/' + srcicon.split('/')[-1]
            filecopyto(srcicon,new_icon)
            desktop_cp.set('Desktop Entry',"Icon",new_icon) 

        desktop_cp.set('Desktop Entry',"Exec",newbin_path)
       
        with open(desktop, 'w', encoding="utf-8") as f:
            desktop_cp.write(f)

        pathdesk = makepath(install_dir,desktop.split('/')[-1])
        filecopyto(desktop, pathdesk)
        run('chown root:root "%s" ' % pathdesk)

    for f in glob.glob(makepath(install_dir,'*.desktop')):
        run('ln -sf "%s" "/usr/share/applications/%s"' % (f,f.split('/')[-1]))

    if binaliasname :
        run(f"ln -sf {install_dir}/{name_appimage} /usr/bin/{binaliasname}")

    remove_tree('squashfs-root')

def uninstall_appimage(install_dir):

    if not glob.glob(makepath(install_dir,'*.desktop')):
        error('.desktop not found')

    for f in glob.glob(makepath(install_dir,'*.desktop')):
        deskfile = f.split('/')[-1]
        system_desktop = makepath("/","usr","share","applications",deskfile)
        if isfile(system_desktop):
            remove_file(system_desktop)
    remove_tree(install_dir)
# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *
import bs4 as BeautifulSoup
from urllib.parse import urlparse, urljoin
import requests

def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    download_dict = {
        "windows": "https://download.linphone.org/releases/windows/app/",
        "macos": "https://download.linphone.org/releases/macosx/app/",
        "linux": "https://download.linphone.org/releases/linux/app/?C=N;O=D",
    }
    url = download_dict[control.target_os]

    for bs_search in bs_find_all(url, "table", proxies=proxies):
        latest_bin = bs_search.findChildren(recursive=False)[4].find('a').text
        download_url = "https://download.linphone.org/releases/linux/app/" + latest_bin
        version = latest_bin.split('-', 1)[1].rsplit('.', 1)[0]


    # Downloading latest binaries
    print("Latest %s version is: %s" % (control.name, version))
    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)

    # Deleting outdated binaries
    remove_outdated_binaries(latest_bin)

    
    control.set_software_version(version)
    control.save_control_to_wapt()
84b3f0accf8a34cbd45550bfde3b5a72f392801cec9525f0b8780e6e97444762 : Linphone-5.2.6.AppImage
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
3f5ebbcb79a53408535eb01ff9d8b6672817484962fb8dc62af12df1f59d0698 : WAPT/control
73897b6f03daf2d4bbe00c4d1e75819b9b9f69415cae467997665ddcba080ea5 : WAPT/icon.png
f1ece53756fc7e37c2f893b857fa328121dc559f8267e18e8776851a6e4f96b5 : luti.json
223fa6ca0b4ed15f7d1a2e29893619511e043c7907d145e8c8991405677bb4e1 : setup.py
4ad09f9fb5f290f0abf828bb08afaa2ed6653531ac0db770665fbd5c3a7aa73c : update_package.py