File calamares.spec of Package calamares
#
# spec file for package calamares
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
# Internal QML import
%global __requires_exclude qmlimport\\(calamares\\.slideshow.*
%define lname lib%{name}
%define _sover 3
Name: calamares
Version: 3.2.60
Release: 0
Summary: Distribution-independent installer framework
License: GPL-3.0-or-later
Group: System/Management
URL: https://github.com/calamares/calamares
Source0: https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz
Source1: https://github.com/%{name}/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz.asc
Source2: %{name}.keyring
Source3: %{name}.rpmlintrc
Source4: branding-SuSE.tar.xz
Source5: 3.2-branding.desc.patch.SuSE
Source6: 3.2-mount.conf.patch.SuSE
Source7: 3.2-settings.conf.patch.SuSE
Source8: 3.2-show.qml.patch.SuSE
Source9: 3.2-unpackfs.conf.patch.SuSE
Source10: 3.2-users.conf.patch.SuSE
Patch1: 3.2-bootloader.conf.patch
Patch2: 3.2-branding.desc.patch
Patch3: 3.2-displaymanager.conf.patch
Patch4: 3.2-networkcfg.patch
Patch5: 3.2-packages.conf.patch
Patch6: 3.2-removeuser.conf.patch
Patch7: 3.2-settings.conf.patch
Patch8: 3.2-show.qml.patch
Patch9: 3.2-unpackfs.conf.patch
Patch10: 3.2-welcome.conf.patch
Patch11: %{name}-desktop-file.patch
BuildRequires: cmake
BuildRequires: cmake(AppStreamQt)
BuildRequires: cmake(KF5Config)
BuildRequires: cmake(KF5CoreAddons)
BuildRequires: cmake(KF5Crash)
BuildRequires: cmake(KF5DBusAddons)
BuildRequires: cmake(KF5I18n)
BuildRequires: cmake(KF5Package)
BuildRequires: cmake(KF5Parts)
BuildRequires: cmake(KF5Plasma)
BuildRequires: cmake(KF5Service)
BuildRequires: cmake(KF5WidgetsAddons)
BuildRequires: cmake(KPMcore)
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: extra-cmake-modules
BuildRequires: gcc-c++
BuildRequires: hicolor-icon-theme
BuildRequires: libboost_python3-devel
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Location)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5Positioning)
BuildRequires: pkgconfig(Qt5Quick)
BuildRequires: pkgconfig(Qt5QuickWidgets)
BuildRequires: pkgconfig(Qt5Svg)
BuildRequires: pkgconfig(Qt5Test)
BuildRequires: pkgconfig(Qt5WebEngine)
BuildRequires: pkgconfig(Qt5WebEngineWidgets)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: pkgconfig(icu-uc)
BuildRequires: pkgconfig(libatasmart)
BuildRequires: pkgconfig(libparted)
BuildRequires: pkgconfig(polkit-qt5-1)
BuildRequires: pkgconfig(pwquality)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(yaml-cpp)
BuildRequires: update-desktop-files
Requires: %{name}-branding = %{version}
Requires: NetworkManager
Requires: console-setup
Requires: dmidecode
Requires: gptfdisk
Requires: grub2
Requires: kpmcore
Requires: os-prober
Requires: polkit
Requires: python3
Requires: rsync
Requires: squashfs
Requires: upower
Requires: coreutils
Requires: dosfstools
Requires: dracut
Requires: e2fsprogs
Requires: gawk
Requires: ntfsprogs
Requires: parted
Requires: systemd
Requires: util-linux
Requires: xkbutils
Requires: zypper
%ifarch x86_64
# EFI currently only supported on x86_64
Requires: grub2-efi
%endif
Recommends: btrfsprogs
Recommends: hfsutils
Recommends: jfsutils
Recommends: ntfs-3g
Recommends: reiserfs
Recommends: xfsprogs
%description
Calamares is a distribution-independent installer framework, designed to install
from a live CD/DVD/USB environment to a hard disk. It includes a graphical
installation program based on Qt 5. This package includes the Calamares
framework and the required configuration files to produce a working replacement
for YaST's installer.
%lang_package
%package libs%{_sover}
Summary: Calamares runtime libraries
Group: Development/Libraries/C and C++
Provides: %{name}-libs = %{version}
Obsoletes: %{name}-libs < %{version}
%description libs%{_sover}
Calamares libraries for development
%package devel
Summary: Development package for calamares
Group: Development/Libraries/C and C++
Requires: %{name}-libs%{_sover} = %{version}-%{release}
%description devel
Development and Header files for package %{name}
%package interactiveterminal
Summary: Calamares interactiveterminal module
Group: System/Management
Requires: %{name} = %{version}-%{release}
Supplements: (%{name} and konsole-part)
%description interactiveterminal
Optional interactiveterminal module for the Calamares installer, based on
the KonsolePart (from Konsole 5)
%package plasmalnf
Summary: Calamares plasmalnf module
Group: System/Management
Requires: %{name} = %{version}-%{release}
Supplements: (%{name} and plasma5-workspace)
%description plasmalnf
Optional plasmalnf module for the Calamares installer, based on the KDE
Plasma Desktop Workspace and its KDE Frameworks (KConfig, KPackage, Plasma)
%package webview
Summary: Calamares webview module
Group: System/Management
Requires: %{name} = %{version}-%{release}
%description webview
Optional webview module for the Calamares installer.
%package branding-upstream
Summary: Upstream Branding for %{name}
Group: System/Management
Supplements: (%{name} and branding-upstream)
Conflicts: %{name}-branding
Provides: %{name}-branding = %{version}
BuildArch: noarch
%description branding-upstream
This package provides the upstream "look and feel" for %{name}.
%package branding-SuSE
Summary: Upstream Branding for %{name}
Group: System/Management
Supplements: (%{name} and branding-SuSE)
Conflicts: %{name}-branding
Provides: %{name}-branding = %{version}
BuildArch: noarch
%description branding-SuSE
This package provides the SuSE "look and feel" for %{name}.
%prep
%autosetup -p1
# env-script-interpreter
find -name 'main.py' -exec sed -i '/#!\/usr\/bin\/env/s/env\ //' {} \;
%build
%define __builder ninja
%cmake \
-DINSTALL_CONFIG=ON \
-DINSTALL_COMPLETION=ON
%ninja_build
%install
%cmake_install
%suse_update_desktop_file -r %{name} Qt System PackageManager
# non-executable-script
chmod a+x %{buildroot}%{_libdir}/%{name}/modules/*/main.py
chmod a+x %{buildroot}%{_libdir}/%{name}/modules/initramfscfg/encrypt_hook*
chmod a+x %{buildroot}%{_libdir}/%{name}/modules/unpackfs/runtests.sh
# branding-SuSE
tar xf %{SOURCE4} -C %{buildroot}%{_datadir}/%{name}/branding/
cp %{buildroot}%{_datadir}/%{name}/branding/default/branding.desc %{buildroot}%{_datadir}/%{name}/branding/SuSE/
cp %{buildroot}%{_datadir}/%{name}/branding/default/show.qml %{buildroot}%{_datadir}/%{name}/branding/SuSE/
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules/
cp %{buildroot}%{_datadir}/%{name}/settings.conf %{buildroot}%{_sysconfdir}/%{name}/
cp %{buildroot}%{_datadir}/%{name}/modules/*.conf %{buildroot}%{_sysconfdir}/%{name}/modules/
pushd %{buildroot}
patch -p1 -i %{SOURCE5}
patch -p1 -i %{SOURCE6}
patch -p1 -i %{SOURCE7}
patch -p1 -i %{SOURCE8}
patch -p1 -i %{SOURCE9}
patch -p1 -i %{SOURCE10}
popd
%find_lang %{name}-python %{name}.lang
%post libs%{_sover} -p /sbin/ldconfig
%postun libs%{_sover} -p /sbin/ldconfig
%files
%doc AUTHORS README.md
%{_bindir}/%{name}
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/%{name}
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/qml
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.??g
%{_datadir}/polkit-1/actions/com.github.%{name}.%{name}.policy
%{_mandir}/man?/%{name}.?%{?ext_man}
%exclude %{_datadir}/%{name}/branding
%exclude %{_datadir}/%{name}/modules
%exclude %{_datadir}/%{name}/settings.conf
%license LICENSES/GPL-3.0-or-later.txt
%files libs%{_sover}
%{_libdir}/%{lname}*.so.*
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/%{lname}*.so
%{_libdir}/%{name}/modules
%exclude %{_libdir}/%{name}/modules/interactiveterminal/
%exclude %{_libdir}/%{name}/modules/plasmalnf/
%exclude %{_libdir}/%{name}/modules/webview/
%files devel
%{_includedir}/%{lname}
%{_libdir}/%{lname}*.so
%{_libdir}/cmake/Calamares
%files branding-upstream
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/branding
%{_datadir}/%{name}/branding/default
%{_datadir}/%{name}/modules
%{_datadir}/%{name}/settings.conf
%exclude %{_datadir}/%{name}/modules/interactiveterminal.conf
%exclude %{_datadir}/%{name}/modules/plasmalnf.conf
%exclude %{_datadir}/%{name}/modules/webview.conf
%files branding-SuSE
%dir %{_sysconfdir}/%{name}
%dir %{_sysconfdir}/%{name}/modules
%config %{_sysconfdir}/%{name}/modules/*.conf
%config %{_sysconfdir}/%{name}/settings.conf
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/branding
%{_datadir}/%{name}/branding/SuSE
%files interactiveterminal
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/modules
%{_datadir}/%{name}/modules/interactiveterminal.conf
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/modules
%{_libdir}/%{name}/modules/interactiveterminal/
%files plasmalnf
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/modules
%{_datadir}/%{name}/modules/plasmalnf.conf
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/modules
%{_libdir}/%{name}/modules/plasmalnf/
%files webview
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/modules
%{_datadir}/%{name}/modules/webview.conf
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/modules
%{_libdir}/%{name}/modules/webview/
%files lang -f %{name}.lang
%changelog