- package: tis-rust
- name: Rust
- version: 1.86.0-0
- categories: Development
- maintainer: WAPT Team,Tranquil IT,Jimmy PELÉ
- licence: opensource_free,wapt_public
- locale: all
- target_os: linux
- impacted_process: rustc,rustdoc,rust-lld,rust-analyzer-proc-macro-srv,cargo-credential-wincred,cargo-credential-1password,cargo
- architecture: x64
- signature_date:
- size: 351.17 Mo
- installed_size: 375.83 Mo
package : tis-rust
version : 1.86.0-0
architecture : x64
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 : PROD
locale : all
target_os : linux
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 : b11966e4-f468-4952-9715-2b79d7e24e49
valid_from :
valid_until :
forced_install_on :
changelog : https://releases.rs/
min_os_version :
max_os_version :
icon_sha256sum : fe914ad761fb21126e7ec721598b2397368d3d44a06e7569419adb608ae67efc
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2025-04-08T13:28:34.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 : cHAxrNr3TfDt/4w4ijgk3fbrtG0U2uG5rR/MYX7T7v8fkQhm3+z/OA3muW8ivYnsTDAo4wqdxN0wqEQIfko/yCRS5aKj+oyMehp+Tuoj1hXfuxs3mckDSNTKU2ZgnbMG74CpzjdLELmZp+G97VFJHahvG1kGA86P79zYYzFzUgtgBE7OuV0lcLuEL9im3naCrrREeZobK+B7h4ea+ziwIpveQaOtkWxJm6vdnHc2+x2Y6YnWfSH2bqijEb4qW8Ag8UM71v4BZCk9VqSVASMwriryKuiZwDkxjIoMXMe7UYT2a3Amx9tMtHOpKI5rAvwakdfo16hdqxTtnwrh2uhN+g==
# -*- coding: utf-8 -*-
from setuphelpers import *
import tarfile
"""
sudo ./install.sh --help
Usage: ./install.sh [options]
Options:
--uninstall only uninstall from the installation prefix
--destdir=[<none>] set installation root
--prefix=[/usr/local] set installation prefix
--without=[<none>] comma-separated list of components to not install
--components=[<none>] comma-separated list of components to install
--list-components list available components
--sysconfdir=[/etc] install system configuration files
--bindir=[/bin] install binaries
--libdir=[/lib] install libraries
--datadir=[/share] install data
--mandir=[/share/man] install man pages in PATH
--docdir=[\<default\>] install documentation in PATH
--disable-ldconfig don't run ldconfig after installation (Linux only)
--disable-verify don't obsolete
--verbose run with verbose output
sudo ./install.sh --list-components
# Available components
* rustc
* rust-std-x86_64-unknown-linux-gnu
* rust-docs
* rust-docs-json-preview
* rust-demangler-preview
* cargo
* rustfmt-preview
* rls-preview
* rust-analyzer-preview
* llvm-tools-preview
* clippy-preview
* rust-analysis-x86_64-unknown-linux-gnu
"""
components_to_install = ["rustc", "cargo", "rust-std-x86_64-unknown-linux-gnu"]
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().split("\n")
print("Installing: %s to: %s" % (zip_name, app_dir))
# dirs_list = str(run(f'tar -tf {zip_name} --exclude="*/*/*"')).split('\n')
# run(f'tar -xvf {zip_name} --exclude="{sub_dir}/rust-docs" --exclude "{sub_dir}/rust-docs-json-preview"')
exclude_list = [f'--exclude="{sub_dir}/{c}"' for c in components if c and c not in components_to_install]
run(f"tar -xvf {zip_name} " + " ".join([a for a in exclude_list]))
# print(run(f'{makepath(sub_dir, "install.sh")} --destdir="{app_dir}" --components="{",".join([a for a in components_to_install])}"'))
print(run(f'{makepath(sub_dir, "install.sh")} --prefix="{app_dir}" --components="{",".join([a for a in components_to_install])}"'))
# move_directory(sub_dir, app_dir)
print('Linking rustc binary')
if os.path.isfile('/opt/rust/bin/rustc'):
print('ln -s /opt/rust/bin/rustc /usr/bin/rustc')
remove_file('/usr/bin/rustc')
run('ln -s /opt/rust/bin/rustc /usr/bin/rustc')
print('Linking cargo binary')
if os.path.isfile('/opt/rust/bin/cargo'):
print('ln -s /opt/rust/bin/cargo /usr/bin/cargo')
remove_file('/usr/bin/cargo')
run('ln -s /opt/rust/bin/cargo /usr/bin/cargo')
def uninstall():
if isfile(makepath(app_dir, "/lib/rustlib/uninstall.sh")):
run(makepath(app_dir, "/lib/rustlib/uninstall.sh"))
if isdir(app_dir):
remove_tree(app_dir)
remove_file('/usr/bin/cargo')
remove_file('/usr/bin/rustc')
# -*- 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
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
81a4cf1c5efef20c7037b8e88fe2d26b16d745eb1536aadedb40ee28fb5fe731 : WAPT/control
fe914ad761fb21126e7ec721598b2397368d3d44a06e7569419adb608ae67efc : WAPT/icon.png
79ff9824cd3b8619f57260689f0b90bde8de743816bed499755bbb4c10e81b9b : luti.json
f6a8c0d8b8a8a737c40eee78abe286a3cbe984d96b63de9ae83443360e3264bf : rust-1.86.0-x86_64-unknown-linux-gnu.tar.gz
45cfc49ab21b2a3dbca01ee41a856f84cb1744a7e29d1c1465097f513debca77 : setup.py
f6674b248a0b9619f358fda11ad6d3a0c4486c6459e3fc2cb4d0bbe7164b5813 : update_package.py