Rust
Paquet d’installation silencieuse pour Rust
1.93.1-1
Development
Development
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-rust
- name: Rust
- version: 1.93.1-1
- categories: Development
- maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
- licence: opensource_free,wapt_public
- locale: all
- target_os: darwin
- impacted_process: rustc,rustdoc,rust-lld,rust-analyzer-proc-macro-srv,cargo-credential-wincred,cargo-credential-1password,cargo
- architecture: arm
- signature_date:
- size: 389.53 Mo
- installed_size: 375.83 Mo
package : tis-rust
version : 1.93.1-1
architecture : arm
section : base
priority : optional
name : Rust
categories : Development
maintainer : WAPT Team,Tranquil IT,Jimmy PELÉ
description : Rust is a multi-paradigm compiled programming language designed and developed by Mozilla Research since 2010. It was designed to be "a reliable, concurrent, practical language"
depends :
conflicts :
maturity : PREPROD
locale : all
target_os : darwin
min_wapt_version : 2.3
sources : https://forge.rust-lang.org/infra/other-installation-methods.html#standalone-installers
installed_size : 375830794
impacted_process : rustc,rustdoc,rust-lld,rust-analyzer-proc-macro-srv,cargo-credential-wincred,cargo-credential-1password,cargo
description_fr : Rust est un langage de programmation compilé multi-paradigme conçu et développé par Mozilla Research depuis 2010. Il a été conçu pour être "un langage fiable, concurrent et pratique"
description_pl : Rust to wieloparadygmatowy, kompilowany język programowania zaprojektowany i rozwijany przez Mozilla Research od 2010 roku. Został zaprojektowany jako "niezawodny, współbieżny, praktyczny język"
description_de : Rust ist eine kompilierte Multi-Paradigma-Programmiersprache, die seit 2010 von Mozilla Research entworfen und entwickelt wird. Sie soll "eine zuverlässige, nebenläufige, praktische Sprache" sein
description_es : Rust es un lenguaje de programación compilado multiparadigma diseñado y desarrollado por Mozilla Research desde 2010. Fue diseñado para ser "un lenguaje fiable, concurrente y práctico"
description_pt : Rust é uma linguagem de programação compilada multiparadigma concebida e desenvolvida pela Mozilla Research desde 2010. Foi concebida para ser "uma linguagem fiável, concorrente e prática"
description_it : Rust è un linguaggio di programmazione compilato multi-paradigma progettato e sviluppato da Mozilla Research a partire dal 2010. È stato progettato per essere "un linguaggio affidabile, concorrente e pratico"
description_nl : Rust is een multi-paradigma gecompileerde programmeertaal, ontworpen en ontwikkeld door Mozilla Research sinds 2010. Het is ontworpen om "een betrouwbare, gelijktijdige, praktische taal" te zijn
description_ru : Rust - это мультипарадигмальный компилируемый язык программирования, разработанный и развиваемый Mozilla Research с 2010 года. Он был задуман как "надежный, параллельный, практичный язык"
audit_schedule :
editor :
keywords :
licence : opensource_free,wapt_public
homepage :
package_uuid : 8dfbc073-ea32-46ea-a3df-32215ec0377a
valid_from :
valid_until :
forced_install_on :
changelog : https://releases.rs/
min_os_version :
max_os_version :
icon_sha256sum : fe914ad761fb21126e7ec721598b2397368d3d44a06e7569419adb608ae67efc
signer : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date : 2026-02-12T21:00:37.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 : DESaoZ4B8+Yajt7I+fdX7NEKo6zes56tmtoa8JgPjTfrYAWhRj9/H4lRiEsDx36fRITPjgutUXDL4CC2lJcY0havZmwvP2IkFFC0sq/RVuy/ft9C02MCPCpg18tzOBLATL+Qdd9DLJ62pCQao9wcRdRxgFSMALz2MzFDtYDMcNg+hBBlmuKRQC7SQgQRq40LPBTaNtvuuxOt+vBv4GjdCwEKkaKxhuovGrxTz1hNT2+QDDnEXxazHOqaa/w5KKmhQjfBlBi90aEQudVo8a3cvBIldCLe1PUIXP3qgYLl3SFFVQ428L1C/z3i/wM6898hic6a4Q9bFvb31WXRKzszbg==
# -*- coding: utf-8 -*-
from setuphelpers import *
import tarfile
from typing import List, Optional
"""
cat /usr/local/lib/rustlib/install.log
$ umask 022 && mkdir -p "/usr/local/lib/rustlib"
$ echo "3" > "/usr/local/lib/rustlib/rust-installer-version"
install: creating uninstall script at /usr/local/lib/rustlib/uninstall.sh
$ cp /tmp/PKInstallSandbox.JvMok7/Scripts/org.rust-lang.rust-docs.H6cFvA/install.sh /usr/local/lib/rustlib/uninstall.sh
install: installing component 'rust-docs'
$ echo "rust-docs" >> "/usr/local/lib/rustlib/components"
$ umask 022 && mkdir -p "/usr/local/share/doc/rust"
install: copying directory /usr/local/share/doc/rust/html
$ cp -R /tmp/PKInstallSandbox.JvMok7/Scripts/org.rust-lang.rust-docs.H6cFvA/rust-docs/share/doc/rust/html /usr/local/share/doc/rust/html
$ chmod -R u+rwX,go+rX,go-w /usr/local/share/doc/rust/html
$ echo "dir:/usr/local/share/doc/rust/html" >> "/usr/local/lib/rustlib/manifest-rust-docs"
"""
components_to_install = ["rustc", "cargo", "rust-std-aarch64-apple-darwin"]
app_dir = "/opt/rust"
app_sys_path = makepath(app_dir, "bin")
def install():
zip_name = glob.glob("rust-*.tar.gz")[0]
sub_dir = zip_name.rsplit(".tar", 1)[0]
# Get components list (corresponding to subfolders)
with tarfile.open(zip_name, "r") as tar:
file = tar.extractfile(f"{sub_dir}/components")
if file:
content = file.read()
components = content.decode().splitlines()
print("Installing: %s to: %s" % (zip_name, app_dir))
exclude_list = [f'{sub_dir}/{c}' for c in components if c and c not in components_to_install]
extract_tar(zip_name, exclude_list=exclude_list)
print(run(f'{makepath(sub_dir, "install.sh")} --prefix="{app_dir}" --components="{",".join([a for a in components_to_install])}"'))
print('Linking rustc binary')
if os.path.isfile('/opt/rust/bin/rustc'):
print('ln -s /opt/rust/bin/rustc /usr/local/bin/rustc')
remove_file('/usr/local/bin/rustc')
run('ln -s /opt/rust/bin/rustc /usr/local/bin/rustc')
print('Linking cargo binary')
if os.path.isfile('/opt/rust/bin/cargo'):
print('ln -s /opt/rust/bin/cargo /usr/local/bin/cargo')
remove_file('/usr/local/bin/cargo')
run('ln -s /opt/rust/bin/cargo /usr/local/bin/cargo')
def uninstall():
if isfile(makepath(app_dir, "uninstall.sh")):
run(makepath(app_dir, "uninstall.sh"))
if isdir(app_dir):
remove_tree(app_dir)
remove_file('/usr/local/bin/cargo')
remove_file('/usr/local/bin/rustc')
def extract_tar(
tar_path: str,
extract_path: str = ".",
exclude_list: Optional[List[str]] = None,
include_list: Optional[List[str]] = None
) -> None:
"""
Extracts a tar archive to the given directory, with optional inclusion or exclusion filtering.
:param tar_path: Path to the .tar (or .tar.gz, .tar.bz2, etc.) archive.
:param extract_path: Directory where files should be extracted.
:param exclude_list: List of path prefixes to exclude from extraction.
:param include_list: List of path prefixes to include exclusively. Overrides exclude_list if provided.
"""
with tarfile.open(tar_path, 'r:*') as tar:
all_members = tar.getmembers()
if include_list:
include_set = set(include_list)
members = [
m for m in all_members
if any(m.name.startswith(inc) for inc in include_set)
]
elif exclude_list:
exclude_set = set(exclude_list)
members = [
m for m in all_members
if not any(m.name.startswith(exc) for exc in exclude_set)
]
else:
members = all_members
tar.extractall(path=extract_path, members=members)
# -*- coding: utf-8 -*-
from setuphelpers import *
import json
def update_package():
# Declaring local variables
package_updated = False
proxies = get_proxies()
if not proxies:
proxies = get_proxies_from_wapt_console()
git_repo = "rust-lang/rust"
url_api = "https://api.github.com/repos/%s/releases/latest" % git_repo
# Getting latest informations from Github API
json_load = json.loads(wgets(url_api, proxies=proxies))
version = json_load["tag_name"]
download_dict = {
"windows-x64": f"https://static.rust-lang.org/dist/rust-{version}-x86_64-pc-windows-msvc.msi",
"windows-x86": f"https://static.rust-lang.org/dist/rust-{version}-i686-pc-windows-msvc.msi",
"windows-all": f"https://static.rust-lang.org/dist/rust-{version}-i686-pc-windows-msvc.msi",
"linux-x64": f"https://static.rust-lang.org/dist/rust-{version}-x86_64-unknown-linux-gnu.tar.gz",
"linux-arm64": f"https://static.rust-lang.org/dist/rust-{version}-aarch64-unknown-linux-gnu.tar.gz",
"darwin-x64": f"https://static.rust-lang.org/dist/rust-{version}-x86_64-apple-darwin.tar.gz",
"darwin-arm": f"https://static.rust-lang.org/dist/rust-{version}-aarch64-apple-darwin.tar.gz",
"linux-arm": f"https://static.rust-lang.org/dist/rust-{version}-armv7-unknown-linux-gnueabihf.tar.gz"
}
download_url = download_dict[control.target_os + "-" + ensure_list(control.architecture)[0]]
latest_bin = download_url.split("/")[-1]
# 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)
# 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()
# Deleting outdated binaries
remove_outdated_binaries(latest_bin, ["exe", "msi", "deb", "rpm", "dmg", "pkg", ".tar.gz", ".tar"])
# Validating or not update-package-sources
return package_updated
01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
ce00ed8074e4d20d824c4acd3cb4c9d68b1b5efc6585f447504e5e87b5321569 : WAPT/control
fe914ad761fb21126e7ec721598b2397368d3d44a06e7569419adb608ae67efc : WAPT/icon.png
b6b9ceda48fa8588a85c7f8516642a2a7696cf1c9fd586b2cf1e9cf3b394474a : luti.json
6bafa3b5367019c576751741295e06717f8f28c9d0e6631dcb9496cd142a386a : rust-1.93.1-aarch64-apple-darwin.tar.gz
724295e546f13084023409102e52530cb803d909b2c84cb16c902ddf113ab089 : setup.py
f6674b248a0b9619f358fda11ad6d3a0c4486c6459e3fc2cb4d0bbe7164b5813 : update_package.py