In case there are still plans to add aarch64 compatibility here are my changes for aarch64 including jbr. Tested in a VM on Mac M1 with parallels.
diff --git a/PKGBUILD b/PKGBUILD
index 928f609..d7894ba 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,10 +5,12 @@
pkgname=pycharm-professional
pkgver=2022.2
pkgrel=1
+jbr_ver=17.0.3
+jbr_build=aarch64-b469.37
pkgdesc="Python IDE for Professional Developers. Professional Edition"
-arch=('x86_64')
+arch=('x86_64' 'aarch64')
url='https://www.jetbrains.com/pycharm/'
-conflicts=('pycharm' 'pycharm-community-edition')
+conflicts=('pycharm' 'pycharm-community-edition' 'pycharm-community-jre-aarch64')
provides=('pycharm')
license=('custom')
backup=("opt/$pkgname/bin/pycharm64.vmoptions"
@@ -18,10 +20,14 @@ source=("https://download.jetbrains.com/python/$pkgname-$pkgver.tar.gz"
"pycharm-professional.desktop"
"charm.desktop"
"charm")
+source_aarch64=("https://cache-redirector.jetbrains.com/intellij-jbr/jbr-$jbr_ver-linux-$jbr_build.tar.gz"
+ "https://github.com/JetBrains/intellij-community/raw/master/bin/linux/aarch64/fsnotifier")
sha256sums=('aace8bbd52c0ac17cbcb9ae6b7afcd7f3b7a5475facaaa6b271d47323611d6f5'
'a75264959b06a45ea0801729bc1688bfbd52da3c5fbf3d5b1ad9267860439291'
'6996b38a3c2ba1e472838d7046a4c54a27822fd647be9ca590457e8c6a2d50c8'
'c01a62a9a17a018f645e7301fd98b98dec77e682f1d0cd908b850e8be03830e0')
+sha256sums_aarch64=('737242bdd6795a14897ff97bb0bb8d99e7a1a5878a6d2f942712147b20312320'
+ 'eb3c61973d34f051dcd3a9ae628a6ee37cd2b24a1394673bb28421a6f39dae29')
makedepends=('python-setuptools' 'cython')
optdepends=('ipython: For enhanced interactive Python shell inside Pycharm'
'openssh: For deployment and remote connections'
@@ -34,28 +40,49 @@ optdepends=('ipython: For enhanced interactive Python shell inside Pycharm'
'python-pytest: For support testing inside Pycharm'
'python-tox: Python environments for testing tool'
'jupyter-server: For Jupyter notebooks and apps')
-
+
build() {
# clean up and compile PyDev debugger used by PyCharm to speedup debugging
find pycharm-${pkgver}/plugins/python/helpers/pydev/ \( -name *.so -o -name *.pyd \) -delete
sed -i '1s/^/# cython: language_level=3\n/' pycharm-${pkgver}/plugins/python/helpers/pydev/_pydevd_bundle/pydevd_cython.pxd
python pycharm-${pkgver}/plugins/python/helpers/pydev/setup_cython.py build_ext --inplace --force-cython
-
+
# for attach debugger
pushd pycharm-${pkgver}/plugins/python/helpers/pydev/pydevd_attach_to_process/linux_and_mac
- g++ -m64 -shared -o ../attach_linux_amd64.so -fPIC -nostartfiles attach.cpp
+
+ if [ "${CARCH}" == "aarch64" ]; then
+ g++ -march=armv8-a+crypto -shared -o ../attach_linux_amd64.so -fPIC -nostartfiles attach.cpp
+ else
+ g++ -m64 -shared -o ../attach_linux_amd64.so -fPIC -nostartfiles attach.cpp
+ fi
+
popd
rm -rf pycharm-${pkgver}/plugins/python/helpers/pydev/build/
find pycharm-${pkgver}/plugins/python/helpers/pydev/ -name __pycache__ -exec rm -rf {} \;
- rm -r pycharm-${pkgver}/lib/pty4j-native/linux/{mips64el,ppc64le,aarch64,arm,x86}
+
+ if [ "${CARCH}" == "aarch64" ]; then
+ rm -r pycharm-${pkgver}/lib/pty4j-native/linux/{mips64el,ppc64le,arm,x86,x86-64}
+ else
+ rm -r pycharm-${pkgver}/lib/pty4j-native/linux/{mips64el,ppc64le,aarch64,arm,x86}
+ fi
}
package() {
# licenses
install -dm 755 "$pkgdir/usr/share/licenses/$pkgname/"
mv "pycharm-$pkgver/license/"* "$pkgdir/usr/share/licenses/$pkgname/"
-
+
+ # https://youtrack.jetbrains.com/articles/IDEA-A-48/JetBrains-IDEs-on-AArch64#linux
+ if [ "${CARCH}" == "aarch64" ]; then
+ cd "pycharm-$pkgver"
+ rm -rf jbr/*
+ cp -r ../jbr-$jbr_ver*/* jbr
+ cp ../fsnotifier bin/
+ chmod +x bin/fsnotifier
+ cd -
+ fi
+
# base
install -dm 755 "$pkgdir/opt/$pkgname"
mv "pycharm-$pkgver/"* "$pkgdir/opt/$pkgname/"
Pinned Comments