XPipe
Paquet d’installation silencieuse pour XPipe
22.4-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: 22.4-1
- maintainer: Jordan ARNAUD
- target_os: linux
- architecture: arm64
- signature_date:
- size: 195.12 Mo
- homepage : https://xpipe.io/
package : tis-xpipe
version : 22.4-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 : 2192a800-3752-493c-aa0a-5ec6c8b5b85a
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-04-03T01:32: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 : KX/x35w3YzCZZrcqDJbbvvXKLq8rAwSN5IdV3gYd2u3Z8wDLRSm56R+zIq+qey9SGK4D6KiihMdWXb3hYuXk1XAjfAMIFyZjuE1jjt/CHqo25fVkJ5WSEkPjm9ywmInYtwJauyVTSj0oLyaT7Ow0gOzsp1jYoaIAHys007+w+O9GaeNs+XdG4Ga/g35xcIYGShJ6gFooTc0vI/OdITubk8Y/UAMcFzk1gEP4ScRAXR/tOpAxPRU2Y1Y/B16M/fc86f3l4BnfohHXVBgRg7vICF4Hv7JyWDkYKyvX9nJvhTi4GtcxeapgATvqZb29BNS/xWxIASuZiy3gN78ZKmByxg==
# -*- 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
dc81964ca2be77a82232c88597b415a8f27ab8a4d2a080d6004d79b018685fab : WAPT/control
1922a912047a3e311d8e87c77ea4a4fbce9f31baf03f32d178c14d7898948d86 : WAPT/icon.png
72c20cc20722a16378e2ae46e30e3fdececa36df555a2d6fe71aa2899df2df5b : luti.json
223fa6ca0b4ed15f7d1a2e29893619511e043c7907d145e8c8991405677bb4e1 : setup.py
2c8224101129e9e97122a037a93984409eef487b73e6baba4e1e7145da26076a : update_package.py
c457335387ee61ad6daebdf8b57f6cf9d6f66ede0f06089c91292da7a60864cf : xpipe-portable-linux-arm64.AppImage