474 lines
14 KiB
RPMSpec
474 lines
14 KiB
RPMSpec
Summary: Graphical system installer
|
|
Name: anaconda
|
|
Version: 41.35
|
|
Release: 2%{?dist}
|
|
License: GPL-2.0-or-later
|
|
URL: http://fedoraproject.org/wiki/Anaconda
|
|
|
|
# To generate Source0 do:
|
|
# git clone https://github.com/rhinstaller/anaconda
|
|
# git checkout -b archive-branch anaconda-%%{version}-%%{release}
|
|
# ./autogen.sh
|
|
# make dist
|
|
Source0: https://github.com/rhinstaller/%{name}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
|
|
|
|
# Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2321249
|
|
Patch0: 0001-hotfix-Disable-broken-Xvnc-feature.patch
|
|
|
|
# Versions of required components (done so we make sure the buildrequires
|
|
# match the requires versions of things).
|
|
|
|
%bcond_with glade
|
|
%bcond_with live
|
|
%define dasbusver 1.3
|
|
%define dbusver 1.2.3
|
|
%define dnfver 3.6.0
|
|
%define dracutver 034-7
|
|
%define fcoeutilsver 1.0.12-3.20100323git
|
|
%define gettextver 0.19.8
|
|
%define gtk3ver 3.22.17
|
|
%define isomd5sumver 1.0.10
|
|
%define langtablever 0.0.60
|
|
%define libarchivever 3.0.4
|
|
%define libblockdevver 2.1
|
|
%define libreportanacondaver 2.0.21-1
|
|
%define libxklavierver 5.4
|
|
%define mehver 0.23-1
|
|
%define nmver 1.0
|
|
%define pykickstartver 3.58-1
|
|
%define pypartedver 2.5-2
|
|
%define pythonblivetver 1:3.9.0-1
|
|
%define rpmver 4.15.0
|
|
%define simplelinever 1.9.0-1
|
|
%define subscriptionmanagerver 1.26
|
|
%define utillinuxver 2.15.1
|
|
%define rpmostreever 2023.2
|
|
|
|
BuildRequires: libtool
|
|
BuildRequires: gettext-devel >= %{gettextver}
|
|
BuildRequires: gtk3-devel >= %{gtk3ver}
|
|
BuildRequires: gtk-doc
|
|
BuildRequires: gtk3-devel-docs >= %{gtk3ver}
|
|
BuildRequires: glib2-doc
|
|
BuildRequires: gobject-introspection-devel
|
|
%if %{with glade}
|
|
BuildRequires: glade-devel
|
|
%endif
|
|
BuildRequires: libxklavier-devel >= %{libxklavierver}
|
|
BuildRequires: make
|
|
BuildRequires: pango-devel
|
|
BuildRequires: python3-devel
|
|
BuildRequires: systemd
|
|
# rpm and libarchive are needed for driver disk handling
|
|
BuildRequires: rpm-devel >= %{rpmver}
|
|
BuildRequires: libarchive-devel >= %{libarchivever}
|
|
%ifarch s390 s390x
|
|
BuildRequires: s390utils-devel
|
|
%endif
|
|
|
|
# Tools used by the widgets resource bundle generation
|
|
BuildRequires: gdk-pixbuf2-devel
|
|
BuildRequires: libxml2
|
|
|
|
Requires: anaconda-gui = %{version}-%{release}
|
|
Requires: anaconda-tui = %{version}-%{release}
|
|
|
|
%description
|
|
The anaconda package is a metapackage for the Anaconda installer.
|
|
|
|
%package core
|
|
Summary: Core of the Anaconda installer
|
|
# core/signal.py is under MIT
|
|
License: GPL-2.0-or-later AND MIT
|
|
Requires: python3-libs
|
|
%if 0%{?rhel} > 10 || 0%{?fedora} > 40
|
|
Requires: python3-crypt-r
|
|
%endif
|
|
Requires: python3-dnf >= %{dnfver}
|
|
Requires: python3-blivet >= %{pythonblivetver}
|
|
Requires: python3-blockdev >= %{libblockdevver}
|
|
Requires: python3-meh >= %{mehver}
|
|
%if 0%{?rhel} < 10 || 0%{?fedora}
|
|
Requires: libreport-anaconda >= %{libreportanacondaver}
|
|
%endif
|
|
Requires: libselinux-python3
|
|
Requires: python3-rpm >= %{rpmver}
|
|
Requires: python3-pyparted >= %{pypartedver}
|
|
Requires: python3-requests
|
|
Requires: python3-requests-file
|
|
Requires: python3-requests-ftp
|
|
Requires: python3-kickstart >= %{pykickstartver}
|
|
Requires: python3-langtable >= %{langtablever}
|
|
Requires: util-linux >= %{utillinuxver}
|
|
Requires: python3-gobject-base
|
|
Requires: python3-pwquality
|
|
Requires: python3-systemd
|
|
Requires: python3-productmd
|
|
Requires: python3-dasbus >= %{dasbusver}
|
|
Requires: flatpak-libs
|
|
%if %{defined rhel} && %{undefined centos}
|
|
Requires: subscription-manager >= %{subscriptionmanagerver}
|
|
%endif
|
|
|
|
# pwquality only "recommends" the dictionaries it needs to do anything useful,
|
|
# which is apparently great for containers but unhelpful for the rest of us
|
|
Requires: cracklib-dicts
|
|
|
|
%if 0%{?rhel} < 10 || 0%{?fedora}
|
|
Requires: teamd
|
|
Requires: NetworkManager-team
|
|
%endif
|
|
%ifarch s390 s390x
|
|
Requires: openssh
|
|
%endif
|
|
Requires: NetworkManager >= %{nmver}
|
|
Requires: NetworkManager-libnm >= %{nmver}
|
|
Requires: kbd
|
|
Requires: chrony
|
|
Requires: systemd
|
|
%if 0%{?rhel} > 10 || 0%{?fedora}
|
|
Requires: systemd-resolved
|
|
%endif
|
|
Requires: python3-pid
|
|
|
|
# Required by the systemd service anaconda-fips.
|
|
Requires: crypto-policies
|
|
Requires: /usr/bin/update-crypto-policies
|
|
|
|
# required because of the rescue mode and VNC question
|
|
Requires: anaconda-tui = %{version}-%{release}
|
|
|
|
# Make sure we get the en locale one way or another
|
|
Requires: (glibc-langpack-en or glibc-all-langpacks)
|
|
|
|
# anaconda literally runs its own dbus-daemon, so it needs this,
|
|
# even though the distro default is dbus-broker in F30+
|
|
Requires: dbus-daemon
|
|
|
|
# setting time from time spoke
|
|
Requires: /usr/bin/date
|
|
|
|
# Ensure it's not possible for a version of grubby to be installed
|
|
# that doesn't work with btrfs subvolumes correctly...
|
|
Conflicts: grubby < 8.40-10
|
|
|
|
Obsoletes: anaconda-images <= 10
|
|
Provides: anaconda-images = %{version}-%{release}
|
|
Obsoletes: anaconda-runtime < %{version}-%{release}
|
|
Provides: anaconda-runtime = %{version}-%{release}
|
|
Obsoletes: booty <= 0.107-1
|
|
|
|
%description core
|
|
The anaconda-core package contains the program which was used to install your
|
|
system.
|
|
# do not provide the live subpackage on RHEL
|
|
|
|
%package live
|
|
Summary: Live installation specific files and dependencies
|
|
BuildArchitectures: noarch
|
|
BuildRequires: desktop-file-utils
|
|
# live installation currently implies a graphical installation
|
|
Requires: anaconda-gui = %{version}-%{release}
|
|
Requires: zenity
|
|
Requires: xisxwayland
|
|
Recommends: xhost
|
|
|
|
%description live
|
|
The anaconda-live package contains scripts, data and dependencies required
|
|
for live installations.
|
|
|
|
%endif
|
|
|
|
%package install-env-deps
|
|
Summary: Installation environment specific dependencies
|
|
Requires: udisks2-iscsi
|
|
Requires: libblockdev-plugins-all >= %{libblockdevver}
|
|
%if ! 0%{?rhel}
|
|
Requires: libblockdev-lvm-dbus
|
|
%endif
|
|
# active directory/freeipa join support
|
|
Requires: realmd
|
|
Requires: isomd5sum >= %{isomd5sumver}
|
|
%ifarch %{ix86} x86_64
|
|
Recommends: fcoe-utils >= %{fcoeutilsver}
|
|
%endif
|
|
# likely HFS+ resize support
|
|
%ifarch %{ix86} x86_64
|
|
%if ! 0%{?rhel}
|
|
Requires: hfsplus-tools
|
|
%endif
|
|
%endif
|
|
# kexec support except riscv64
|
|
%ifnarch riscv64
|
|
Requires: kexec-tools
|
|
%endif
|
|
# run's on TTY1 in install env
|
|
Requires: tmux
|
|
# install time crash handling
|
|
Requires: gdb
|
|
# support for installation from image and live & live image installations
|
|
Requires: rsync
|
|
# An addon that allows enabling kdump at install time
|
|
Recommends: kdump-anaconda-addon
|
|
# basic filesystem tools
|
|
%if ! 0%{?rhel}
|
|
Requires: btrfs-progs
|
|
Requires: ntfs-3g
|
|
Requires: ntfsprogs
|
|
Requires: f2fs-tools
|
|
%endif
|
|
Requires: xfsprogs
|
|
Requires: dosfstools
|
|
Requires: e2fsprogs
|
|
# External tooling for managing NVMe-FC devices in the installation environment
|
|
Recommends: nvme-cli
|
|
|
|
%description install-env-deps
|
|
The anaconda-install-env-deps metapackage lists all installation environment
|
|
dependencies. This makes it possible for packages (such as Initial Setup) to
|
|
depend on the main Anaconda package without pulling in all the install time
|
|
dependencies as well.
|
|
|
|
%package install-img-deps
|
|
Summary: Installation image specific dependencies
|
|
# This package must have no weak dependencies.
|
|
# Pull in most stuff with the -env- metapackage
|
|
Requires: anaconda-install-env-deps = %{version}-%{release}
|
|
# Require storage things that are only recommended in -env-
|
|
%ifarch %{ix86} x86_64
|
|
Requires: fcoe-utils >= %{fcoeutilsver}
|
|
%endif
|
|
# only WeakRequires elsewhere and not guaranteed to be present
|
|
Requires: device-mapper-multipath
|
|
# only WeakRequires in -env-
|
|
Requires: kdump-anaconda-addon
|
|
%if ! 0%{?rhel}
|
|
Requires: zram-generator-defaults
|
|
%else
|
|
Requires: zram-generator
|
|
%endif
|
|
# needed for proper driver disk support - if RPMs must be installed, a repo is needed
|
|
Requires: createrepo_c
|
|
# Display stuff moved from lorax templates
|
|
Requires: xorg-x11-drivers
|
|
Requires: xorg-x11-server-Xorg
|
|
Requires: xrandr
|
|
Requires: xrdb
|
|
Requires: dbus-x11
|
|
Requires: gsettings-desktop-schemas
|
|
Requires: nm-connection-editor
|
|
Requires: librsvg2
|
|
Requires: gnome-kiosk
|
|
Requires: brltty
|
|
# dependencies for rpm-ostree payload module
|
|
Requires: rpm-ostree >= %{rpmostreever}
|
|
Requires: ostree
|
|
# used by ostree command for native containers
|
|
Requires: skopeo
|
|
# External tooling for managing NVMe-FC devices in the installation environment
|
|
Requires: nvme-cli
|
|
# Needed for bootc
|
|
Requires: podman
|
|
|
|
%description install-img-deps
|
|
The anaconda-install-img-deps metapackage lists all boot.iso installation
|
|
image dependencies. Add this package to an image build (eg. with lorax) to
|
|
ensure all Anaconda capabilities are supported in the resulting image.
|
|
|
|
%package gui
|
|
Summary: Graphical user interface for the Anaconda installer
|
|
Requires: anaconda-core = %{version}-%{release}
|
|
Requires: anaconda-widgets = %{version}-%{release}
|
|
Requires: python3-iso639
|
|
Requires: python3-meh-gui >= %{mehver}
|
|
Requires: python3-xkbregistry
|
|
Requires: adwaita-icon-theme
|
|
Requires: tecla
|
|
Requires: tigervnc-server-minimal
|
|
Requires: libxklavier >= %{libxklavierver}
|
|
Requires: nm-connection-editor
|
|
%ifnarch s390 s390x
|
|
Requires: NetworkManager-wifi
|
|
%endif
|
|
%if ! 0%{?rhel}
|
|
Requires: blivet-gui-runtime >= %{blivetguiver}
|
|
%endif
|
|
Requires: system-logos
|
|
|
|
# Needed to compile the gsettings files
|
|
BuildRequires: gsettings-desktop-schemas
|
|
|
|
%description gui
|
|
This package contains graphical user interface for the Anaconda installer.
|
|
|
|
%package tui
|
|
Summary: Textual user interface for the Anaconda installer
|
|
Requires: anaconda-core = %{version}-%{release}
|
|
Requires: python3-simpleline >= %{simplelinever}
|
|
|
|
%description tui
|
|
This package contains textual user interface for the Anaconda installer.
|
|
|
|
%package widgets
|
|
Summary: A set of custom GTK+ widgets for use with anaconda
|
|
Requires: %{__python3}
|
|
|
|
%description widgets
|
|
This package contains a set of custom GTK+ widgets used by the anaconda
|
|
installer.
|
|
|
|
%package widgets-devel
|
|
Summary: Development files for anaconda-widgets
|
|
%if %{with glade}
|
|
Requires: glade
|
|
%endif
|
|
Requires: %{name}-widgets%{?_isa} = %{version}-%{release}
|
|
|
|
%description widgets-devel
|
|
This package contains libraries and header files needed for writing the
|
|
anaconda installer. It also contains Python and Glade support files,
|
|
as well as documentation for working with this library.
|
|
|
|
%package dracut
|
|
Summary: The anaconda dracut module
|
|
Requires: dracut >= %{dracutver}
|
|
Requires: dracut-network
|
|
Requires: dracut-live
|
|
Requires: xz
|
|
Requires: python3-kickstart
|
|
Requires: iputils
|
|
|
|
%description dracut
|
|
The 'anaconda' dracut module handles installer-specific boot tasks and
|
|
options. This includes driver disks, kickstarts, and finding the anaconda
|
|
runtime on NFS/HTTP/FTP servers or local disks.
|
|
|
|
%prep
|
|
%autosetup -p 1
|
|
|
|
%build
|
|
# use actual build-time release number, not tarball creation time release number
|
|
%configure ANACONDA_RELEASE=%{release} %{!?with_glade:--disable-glade}
|
|
%{__make} %{?_smp_mflags}
|
|
|
|
%install
|
|
%{make_install}
|
|
find %{buildroot} -type f -name "*.la" | xargs %{__rm}
|
|
|
|
# Create an empty directory for addons
|
|
mkdir %{buildroot}%{_datadir}/anaconda/addons
|
|
|
|
# Create an empty directory for post-scripts
|
|
mkdir %{buildroot}%{_datadir}/anaconda/post-scripts
|
|
|
|
# required for live installations
|
|
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/liveinst.desktop
|
|
%else
|
|
# Remove all live-installer files from the buildroot
|
|
rm -rf \
|
|
%{buildroot}/%{_sysconfdir}/xdg/autostart/liveinst-setup.desktop \
|
|
%{buildroot}/%{_bindir}/liveinst \
|
|
%{buildroot}/%{_libexecdir}/liveinst-setup.sh \
|
|
%{buildroot}/%{_datadir}/anaconda/gnome \
|
|
%{buildroot}/%{_datadir}/anaconda/gnome/fedora-welcome \
|
|
%{buildroot}/%{_datadir}/anaconda/gnome/org.fedoraproject.welcome-screen.desktop \
|
|
%{buildroot}/%{_datadir}/polkit-1/actions/* \
|
|
%{buildroot}/%{_datadir}/applications/liveinst.desktop
|
|
%endif
|
|
|
|
# Add localization files
|
|
%find_lang %{name}
|
|
|
|
# main package and install-env-deps are metapackages
|
|
%files
|
|
|
|
%files install-env-deps
|
|
|
|
# Allow the lang file to be empty
|
|
%define _empty_manifest_terminate_build 0
|
|
|
|
%files install-img-deps
|
|
|
|
# Allow the lang file to be empty here too
|
|
%define _empty_manifest_terminate_build 0
|
|
|
|
%files core -f %{name}.lang
|
|
%license COPYING
|
|
%{_unitdir}/*
|
|
%{_prefix}/lib/systemd/system-generators/*
|
|
%{_bindir}/instperf
|
|
%{_bindir}/anaconda-disable-nm-ibft-plugin
|
|
%{_bindir}/anaconda-nm-disable-autocons
|
|
%{_sbindir}/anaconda
|
|
%{_sbindir}/handle-sshpw
|
|
%{_datadir}/anaconda
|
|
%{_prefix}/libexec/anaconda
|
|
%exclude %{_datadir}/anaconda/gnome
|
|
%exclude %{_datadir}/anaconda/pixmaps
|
|
%exclude %{_datadir}/anaconda/ui
|
|
%exclude %{_datadir}/anaconda/window-manager
|
|
%exclude %{_datadir}/anaconda/anaconda-gtk.css
|
|
%dir %{_datadir}/anaconda/post-scripts
|
|
%exclude %{_prefix}/libexec/anaconda/dd_*
|
|
%{python3_sitearch}/pyanaconda
|
|
%exclude %{python3_sitearch}/pyanaconda/rescue.py*
|
|
%exclude %{python3_sitearch}/pyanaconda/__pycache__/rescue.*
|
|
%exclude %{python3_sitearch}/pyanaconda/ui/gui/*
|
|
%exclude %{python3_sitearch}/pyanaconda/ui/tui/*
|
|
%{_bindir}/anaconda-cleanup
|
|
%dir %{_sysconfdir}/%{name}
|
|
%config %{_sysconfdir}/%{name}/*
|
|
%dir %{_sysconfdir}/%{name}/conf.d
|
|
%config %{_sysconfdir}/%{name}/conf.d/*
|
|
%dir %{_sysconfdir}/%{name}/profile.d
|
|
%config %{_sysconfdir}/%{name}/profile.d/*
|
|
# do not provide the live subpackage on RHEL
|
|
|
|
%files live
|
|
%{_bindir}/liveinst
|
|
%{_datadir}/polkit-1/actions/*
|
|
%{_libexecdir}/liveinst-setup.sh
|
|
%{_datadir}/applications/*.desktop
|
|
%{_datadir}/anaconda/gnome
|
|
%{_sysconfdir}/xdg/autostart/*.desktop
|
|
|
|
%endif
|
|
|
|
%files gui
|
|
%{python3_sitearch}/pyanaconda/ui/gui/*
|
|
%{_datadir}/anaconda/pixmaps
|
|
%{_datadir}/anaconda/ui
|
|
%if 0%{?rhel}
|
|
# Remove blivet-gui
|
|
%exclude %{_datadir}/anaconda/ui/spokes/blivet_gui.*
|
|
%exclude %{python3_sitearch}/pyanaconda/ui/gui/spokes/blivet_gui.*
|
|
%endif
|
|
%{_datadir}/anaconda/window-manager
|
|
%{_datadir}/anaconda/anaconda-gtk.css
|
|
%{_datadir}/anaconda/gtk-4.0/settings.ini
|
|
|
|
%files tui
|
|
%{python3_sitearch}/pyanaconda/rescue.py
|
|
%{python3_sitearch}/pyanaconda/__pycache__/rescue.*
|
|
%{python3_sitearch}/pyanaconda/ui/tui/*
|
|
|
|
%files widgets
|
|
%{_libdir}/libAnacondaWidgets.so.*
|
|
%{_libdir}/girepository*/AnacondaWidgets*typelib
|
|
%{python3_sitearch}/gi/overrides/*
|
|
|
|
%files widgets-devel
|
|
%{_includedir}/*
|
|
%{_libdir}/libAnacondaWidgets.so
|
|
%if %{with glade}
|
|
%{_libdir}/glade/modules/libAnacondaWidgets.so
|
|
%{_datadir}/glade/catalogs/AnacondaWidgets.xml
|
|
%endif
|
|
%{_datadir}/gtk-doc
|
|
|
|
%files dracut
|
|
%dir %{_prefix}/lib/dracut/modules.d/80%{name}
|
|
%{_prefix}/lib/dracut/modules.d/80%{name}/*
|
|
%{_prefix}/libexec/anaconda/dd_*
|
|
|
|
%changelog
|