XPipe
Paquet d’installation silencieuse pour XPipe
20.2-1
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-xpipe
- name: XPipe
- version: 20.2-1
- maintainer: Jordan ARNAUD
- target_os: linux
- architecture: arm64
- signature_date:
- size: 190.81 Mo
- homepage : https://xpipe.io/
package : tis-xpipe
version : 20.2-1
architecture : arm64
section : base
priority : optional
name : XPipe
categories :
maintainer : Jordan ARNAUD
description : Hub for centralized connections (SSH, PowerShell, Dockers, etc.) and remote system administration
depends :
conflicts :
maturity : PREPROD
locale :
target_os : linux
min_wapt_version :
sources :
installed_size :
impacted_process :
description_fr : Hub pour centraliser des connexion (SSH, PowerShell, Dockers, etc...) et administrer des système à distance
description_pl : Hub do centralizacji połączeń (SSH, PowerShell, Dockers itp.) i administrowania zdalnymi systemami
description_de : Hub, um Verbindungen zu zentralisieren (SSH, PowerShell, Dockers, etc.) und Systeme aus der Ferne zu verwalten
description_es : Hub para centralizar conexiones (SSH, PowerShell, Dockers, etc.) y administrar sistemas remotos
description_pt : Hub para centralizar ligações (SSH, PowerShell, Dockers, etc.) e administrar sistemas remotos
description_it : Hub per la centralizzazione delle connessioni (SSH, PowerShell, Docker, ecc.) e l'amministrazione di sistemi remoti
description_nl : Hub voor het centraliseren van verbindingen (SSH, PowerShell, Dockers, enz.) en het beheren van externe systemen
description_ru : Концентратор для централизации подключений (SSH, PowerShell, Dockers и т. д.) и администрирования удаленных систем
audit_schedule :
editor :
keywords :
licence :
homepage : https://xpipe.io/
package_uuid : 75b790bb-46fa-490b-a0da-29f660774b38
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : 1922a912047a3e311d8e87c77ea4a4fbce9f31baf03f32d178c14d7898948d86
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2026-01-04T04:23: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 : qyU/+kZEBWjAQtWQoOXDDtstnTpO14WIVU4ezcDVsNP+gQuOdFfxBz1YeuoTZND68tDYLRdnp422WILCFPkvLFP+68J58LVuXCTJf0uTIITDf9Jp5qi6232UWndW9FN33AQlciY4p6jRg9EOY5db73GMO7cd999p4m1d8YTboEvn/SmJXIHASQyivEgOKm5IV8cjSJyAkCW+d0jod02rzDNS84mtAtuqXvioB0fwc2Bkv6K7wyZS5tREBKlouM/5068f8gmCl66jHdbwQmiv3JzSapb4GItcBGtTYz0+zMJIgODCUgn2oqeyTNj4E1yAJYtX+ioMDRyDb+4pqJGMUA==
# -*- 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 json
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
def update_package():
result = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
git_repo = "xpipe-io/xpipe"
url_api = "https://api.github.com/repos/%s/releases/latest" % git_repo
# Getting latest version information from official sources
print("API used is: %s" % url_api)
json_load = json.loads(wgets(url_api, proxies=proxies))
for download in json_load["assets"]:
if download["browser_download_url"].endswith('arm64.AppImage'):
url_dl = download["browser_download_url"]
version = json_load["name"]
filename = download["name"]
break
if not isfile(filename):
package_updated = True
print(f"Downloading " + filename)
wget(url_dl,filename,proxies=proxies)
#nettoyer les fichiers temporaires
for f in glob.glob('*.AppImage'):
if f != filename:
remove_file(f)
control.set_software_version(version)
control.save_control_to_wapt()
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
34c0c922134921b472208fdd37d6b999d2fa3e2fde7505356211ce0ad0145cd7 : WAPT/control
1922a912047a3e311d8e87c77ea4a4fbce9f31baf03f32d178c14d7898948d86 : WAPT/icon.png
afd247c8c383e99d39f3fc4dca4bee48ba0e8c0a2e4e71b43ddc3cf7a20393e7 : luti.json
223fa6ca0b4ed15f7d1a2e29893619511e043c7907d145e8c8991405677bb4e1 : setup.py
2c8224101129e9e97122a037a93984409eef487b73e6baba4e1e7145da26076a : update_package.py
20049dd4c3c384471209931901caa85205f2a5a9130842f011a5824e75da91a6 : xpipe-portable-linux-arm64.AppImage