#
+# Conditional build:
+%bcond_with qbs # package Qbs build tool
+%bcond_without webengine # QtWebEngine based help viewer
+
+%ifnarch %{x8664} aarch64
+%undefine with_webengine
+%endif
+
+%define qtver 6.4.3
Summary: An IDE tailored to the needs of Qt developers
-Summary(pl.UTF-8): IDE dostosowane do potrzeb developerow Qt
+Summary(pl.UTF-8): IDE dostosowane do potrzeb programistów Qt
Name: qt-creator
-Version: 1.0.0
-Release: 2
+Version: 12.0.2
+Release: 1
Epoch: 1
License: LGPL v2.1
-Group: Libraries
-Source0: http://download.qtsoftware.com/qtcreator/%{name}-%{version}-src.zip
-# Source0-md5: 5478124035d80a90e66a3db67ab4477a
-Patch0: %{name}-pluginpath64.patch
-URL: http://www.qtsoftware.com/developer/qt-creator
-BuildRequires: libstdc++-devel
-BuildRequires: qt4-qmake >= 4.5.0-3
-BuildRequires: QtSql-sqlite
-BuildRequires: QtGui-devel
+Group: X11/Development/Tools
+Source0: https://download.qt.io/official_releases/qtcreator/12.0/%{version}/%{name}-opensource-src-%{version}.tar.xz
+# Source0-md5: 110a36302e3ca0c2fd00cee7c9764571
+URL: https://doc.qt.io/qtcreator/
+BuildRequires: Qt6Concurrent-devel >= %{qtver}
+BuildRequires: Qt6Designer-devel >= %{qtver}
+BuildRequires: Qt6Gui-devel >= %{qtver}
+BuildRequires: Qt6Help-devel >= %{qtver}
+BuildRequires: Qt6Network-devel >= %{qtver}
+BuildRequires: Qt6PrintSupport-devel >= %{qtver}
+BuildRequires: Qt6Qml-devel >= %{qtver}
+BuildRequires: Qt6Qt5Compat-devel >= %{qtver}
+BuildRequires: Qt6Quick-devel >= %{qtver}
+BuildRequires: Qt6SerialPort-devel >= %{qtver}
+BuildRequires: Qt6ShaderTools-devel >= %{qtver}
+BuildRequires: Qt6Sql-devel >= %{qtver}
+BuildRequires: Qt6Svg-devel >= %{qtver}
+BuildRequires: Qt6UiTools-devel >= %{qtver}
+%{?with_webengine:BuildRequires: Qt6WebEngine-devel >= %{qtver}}
+BuildRequires: Qt6Widgets-devel >= %{qtver}
+BuildRequires: Qt6Xml-devel >= %{qtver}
+BuildRequires: clang-devel >= 6.0.0
+BuildRequires: cmake >= 3.16
+BuildRequires: gdb
+BuildRequires: libstdc++-devel >= 6:7
+BuildRequires: llvm-devel >= 7.0.0
+BuildRequires: qt6-build >= %{qtver}
+BuildRequires: qt6-linguist
+BuildRequires: qt6-shadertools
+BuildRequires: rpmbuild(macros) >= 1.742
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+BuildRequires: yaml-cpp-devel >= 0.8
+Requires(post,postun): desktop-file-utils
+%requires_eq Qt6Core
+Requires: Qt6Gui-platform-xcb
+Requires: Qt6Sql-sqldriver-sqlite3
+Requires: hicolor-icon-theme
+Requires: qt5-qtdeclarative
+# for xdg-open
+Suggests: xdg-utils
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define skip_post_check_so 'libClangsupport\.so.*'
+
%description
-Qt Creator is a cross-platform integrated development environment (IDE)
-tailored to the needs of Qt developers.
+Qt Creator is a cross-platform integrated development environment
+(IDE) tailored to the needs of Qt developers.
%description -l pl.UTF-8
-Qt Creator to wieloplatformowe IDE dostosowane do potrzeb developerow Qt.
+Qt Creator to wieloplatformowe IDE dostosowane do potrzeb programistów
+Qt.
%prep
-%setup -q -n %{name}-%{version}-src
+%setup -q -n %{name}-opensource-src-%{version}
-%if "%{_lib}" == "lib64"
-%patch0 -p1
-%endif
+sed -i '1s,/usr/bin/env python,%{__python},' src/shared/qbs/src/3rdparty/python/lib/python3.9/site-packages/dmgbuild/__main__.py
%build
-export QTDIR=%{_libdir}/qt4
-# the qmakespec in qt4 is somewhat broken, need to look at this
-#export QMAKESPEC=%{_datadir}/qt4/mkspecs/linux-g++/
-
-qmake-qt4 qtcreator.pro \
- QMAKE_CXX="%{__cxx}" \
- QMAKE_LINK="%{__cxx}" \
- QMAKE_CXXFLAGS_RELEASE="%{rpmcflags}" \
- QMAKE_RPATH=
+%cmake -B build \
+ %{cmake_on_off qbs BUILD_QBS} \
+ %{cmake_on_off webengine BUILD_HELPVIEWERBACKEND_QTWEBENGINE}
-%{__make}
+%{__make} -C build
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_desktopdir}
-export QTDIR=%{_libdir}/qt4
-#export QMAKESPEC=%{_datadir}/qt4/mkspecs/linux-g++/
-%{__make} install \
- INSTALL_ROOT=$RPM_BUILD_ROOT/%{_prefix}
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
-mv -f $RPM_BUILD_ROOT/{%{_prefix}/lib,%{_libdir}}
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d
+echo "%{_libdir}/qtcreator" > $RPM_BUILD_ROOT%{_sysconfdir}/ld.so.conf.d/qtcreator.conf
+cp -p share/applications/org.qt-project.qtcreator.desktop $RPM_BUILD_ROOT%{_desktopdir}
-install -d $RPM_BUILD_ROOT/%{_sysconfdir}/ld.so.conf.d
-echo "%{_libdir}/qtcreator" > $RPM_BUILD_ROOT/%{_sysconfdir}/ld.so.conf.d/qtcreator.conf
+rm -f $RPM_BUILD_ROOT%{_libdir}/qtcreator/*.prl
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+/sbin/ldconfig
+%update_desktop_database
+%update_icon_cache hicolor
+
+%postun
+/sbin/ldconfig
+%update_desktop_database_postun
+%update_icon_cache hicolor
+
%files
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/*
+%if %{with qbs}
+%attr(755,root,root) %{_bindir}/qbs
+%attr(755,root,root) %{_bindir}/qbs-config
+%attr(755,root,root) %{_bindir}/qbs-config-ui
+%attr(755,root,root) %{_bindir}/qbs-create-project
+%attr(755,root,root) %{_bindir}/qbs-setup-android
+%attr(755,root,root) %{_bindir}/qbs-setup-qt
+%attr(755,root,root) %{_bindir}/qbs-setup-toolchains
+%endif
+%attr(755,root,root) %{_bindir}/qtcreator
%{_sysconfdir}/ld.so.conf.d/qtcreator.conf
+%dir %{_libexecdir}/qtcreator
+%attr(755,root,root) %{_libexecdir}/qtcreator/buildoutputparser
+%attr(755,root,root) %{_libexecdir}/qtcreator/cpaster
+%{?with_qbs:%attr(755,root,root) %{_libexecdir}/qtcreator/dmgbuild}
+%attr(755,root,root) %{_libexecdir}/qtcreator/perf2text
+%attr(755,root,root) %{_libexecdir}/qtcreator/perfparser
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtcreator_processlauncher
+%{?with_qbs:%attr(755,root,root) %{_libexecdir}/qtcreator/qbs_processlauncher}
+%attr(755,root,root) %{_libexecdir}/qtcreator/qml2puppet-%{version}
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtcreator_process_stub
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtc-askpass
+%attr(755,root,root) %{_libexecdir}/qtcreator/qtpromaker
+%attr(755,root,root) %{_libexecdir}/qtcreator/sdktool
%dir %{_libdir}/qtcreator
%attr(755,root,root) %{_libdir}/qtcreator/lib*.so.*.*
-%attr(755,root,root) %{_libdir}/qtcreator/lib*.so
+%attr(755,root,root) %ghost %{_libdir}/qtcreator/lib*.so.12
%dir %{_libdir}/qtcreator/plugins
-%dir %{_libdir}/qtcreator/plugins/Nokia
-%{_libdir}/qtcreator/plugins/Nokia/*.pluginspec
-%attr(755,root,root) %{_libdir}/qtcreator/plugins/Nokia/*.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/lib*.so
+%if %{with qbs}
+%dir %{_libdir}/qtcreator/plugins/qbs
+%dir %{_libdir}/qtcreator/plugins/qbs/plugins
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libclangcompilationdbgenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libiarewgenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libkeiluvgenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libmakefilegenerator.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libqbs_cpp_scanner.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libqbs_qt_scanner.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qbs/plugins/libvisualstudiogenerator.so
+%endif
+%dir %{_libdir}/qtcreator/plugins/qmldesigner
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libassetexporterplugin.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libcomponentsplugin.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libqmlpreviewplugin.so
+%attr(755,root,root) %{_libdir}/qtcreator/plugins/qmldesigner/libqtquickplugin.so
%{_datadir}/qtcreator
-%{_defaultdocdir}/qtcreator
-%{_pixmapsdir}/qtcreator_logo*.png
-
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%{_datadir}/metainfo/org.qt-project.qtcreator.appdata.xml
+%{_desktopdir}/org.qt-project.qtcreator.desktop
+%{_iconsdir}/hicolor/*x*/apps/QtProject-qtcreator.png