tis-pycharm icon

PyCharm

Silent install package for PyCharm

2025.2.4-5
Development
Development

Preprod packages are packages built on LUTI. They remain in PREPROD usually for 5 days, after which a new VirusTotal scan is performed.
If the package passes this last check, it is promoted to PROD and published on the store.

  • package: tis-pycharm
  • name: PyCharm
  • version: 2025.2.4-5
  • categories: Development
  • maintainer: WAPT Team,Jimmy PELÉ,Jordan ARNAUD
  • editor: JetBrains
  • licence: Freemium
  • locale: all
  • target_os: debian_based
  • impacted_process: pycharm64,pycharm
  • architecture: x64
  • signature_date:
  • size: 1.27 Go
  • installed_size: 697.25 Mo
  • homepage : https://www.jetbrains.com/pycharm/
  • conflicts :

package           : tis-pycharm
version           : 2025.2.4-5
architecture      : x64
section           : base
priority          : optional
name              : PyCharm
categories        : Development
maintainer        : WAPT Team,Jimmy PELÉ,Jordan ARNAUD
description       : PyCharm is an integrated development environment (IDE) used in computer programming, specifically for the Python language
depends           : 
conflicts         : tis-pycharm-community,tis-pycharm-professional
maturity          : PREPROD
locale            : all
target_os         : debian_based
min_wapt_version  : 2.3
sources           : 
installed_size    : 697249792
impacted_process  : pycharm64,pycharm
description_fr    : PyCharm est un environnement de développement intégré utilisé pour programmer en Python
description_pl    : PyCharm jest zintegrowanym środowiskiem programistycznym (IDE) używanym w programowaniu komputerowym, w szczególności dla języka Python
description_de    : PyCharm ist eine integrierte Entwicklungsumgebung (IDE) für die Computerprogrammierung, insbesondere für die Sprache Python
description_es    : PyCharm es un entorno de desarrollo integrado (IDE) utilizado en la programación informática, específicamente para el lenguaje Python
description_pt    : PyCharm é um ambiente de desenvolvimento integrado (IDE) utilizado na programação de computadores, especificamente para a linguagem Python
description_it    : PyCharm è un ambiente di sviluppo integrato (IDE) utilizzato nella programmazione informatica, in particolare per il linguaggio Python
description_nl    : PyCharm is een geïntegreerde ontwikkelingsomgeving (IDE) die wordt gebruikt bij computerprogrammering, specifiek voor de taal Python
description_ru    : PyCharm - это интегрированная среда разработки (IDE), используемая в компьютерном программировании, в частности, для языка Python
audit_schedule    : 
editor            : JetBrains
keywords          : pycharm,ide,integrated,development,environment
licence           : Freemium
homepage          : https://www.jetbrains.com/pycharm/
package_uuid      : a65efc9d-a04b-4d1b-a028-420d5a491f53
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : d8e61e0d3d8c4e15ebb79b689f55a3239d4e1d6fde9f867acb9c0b3d2ccee678
signer            : test
signer_fingerprint: b82fc8ef4a4475c0f69ac168176c2bfc58f572eb716c4eadd65e4785c155dd8e
signature_date    : 2025-11-24T14:24:23.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         : XBK9S249xmX7jj3ziwWc3W90gk+8d7n+/ARhK09/HSQorhSGPKlnB6vNl2x6nNGA0CEv/XxiZrQ9C8zI1/79sglrh2j56ucsJMJ2LiLgA9gPnw3b+e/FPIGny+xbnPUChyP7C45Fqz33/Q6umogBDERqYFqmK0biMTutgyqywZ9nwt2/8IukcsXryNq1kH4ZOD7nY/jE3TSOMHb8hZ3/Biu837AyXwJfvKYSXezmXo8VYhJ7RhfLNO95GLx6CniAQ4Ho6tgSshyn70rNM58537EqtwCN93xe+pMH/QJEK9SSkrlq/qJQMe9mvUyYLaTDkjnS/LnTMo8rCXaIdWLIrA==

