# setting some global constants %global appname idea %global build_ver 242.21829.142 %global idea_name ideaIC %global _name intellij-idea-community # disable debuginfo subpackage %global debug_package %{nil} # Disable build-id symlinks to avoid conflicts %global _build_id_links none # don't strip bundled binaries because pycharm checks length (!!!) of binary fsnotif # and if you strip debug stuff from it, it will complain %global __strip /bin/true # dont repack jars %global __jar_repack %{nil} # disable rpath checks %define __brp_check_rpaths %{nil} # there are some python 2 and python 3 scripts so there is no way out to bytecompile them ^_^ %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') # do not automatically detect and export provides and dependencies on bundled libraries and executables %global _exclude_from %{_datadir}/%{_name}/bin/.*|%{_datadir}/%{_name}/lib/.*|%{_datadir}/%{_name}/plugins/.*|%{_datadir}/%{_name}/jbr/.* %global __provides_exclude_from %{_exclude_from} %global __requires_exclude_from %{_exclude_from} Name: %{_name}-bin Version: 2024.2.1 Release: 1%{?dist} Summary: Capable and Ergonomic Java IDE - Community Edition License: Apache-2.0 URL: https://www.jetbrains.com/%{appname}/ Provides: %{_name} Source0: %{_name}.desktop BuildRequires: desktop-file-utils BuildRequires: python3-devel BuildRequires: javapackages-filesystem BuildRequires: wget BuildRequires: tar Requires: hicolor-icon-theme Requires: javapackages-filesystem Requires: %{_name}-jbr = %{version}-%{release} %description IntelliJ IDEA Community is a free and open-source edition of IntelliJ IDEA, the commercial Java IDE by JetBrains. IntelliJ IDEA Community provides all the tools you need for Java, Groovy, Kotlin, Scala, and Android. %package jbr Summary: JetBrains Runtime Requires: %{_name} = %{version}-%{release} Conflicts: %{_name}-jbr %global __provides_exclude_from %{_exclude_from} %global __requires_exclude_from %{_exclude_from} %description jbr JetBrains Runtime - a patched Java Runtime Environment (JRE). %prep %ifarch x86_64 download_file="%{idea_name}-%{version}.tar.gz" %else download_file="%{idea_name}-%{version}-aarch64.tar.gz" %endif wget -q "https://download-cf.jetbrains.com/idea/$download_file" mkdir "${download_file}.out" tar xf "$download_file" -C "${download_file}.out" mv "${download_file}.out"/*/* . # Patching shebangs... %if 0%{?fedora} %py3_shebang_fix . %else find . -type f -name "*.py" -exec sed -e 's@/usr/bin/env python.*@%{__python3}@g' -i "{}" \; %endif # Deleting unnecessary files... size_before=$(du -s . | awk '{print $1}') # First it removes directories, because it sometimes throws an error find . -type d -iname '*darwin*' -exec rm -rv {} + find . -iname '*darwin*' -exec rm -rv {} + find . -type d -iname '*macos*' -exec rm -rv {} + find . -iname '*macos*' -exec rm -rv {} + find . -type d -iname '*windows*' -exec rm -rv {} + find . -iname '*windows*' -exec rm -rv {} + %ifarch x86_64 find . -type d -name '*arm64*' -exec rm -rv {} + find . -name '*arm64*' -exec rm -rv {} + find . -type d -name '*aarch64*' -exec rm -rv {} + find . -name '*aarch64*' -exec rm -rv {} + %else find . -type d -name '*amd64*' -exec rm -rv {} + find . -name '*amd64*' -exec rm -rv {} + find . -type d -name '*x86_64*' -exec rm -rv {} + find . -name '*x86_64*' -exec rm -rv {} + %endif size_after=$(du -s . | awk '{print $1}') size_diff=$(( size_before - size_after )) echo "Space freed: $size_diff bytes" %install # Installing application... install -d %{buildroot}%{_datadir}/%{_name} cp -arf ./{bin,jbr,lib,plugins,build.txt,product-info.json} %{buildroot}%{_datadir}/%{_name}/ # Installing icons... install -d %{buildroot}%{_datadir}/pixmaps install -m 0644 -p bin/%{appname}.png %{buildroot}%{_datadir}/pixmaps/%{_name}.png install -d %{buildroot}%{_datadir}/icons/hicolor/scalable/apps install -m 0644 -p bin/%{appname}.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{_name}.svg # Installing launcher... install -d %{buildroot}%{_bindir} ln -s %{_datadir}/%{_name}/bin/%{appname} %{buildroot}%{_bindir}/%{_name} # Installing desktop file... install -d %{buildroot}%{_datadir}/applications install -m 0644 -p %{SOURCE0} %{buildroot}%{_datadir}/applications/%{_name}.desktop %check desktop-file-validate %{buildroot}%{_datadir}/applications/%{_name}.desktop %files %license license/* %{_datadir}/%{_name}/{bin,lib,plugins,build.txt,product-info.json} %{_bindir}/%{_name} %{_datadir}/applications/%{_name}.desktop %{_datadir}/pixmaps/%{_name}.png %{_datadir}/icons/hicolor/scalable/apps/%{_name}.svg %files jbr %{_datadir}/%{_name}/jbr %changelog * Thu Aug 29 2024 M3DZIK - 2024.2.1-1 - Update to 2024.2.1 (242.21829.142) * Tue Aug 20 2024 M3DZIK - 2024.2.0.2-1 - Update to 2024.2.0.2 (242.20224.419) * Wed Aug 14 2024 M3DZIK - 2024.2.0.1-1 - Update to 2024.2.0.1 (242.20224.387) * Wed Aug 07 2024 M3DZIK - 2024.2-1 - Update to 2024.2 (242.20224.300) * Tue Aug 06 2024 M3DZIK - 2024.1.5-1 - Update to 2024.1.5 (241.18968.26) * Fri Jun 26 2024 M3DZIK - 2024.1.4-1 - Migrated from `intellij-idea-community`