summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO66
-rw-r--r--PKGBUILD145
-rw-r--r--charm110
-rw-r--r--ltedit-professional.desktop (renamed from charm.desktop)7
-rw-r--r--pycharm3
-rw-r--r--pycharm-professional.desktop4
-rw-r--r--pycharm-professional.install13
-rw-r--r--pycharm-professional_aarch64.install21
-rw-r--r--pycharm-professional_x86_64.install21
9 files changed, 150 insertions, 240 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 1fcc379c81ce..f4dcfd2abedc 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,54 +1,44 @@
pkgbase = pycharm-professional
- pkgdesc = Powerful Python and Django IDE. Professional Edition.
- pkgver = 2018.3.3
+ pkgdesc = Python IDE for Professional Developers. Professional Edition
+ pkgver = 2024.1
pkgrel = 1
- url = http://www.jetbrains.com/pycharm/
- install = pycharm-professional.install
+ url = https://www.jetbrains.com/pycharm/
+ install = pycharm-professional_x86_64.install
arch = x86_64
+ arch = x86_64_v3
+ arch = aarch64
license = custom
- makedepends = python2-setuptools
- makedepends = python-setuptools
depends = giflib
depends = glibc
depends = sh
- depends = ttf-font
- depends = libxtst
- depends = libxslt
depends = python
- optdepends = ipython2: For enhanced interactive Python shell v2 inside Pycharm
- optdepends = ipython: For enhanced interactive Python shell v3 inside Pycharm
+ depends = python-setuptools
+ depends = cython
+ depends = libdbusmenu-glib
+ depends = ttf-font
+ depends = fontconfig
+ optdepends = ipython: For enhanced interactive Python shell inside Pycharm
optdepends = openssh: For deployment and remote connections
- optdepends = python2-setuptools: Packages manager for Python 2, for project interpreter
- optdepends = python-setuptools: Packages manager for Python 3, for project interpreter
- optdepends = python2-coverage: For support code coverage measurement for Python 2
- optdepends = python-coverage: For support code coverage measurement for Python 3
- optdepends = cython2: For performance debugger in Python 2
- optdepends = cython: For performance debugger in Python 3
+ optdepends = python-setuptools: Packages manager for Python, for project interpreter
+ optdepends = python-coverage: For support code coverage measurement
optdepends = docker-machine: For support docker inside Pycharm
optdepends = docker-compose: For support docker inside Pycharm
optdepends = vagrant: For support virtualized development environments
- optdepends = python2-pytest: For support testing inside Pycharm with Python 2
- optdepends = python-pytest: For support testing inside Pycharm with Python 3
- optdepends = python2-tox: Python environments for testing tool with Python 2
- optdepends = python-tox: Python environments for testing tool with Python 3,
- optdepends = jupyter: For support Jupyter Notebook
- provides = pycharm
- conflicts = pycharm
- conflicts = pycharm-community-edition
- backup = opt/pycharm-professional/bin/pycharm.vmoptions
+ optdepends = python-pytest: For support testing inside Pycharm
+ optdepends = python-tox: Python environments for testing tool
+ optdepends = jupyter-server: For Jupyter notebooks and apps
+ options = !strip
backup = opt/pycharm-professional/bin/pycharm64.vmoptions
- source = https://download.jetbrains.com/python/pycharm-professional-2018.3.3.tar.gz
+ backup = opt/pycharm-professional/bin/idea.properties
source = pycharm-professional.desktop
- source = pycharm-professional.install
- source = pycharm
- source = charm.desktop
- source = charm
- sha256sums = aaba76924b050b2527644a31662f7c7a7843488adfd18cc6d00d15880793d87c
- sha256sums = aaf7113e8c56e4d977eca204d57350d9493eda2710abefd2488a2b5d47c53344
- sha256sums = 40b297ac1d883583ed5d7aae75fb09497a2af5bda9dd4aff83bd6d2892ab6c95
- sha256sums = 818ed42f4200ae13315587abf6f247f93e68c658a94794f73924c985cdc145d0
- sha256sums = 21e77b6b18e14636f9827e1f8d45bbc8dba8fb14ea5f4cde285c1ef4bb01c85e
- sha256sums = f23c1c7e63d9a8b9ae2e2c6139bb77cd7a6e6eb32ad22f47c74d9daca9a891d1
+ source = ltedit-professional.desktop
+ sha256sums = 6ff245b42b475a5b97c359d97bc48d573c2988170fc195073c9187d5abe1c576
+ sha256sums = 21e9d192712fb537d9e5abccc54970becb347b32ad2be469a35b2585f45a9116
+ source_x86_64 = https://download-cf.jetbrains.com/python/pycharm-professional-2024.1.tar.gz
+ sha256sums_x86_64 = 2451d3ef7642151306354418c5237b326271e2653a09b869e5883a262a2916ad
+ source_x86_64_v3 = https://download-cf.jetbrains.com/python/pycharm-professional-2024.1.tar.gz
+ sha256sums_x86_64_v3 = 2451d3ef7642151306354418c5237b326271e2653a09b869e5883a262a2916ad
+ source_aarch64 = https://download-cf.jetbrains.com/python/pycharm-professional-2024.1-aarch64.tar.gz
+ sha256sums_aarch64 = a1f43b2392b7fc6b0c062524593c19fb0721b4ec1a1a59a06e39a61da2dce258
pkgname = pycharm-professional
-
diff --git a/PKGBUILD b/PKGBUILD
index c08dbf5d349f..908b099df196 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,80 +1,85 @@
-# Maintainer: XavierCLL <xavier.corredor.llano (a) gmail.com>
+# Maintainer: XavierCLL <xavier.corredor.llano at gmail.com>
+# Maintainer for aarch64: Ethan Reece <aur at ethanreece dot com>
+# Contributor: Frederik Olesen
+# Contributor: Andrew Shark
pkgname=pycharm-professional
-pkgver=2018.3.3
-_pkgver=2018.3.3
+pkgver=2024.1
pkgrel=1
-pkgdesc="Powerful Python and Django IDE. Professional Edition."
-arch=('x86_64')
-url='http://www.jetbrains.com/pycharm/'
-conflicts=('pycharm' 'pycharm-community-edition')
-provides=('pycharm')
+pkgdesc="Python IDE for Professional Developers. Professional Edition"
+arch=('x86_64' 'x86_64_v3' 'aarch64')
+url='https://www.jetbrains.com/pycharm/'
license=('custom')
-install=${pkgname}.install
-backup=(opt/$pkgname/bin/pycharm.vmoptions opt/$pkgname/bin/pycharm64.vmoptions)
-depends=('giflib' 'glibc' 'sh' 'ttf-font' 'libxtst' 'libxslt' 'python')
-source=(https://download.jetbrains.com/python/$pkgname-$_pkgver.tar.gz
- 'pycharm-professional.desktop'
- 'pycharm-professional.install'
- 'pycharm'
- 'charm.desktop'
- 'charm')
-# https://download.jetbrains.com/python/pycharm-professional-${_pkgver}.tar.gz.sha256
-sha256sums=('aaba76924b050b2527644a31662f7c7a7843488adfd18cc6d00d15880793d87c'
- 'aaf7113e8c56e4d977eca204d57350d9493eda2710abefd2488a2b5d47c53344'
- '40b297ac1d883583ed5d7aae75fb09497a2af5bda9dd4aff83bd6d2892ab6c95'
- '818ed42f4200ae13315587abf6f247f93e68c658a94794f73924c985cdc145d0'
- '21e77b6b18e14636f9827e1f8d45bbc8dba8fb14ea5f4cde285c1ef4bb01c85e'
- 'f23c1c7e63d9a8b9ae2e2c6139bb77cd7a6e6eb32ad22f47c74d9daca9a891d1')
-makedepends=('python2-setuptools' 'python-setuptools')
-optdepends=('ipython2: For enhanced interactive Python shell v2 inside Pycharm'
- 'ipython: For enhanced interactive Python shell v3 inside Pycharm'
- 'openssh: For deployment and remote connections'
- 'python2-setuptools: Packages manager for Python 2, for project interpreter'
- 'python-setuptools: Packages manager for Python 3, for project interpreter'
- 'python2-coverage: For support code coverage measurement for Python 2'
- 'python-coverage: For support code coverage measurement for Python 3'
- 'cython2: For performance debugger in Python 2'
- 'cython: For performance debugger in Python 3'
- 'docker-machine: For support docker inside Pycharm'
- 'docker-compose: For support docker inside Pycharm'
- 'vagrant: For support virtualized development environments'
- 'python2-pytest: For support testing inside Pycharm with Python 2'
- 'python-pytest: For support testing inside Pycharm with Python 3'
- 'python2-tox: Python environments for testing tool with Python 2'
- 'python-tox: Python environments for testing tool with Python 3',
- 'jupyter: For support Jupyter Notebook')
+options=('!strip')
+backup=(
+ "opt/${pkgname}/bin/pycharm64.vmoptions"
+ "opt/${pkgname}/bin/idea.properties"
+)
+depends=(
+ giflib
+ glibc
+ sh
+ python
+ python-setuptools
+ cython
+ libdbusmenu-glib
+ ttf-font
+ fontconfig
+)
+source=("pycharm-professional.desktop" "ltedit-professional.desktop")
+source_x86_64=("https://download-cf.jetbrains.com/python/${pkgname}-${pkgver}.tar.gz")
+source_x86_64_v3=($source_x86_64)
+source_aarch64=("https://download-cf.jetbrains.com/python/${pkgname}-${pkgver}-aarch64.tar.gz")
+sha256sums=('6ff245b42b475a5b97c359d97bc48d573c2988170fc195073c9187d5abe1c576'
+ '21e9d192712fb537d9e5abccc54970becb347b32ad2be469a35b2585f45a9116')
+sha256sums_x86_64=('2451d3ef7642151306354418c5237b326271e2653a09b869e5883a262a2916ad')
+sha256sums_x86_64_v3=('2451d3ef7642151306354418c5237b326271e2653a09b869e5883a262a2916ad')
+sha256sums_aarch64=('a1f43b2392b7fc6b0c062524593c19fb0721b4ec1a1a59a06e39a61da2dce258')
+# makedepends=('python-setuptools' 'cython')
+optdepends=(
+ 'ipython: For enhanced interactive Python shell inside Pycharm'
+ 'openssh: For deployment and remote connections'
+ 'python-setuptools: Packages manager for Python, for project interpreter'
+ 'python-coverage: For support code coverage measurement'
+ 'docker-machine: For support docker inside Pycharm'
+ 'docker-compose: For support docker inside Pycharm'
+ 'vagrant: For support virtualized development environments'
+ 'python-pytest: For support testing inside Pycharm'
+ 'python-tox: Python environments for testing tool'
+ 'jupyter-server: For Jupyter notebooks and apps'
+)
-build() {
- cd pycharm-$_pkgver
-
- # compile PyDev debugger used by PyCharm to speedup debugging
- python2 helpers/pydev/setup_cython.py build_ext --build-temp build --build-lib .
- python3 helpers/pydev/setup_cython.py build_ext --build-temp build --build-lib .
-
- rm -rf bin/fsnotifier{,-arm} lib/libpty/linux/x86
+if [[ "${CARCH}" == "x86_64" ]] || [[ "${CARCH}" == "x86_64_v3" ]] ; then
+ install=pycharm-professional_x86_64.install
+elif [ "${CARCH}" == "aarch64" ]; then
+ install=pycharm-professional_aarch64.install
+fi
+
+prepare() {
+ # clean up for PyDev debugger
+ find pycharm-${pkgver}/plugins/python/helpers/pydev/ \( -name *.so -o -name *.pyd -o -name *.dll \) -delete
}
package() {
- # workaround FS#40934
- sed -i 's/lcd/on/' pycharm-$_pkgver/bin/*.vmoptions
+ # licenses
+ install -dm 755 "${pkgdir}/usr/share/licenses/${pkgname}/"
+ install -m 644 "pycharm-${pkgver}/license/"* "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ # base
+ install -dm 755 "${pkgdir}/opt/${pkgname}"
+ mv "pycharm-${pkgver}/"* "${pkgdir}/opt/${pkgname}/"
+ install -dm 755 "${pkgdir}/usr/share/applications"
+ install -Dm 644 "${pkgname}.desktop" "${pkgdir}/usr/share/applications/"
+ install -Dm 644 "ltedit-professional.desktop" "${pkgdir}/usr/share/applications/"
+ install -dm 755 "${pkgdir}/usr/share/icons/hicolor/"{128x128,scalable}"/apps/"
+ install -Dm 644 "${pkgdir}/opt/${pkgname}/bin/pycharm.png" "${pkgdir}/usr/share/icons/hicolor/128x128/apps/pycharm-professional.png"
+ install -Dm 644 "${pkgdir}/opt/${pkgname}/bin/pycharm.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/pycharm-professional.svg"
+
+ # issue https://youtrack.jetbrains.com/issue/IDEA-313202
+ chmod 4755 "${pkgdir}/opt/pycharm-professional/jbr/lib/chrome-sandbox"
- # base
- install -dm 755 $pkgdir/opt/$pkgname
- cp -dr --no-preserve=ownership pycharm-$_pkgver/* $pkgdir/opt/$pkgname/
- install -dm 755 $pkgdir/usr/share/{applications,pixmaps}
- install -Dm 644 $pkgdir/opt/$pkgname/bin/pycharm.png $pkgdir/usr/share/pixmaps/pycharm.png
- install -Dm 644 pycharm-professional.desktop $pkgdir/usr/share/applications/
-
- # exec
- install -dm 755 $pkgdir/usr/bin/
- install -Dm 755 pycharm $pkgdir/usr/bin/
-
- # licenses
- install -dm 755 $pkgdir/usr/share/licenses/$pkgname/
- cp -dr --no-preserve=ownership pycharm-$_pkgver/license/* $pkgdir/usr/share/licenses/$pkgname/
-
- # install charm application - for edit a single file in Pycharm
- install -Dm 755 charm $pkgdir/opt/pycharm-professional/bin/
- install -Dm 644 charm.desktop $pkgdir/usr/share/applications/
+ # exec
+ install -dm 755 "${pkgdir}/usr/bin/"
+ ln -s "/opt/${pkgname}/bin/pycharm.sh" "${pkgdir}/usr/bin/pycharm-professional"
+ ln -s "/opt/${pkgname}/bin/ltedit.sh" "${pkgdir}/usr/bin/ltedit-professional"
}
diff --git a/charm b/charm
deleted file mode 100644
index 0fc448ea82fa..000000000000
--- a/charm
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-import socket
-import struct
-import sys
-import os
-import time
-
-# see com.intellij.idea.SocketLock for the server side of this interface
-
-RUN_PATH = u'/opt/pycharm-professional/bin/pycharm.sh'
-CONFIG_PATH = u'~/.PyCharm2018.3/config'
-SYSTEM_PATH = u'~/.PyCharm2018.3/system'
-
-
-def print_usage(cmd):
- print(('Usage:\n' +
- ' {0} -h | -? | --help\n' +
- ' {0} [project_dir]\n' +
- ' {0} [-l|--line line] [project_dir|--temp-project] file[:line]\n' +
- ' {0} diff <left> <right>\n' +
- ' {0} merge <local> <remote> [base] <merged>').format(cmd))
-
-
-def process_args(argv):
- args = []
-
- skip_next = False
- for i, arg in enumerate(argv[1:]):
- if arg == '-h' or arg == '-?' or arg == '--help':
- print_usage(argv[0])
- exit(0)
- elif i == 0 and (arg == 'diff' or arg == 'merge' or arg == '--temp-project'):
- args.append(arg)
- elif arg == '-l' or arg == '--line':
- args.append(arg)
- skip_next = True
- elif skip_next:
- args.append(arg)
- skip_next = False
- else:
- path = arg
- if ':' in arg:
- file_path, line_number = arg.rsplit(':', 1)
- if line_number.isdigit():
- args.append('-l')
- args.append(line_number)
- path = file_path
- args.append(os.path.abspath(path))
-
- return args
-
-
-def try_activate_instance(args):
- port_path = os.path.join(CONFIG_PATH, 'port')
- token_path = os.path.join(SYSTEM_PATH, 'token')
- if not (os.path.exists(port_path) and os.path.exists(token_path)):
- return False
-
- try:
- with open(port_path) as pf:
- port = int(pf.read())
- with open(token_path) as tf:
- token = tf.read()
- except (ValueError):
- return False
-
- s = socket.socket()
- s.settimeout(0.3)
- try:
- s.connect(('127.0.0.1', port))
- except (socket.error, IOError):
- return False
-
- found = False
- while True:
- try:
- path_len = struct.unpack('>h', s.recv(2))[0]
- path = s.recv(path_len).decode('utf-8')
- if os.path.abspath(path) == os.path.abspath(CONFIG_PATH):
- found = True
- break
- except (socket.error, IOError):
- return False
-
- if found:
- cmd = 'activate ' + token + '\0' + os.getcwd() + '\0' + '\0'.join(args)
- if sys.version_info.major >= 3: cmd = cmd.encode('utf-8')
- encoded = struct.pack('>h', len(cmd)) + cmd
- s.send(encoded)
- time.sleep(0.5) # don't close the socket immediately
- return True
-
- return False
-
-
-def start_new_instance(args):
- if sys.platform == 'darwin':
- if len(args) > 0:
- args.insert(0, '--args')
- os.execvp('/usr/bin/open', ['-a', RUN_PATH] + args)
- else:
- bin_file = os.path.split(RUN_PATH)[1]
- os.execv(RUN_PATH, [bin_file] + args)
-
-
-ide_args = process_args(sys.argv)
-if not try_activate_instance(ide_args):
- start_new_instance(ide_args)
diff --git a/charm.desktop b/ltedit-professional.desktop
index c27b2c902180..1a6698f1ce9a 100644
--- a/charm.desktop
+++ b/ltedit-professional.desktop
@@ -1,10 +1,9 @@
[Desktop Entry]
Type=Application
-Name=Charm
-Icon=pycharm
-Exec=/opt/pycharm-professional/bin/charm %f
+Name=Pycharm Light Edit
+Icon=pycharm-professional
+Exec=/usr/bin/ltedit-professional %f
MimeType=text/x-python;application/x-ipynb+json
NoDisplay=true
Terminal=false
StartupNotify=true
-StartupWMClass=jetbrains-pycharm
diff --git a/pycharm b/pycharm
deleted file mode 100644
index 88f7989d4a55..000000000000
--- a/pycharm
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec /opt/pycharm-professional/bin/pycharm.sh "$@"
diff --git a/pycharm-professional.desktop b/pycharm-professional.desktop
index 29a3ee0df6fc..46264e411da8 100644
--- a/pycharm-professional.desktop
+++ b/pycharm-professional.desktop
@@ -1,9 +1,9 @@
[Desktop Entry]
Type=Application
Name=PyCharm Professional Edition
-Icon=pycharm
+Icon=pycharm-professional
Comment=Python IDE for Professional Developers.
-Exec=/usr/bin/pycharm %f
+Exec=/usr/bin/pycharm-professional %f
Terminal=false
Categories=Development;IDE;Python;
StartupNotify=true
diff --git a/pycharm-professional.install b/pycharm-professional.install
deleted file mode 100644
index 028a44f90c68..000000000000
--- a/pycharm-professional.install
+++ /dev/null
@@ -1,13 +0,0 @@
-post_install() {
- /bin/cat << EOF
-===>
-===> Please set the anti-aliasing font and others settings of
-===> pycharm in this file (if is needed):
-===>
-===> /opt/pycharm-professional/bin/pycharm64.vmoptions
-===>
-===> Please read the following link for more font options:
-===> https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts
-===>
-EOF
-}
diff --git a/pycharm-professional_aarch64.install b/pycharm-professional_aarch64.install
new file mode 100644
index 000000000000..95d7ca75d201
--- /dev/null
+++ b/pycharm-professional_aarch64.install
@@ -0,0 +1,21 @@
+post_install() {
+ echo ":: Building Cython speed-ups"
+ # compile PyDev debugger used by PyCharm to speedup debugging
+ python /opt/pycharm-professional/plugins/python/helpers/pydev/setup_cython.py build_ext --inplace --force-cython
+
+ # for attach debugger
+ pushd /opt/pycharm-professional/plugins/python/helpers/pydev/pydevd_attach_to_process/linux_and_mac
+ g++ -march=armv8-a+crypto -shared -o ../attach_linux_amd64.so -fPIC -nostartfiles attach.cpp
+ popd
+
+ rm -rf /opt/pycharm-professional/plugins/python/helpers/pydev/build
+ echo ":: Cython speed-ups done"
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ rm -rf /opt/pycharm-professional
+}
diff --git a/pycharm-professional_x86_64.install b/pycharm-professional_x86_64.install
new file mode 100644
index 000000000000..b410c1288431
--- /dev/null
+++ b/pycharm-professional_x86_64.install
@@ -0,0 +1,21 @@
+post_install() {
+ echo ":: Building Cython speed-ups"
+ # compile PyDev debugger used by PyCharm to speedup debugging
+ python /opt/pycharm-professional/plugins/python/helpers/pydev/setup_cython.py build_ext --inplace --force-cython
+
+ # for attach debugger
+ pushd /opt/pycharm-professional/plugins/python/helpers/pydev/pydevd_attach_to_process/linux_and_mac
+ g++ -m64 -shared -o ../attach_linux_amd64.so -fPIC -nostartfiles attach.cpp
+ popd
+
+ rm -rf /opt/pycharm-professional/plugins/python/helpers/pydev/build
+ echo ":: Cython speed-ups done"
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ rm -rf /opt/pycharm-professional
+}