# -*- coding: utf-8 -*-
from setuphelpers import *
import tarfile

bin_path = "/usr/local/bin/pycharm"
app_path = "/opt/pycharm"


def extract_tar_gz(filename, path="."):
    with tarfile.open(filename, "r:gz") as tar:
        tar.extractall(path)

def install():
    archive_file = glob.glob("pycharm*.tar.gz")[0]
    temp_extract_folder = makepath(basedir, "pycharm")

    # Delete older version
    if isdir(app_path):
        remove_tree(app_path)

    extract_tar_gz(archive_file, path=temp_extract_folder)

    folder_app = glob.glob(f"{temp_extract_folder}/*")[0]

    copytree2(folder_app, app_path)

    if isfile(bin_path) or os.path.islink(bin_path):
        print("Removing existing symlink")
        remove_file(bin_path)
        
    print(f"Creating pycharm alias in path")
    os.symlink(f"{app_path}/bin/pycharm.sh", bin_path)

    # Delete extracted folder
    if isdir(temp_extract_folder):
        remove_tree(temp_extract_folder)

    
def uninstall():
    # Removing of symlink
    if isfile(bin_path) or os.path.islink(bin_path):
        remove_file(bin_path)

    # Removing of the software 
    if isdir(app_path):
        remove_tree(app_path)

# -*- coding: utf-8 -*-
from setuphelpers import *
from setupdevhelpers import *


def update_package():
    # Declaring local variables
    package_updated = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name

    releases = wgets("https://data.services.jetbrains.com/products/releases?code=PC&latest=true&type=release",proxies=proxies, as_json=True)['PCP'][0]
    version = releases['version']
    downloads = releases['downloads']

    download_dict = {
        'windows-x64': downloads['windows']['link'],
        'debian_based-x64': downloads['linux']['link'],
        'debian_based-arm64': downloads['linuxARM64']['link'],
        'darwin-x64': downloads['mac']['link'],
        'darwin-arm': downloads['macM1']['link']
    }

    os_type = control.target_os + "-" + ensure_list(control.architecture)[0]
    download_url = download_dict[os_type]
    latest_bin = download_url.rsplit("/", 1)[-1]

    # Downloading latest binaries
    print(f"Latest {app_name} version is: {version}")
    print(f"Download URL is: {download_url}")
    if not isfile(latest_bin):
        print(f"Downloading: {latest_bin}")
        wget(download_url, latest_bin, proxies=proxies)
    else:
        print(f"Binary is present: {latest_bin}")

    # Changing version of the package
    if Version(version) > Version(control.get_software_version()):
        print(f"Software version updated (from: {control.get_software_version()} to: {Version(version)})")
        package_updated = True
    else:
        print(f"Software version up-to-date ({Version(version)})")

    for f in glob.glob(f'*.tar.gz'):
        if f != latest_bin:
            remove_file(f)

    control.set_software_version(version)
    control.save_control_to_wapt()

    return package_updated

01ca7fe94636e5a08fcb73849d3b5df25d51e2c82f4dd1a08f01798b25899819 : WAPT/certificate.crt
4372d48ccc1e4bc05ad8762b084609dc2805a760a1813280fa10665e2bc10d65 : WAPT/control
d8e61e0d3d8c4e15ebb79b689f55a3239d4e1d6fde9f867acb9c0b3d2ccee678 : WAPT/icon.png
b9cde8fea38627508557c36a40fab64a8381c6d4349a5406d9630f6b9694fd95 : luti.json
f1613a171ab07ba0e7ccd13cb537af4da8920c89cf4a13c64a3f7ae72e803701 : pycharm-2025.2.4.tar.gz
5fb46698d2ecd7fa0b608c17ddff1804aa8b01bfe0a784eb33b41c59a6a06fd4 : setup.py
48586f7b8a4bcedf036b95c4a93c787acb16860f85f245a8e815f238dc0dc8ba : update_package.py