diff options
-rw-r--r-- | .SRCINFO | 66 | ||||
-rw-r--r-- | PKGBUILD | 145 | ||||
-rw-r--r-- | charm | 110 | ||||
-rw-r--r-- | ltedit-professional.desktop (renamed from charm.desktop) | 7 | ||||
-rw-r--r-- | pycharm | 3 | ||||
-rw-r--r-- | pycharm-professional.desktop | 4 | ||||
-rw-r--r-- | pycharm-professional.install | 13 | ||||
-rw-r--r-- | pycharm-professional_aarch64.install | 21 | ||||
-rw-r--r-- | pycharm-professional_x86_64.install | 21 |
9 files changed, 150 insertions, 240 deletions
@@ -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 - @@ -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 +} |