kf5-kconfig/kf5-kconfig.spec
liqiuyu123 a9b6e21b89 Update package to version 5.100.0
(cherry picked from commit aafb12b9a44f1798beda6628b2d643c8d98c84d6)
2023-04-19 13:49:17 +08:00

268 lines
6.5 KiB
RPMSpec

%global framework kconfig
%{!?docs: %global docs 1}
# uncomment to enable bootstrap mode
#global bootstrap 1
%if !0%{?bootstrap}
# FIXME/TODO: sip currently segfaults on s390x
%if 0%{?fedora}
%ifnarch ppc64 s390x
%if 0%{?fedora} < 29
%global python_bindings 1
%endif
%endif
%endif
#endif
%if 0%{?flatpak}
%global docs 0
%endif
%global tests 1
%endif
# use ninja instead of make
%global ninja 1
Name: kf5-%{framework}
Version: 5.100.0
Release: 1
Summary: KDE Frameworks 5 Tier 1 addon with advanced configuration system
License: GPLv2+ and LGPLv2+ and MIT
URL: https://invent.kde.org/frameworks/%{framework}
%global majmin %(echo %{version} | cut -d. -f1-2)
%global revision %(echo %{version} | cut -d. -f3)
%if %{revision} >= 50
%global stable unstable
%else
%global stable stable
%endif
Source0: http://download.kde.org/%{stable}/frameworks/%{majmin}/%{framework}-%{version}.tar.xz
## upstream patches
## upstreamable patches
%if 0%{?ninja}
BuildRequires: ninja-build
%endif
BuildRequires: extra-cmake-modules >= %{majmin}
BuildRequires: kf5-rpm-macros >= %{majmin}
BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtdeclarative-devel
%if 0%{?python_bindings}
%if 0%{?fedora} && 0%{?fedora} < 27
BuildRequires: bundled(python2-clang) >= 4.0.1
%else
BuildRequires: python2-clang
%endif
BuildRequires: clang
BuildRequires: clang-devel
BuildRequires: python2-PyQt5-devel
BuildRequires: python3-PyQt5-devel
%else
Obsoletes: python2-pykf5-%{framework} < %{version}-%{release}
Obsoletes: python3-pykf5-%{framework} < %{version}-%{release}
Obsoletes: pykf5-%{framework}-devel < %{version}-%{release}
%endif
%if 0%{?tests}
BuildRequires: dbus-x11
BuildRequires: time
BuildRequires: xorg-x11-server-Xvfb
%endif
Requires: kf5-filesystem >= %{majmin}
Requires: %{name}-core%{?_isa} = %{version}-%{release}
Requires: %{name}-gui%{?_isa} = %{version}-%{release}
%description
KDE Frameworks 5 Tier 1 addon with advanced configuration system made of two
parts: KConfigCore and KConfigGui.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig(Qt5Xml)
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%package core
Summary: Non-GUI part of KConfig framework
Requires: kde-settings
%description core
KConfigCore provides access to the configuration files themselves. It features
centralized definition and lock-down (kiosk) support.
%package gui
Summary: GUI part of KConfig framework
Requires: %{name}-core%{?_isa} = %{version}-%{release}
%description gui
KConfigGui provides a way to hook widgets to the configuration so that they are
automatically initialized from the configuration and automatically propagate
their changes to their respective configuration files.
%if 0%{?docs}
%package doc
Summary: API documentation for %{name}
BuildRequires: doxygen
BuildRequires: qt5-qdoc
BuildRequires: qt5-qhelpgenerator
BuildRequires: qt5-qtbase-doc
BuildRequires: make
Requires: kf5-filesystem
BuildArch: noarch
%description doc
%{summary}.
%endif
%if 0%{?python_bindings}
%package -n python2-pykf5-%{framework}
Summary: Python2 bindings for %{framework}
Requires: %{name} = %{version}-%{release}
%description -n python2-pykf5-%{framework}
%{summary}.
%package -n python3-pykf5-%{framework}
Summary: Python3 bindings for %{framework}
Requires: %{name} = %{version}-%{release}
%description -n python3-pykf5-%{framework}
%{summary}.
%package -n pykf5-%{framework}-devel
Summary: SIP files for %{framework} Python bindings
BuildArch: noarch
%description -n pykf5-%{framework}-devel
%{summary}.
%endif
%prep
%autosetup -n %{framework}-%{version} -p1
%build
%if 0%{?python_bindings:1}
PYTHONPATH=%{_datadir}/ECM/python
export PYTHONPATH
%endif
mkdir %{_target_platform}
pushd %{_target_platform}
%{cmake_kf5} .. \
%if 0%{?flatpak}
%{?docs:-DBUILD_QCH:BOOL=OFF} \
%else
%{?docs:-DBUILD_QCH:BOOL=ON} \
%endif
%{?ninja:-G Ninja} \
%{?tests:-DBUILD_TESTING:BOOL=ON}
popd
%if 0%{?ninja}
%ninja_build -C %{_target_platform}
%else
%make_build -C %{_target_platform}
%endif
%install
%if 0%{?ninja}
%ninja_install -C %{_target_platform}
%else
make install/fast DESTDIR=%{buildroot} -C %{_target_platform}
%endif
%find_lang_kf5 kconfig5_qt
%check
%if 0%{?tests}
export CTEST_OUTPUT_ON_FAILURE=1
## cant use %%ninja_test here for some reason, doesn't inherit env vars from xvfb or dbus -- rex
xvfb-run -a \
%if 0%{?ninja}
ninja test %{?_smp_mflags} -v -C redhat-linux-build ||:
%else
make test %{?_smp_mflags} -C redhat-linux-build ARGS="--output-on-failure --timeout 300" ||:
%endif
%endif
%files
%doc DESIGN README.md TODO
%license LICENSES/*.txt
%ldconfig_scriptlets core
%files core -f kconfig5_qt.lang
%{_kf5_datadir}/qlogging-categories5/%{framework}*
%{_kf5_bindir}/kreadconfig5
%{_kf5_bindir}/kwriteconfig5
%{_kf5_libdir}/libKF5ConfigCore.so.5*
%{_kf5_libdir}/libKF5ConfigQml.so.5*
%{_kf5_libexecdir}/kconfig_compiler_kf5
%{_kf5_libexecdir}/kconf_update
%ldconfig_scriptlets gui
%files gui
%{_kf5_libdir}/libKF5ConfigGui.so.*
%files devel
%{_kf5_includedir}/KConfig/
%{_kf5_includedir}/KConfigCore/
%{_kf5_includedir}/KConfigGui/
%{_kf5_includedir}/KConfigQml/
%{_kf5_libdir}/libKF5ConfigCore.so
%{_kf5_libdir}/libKF5ConfigGui.so
%{_kf5_libdir}/libKF5ConfigQml.so
%{_kf5_libdir}/cmake/KF5Config/
%{_kf5_archdatadir}/mkspecs/modules/qt_KConfigCore.pri
%{_kf5_archdatadir}/mkspecs/modules/qt_KConfigGui.pri
%if 0%{?docs}
%files doc
%{_qt5_docdir}/KF5Config.qch
%{_qt5_docdir}/KF5Config.tags
%endif
%if 0%{?python_bindings}
%files -n python2-pykf5-%{framework}
%{python2_sitearch}/PyKF5/
%files -n python3-pykf5-%{framework}
%{python3_sitearch}/PyKF5/
%files -n pykf5-%{framework}-devel
%{_datadir}/sip/PyKF5/
%endif
%changelog
* Fri Dec 09 2022 liqiuyu <liqiuyu@kylinos.cn> - 5.100.0-1
- Update package to version 5.100.0
* Mon Sep 05 2022 liweiganga <liweiganga@uniontech.com> - 5.97.0-1
- update to upstream version 5.97.0
* Mon Jul 04 2022 loong_C <loong_c@yeah.net> - 5.95.0-1
- update to upstream version 5.95.0
* Sat Feb 12 2022 tanyulong <tanyulong@kylinos.cn> - 5.90.0-1
- update to upstream version 5.90.0
* Thu Jan 13 2022 pei-jiankang<peijiankang@kylinos.cn> - 5.88.0-1
- update to upstream version 5.88.0
* Wed Jul 07 2021 tanyulong<tanyulong@kylinos.cn> -5.55.0-2
- fix kf5-kconfig project
* Thu Jul 23 2020 wangmian<wangmian@kylinos.cn> - 5.55.0-1
- Init kf5-kconfig project