Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
217 changes: 215 additions & 2 deletions ultramarine/release/ultramarine-release.spec
Original file line number Diff line number Diff line change
Expand Up @@ -19,26 +19,45 @@
%define doc_version f%{dist_version}
%endif

## Basic ##

%bcond_without basic

## Editions ##

%bcond_without budgie
%bcond_without plasma
%bcond_without gnome
%bcond_without xfce

## Atomic Editions ##

%bcond_without atomic_budgie
%bcond_without atomic_plasma
%bcond_without atomic_gnome
%bcond_without atomic_xfce

## Anywhere ##

%bcond_without chromebook
%bcond_without raspberry_pi
%bcond_without wsl
%bcond_without container
# No aarch64 Surface images
%ifarch x86_64
%bcond_without surface
%else
%bcond_with surface
%endif

%if %{with budgie} || %{with plasma} || %{with gnome} || %{with xfce} || %{with atomic_budgie} || %{with atomic_plasma} || %{with atomic_gnome} || %{with atomic_xfce}
## Shades ##

%bcond_without shades-nothing
%bcond_without shades-sway
%bcond_without shades-niri
%bcond_without shades-cinnamon

%if %{with budgie} || %{with plasma} || %{with gnome} || %{with xfce} || %{with atomic_budgie} || %{with atomic_plasma} || %{with atomic_gnome} || %{with atomic_xfce} || %{with shades-nothing} || %{with shades-sway} || %{with shades-niri} || %{with shades-cinnamon}
%global with_desktop 1
%endif

Expand Down Expand Up @@ -141,7 +160,7 @@ Requires: ultramarine-release-variant = %{version}
Requires: ultramarine-repos(%{version})
Requires: ultramarine-release-identity = %{version}-%{release}
Recommends: fastfetch
Recommends: golang-github-ultramarine-linux-um
Recommends: umcli
Recommends: ultramarine-release-identity-basic
Conflicts: generic-release
Conflicts: fedora-release
Expand Down Expand Up @@ -612,6 +631,125 @@ Provides the necessary files for an Ultramarine installation that is identifying
itself as the Ultramarine Container Base Image.
%endif

######################################################################
#### Shades
######################################################################

####### Generic (Basic) #######

######################################################################
####### Nothing #######

%if %{with nothing}

%package nothing
Summary: Base package for Ultramarine nothing-specific default configurations
# I don't think we need this?
%dnl RemovePathPostfixes: .nothing
Provides: ultramarine-release = %{version}-%{release}
Provides: ultramarine-release-nothing = %{version}-%{release}
Provides: ultramarine-release-variant = %{version}-%{release}
Provides: system-release
Provides: system-release(%{version})
Provides: base-module(platform:f%{version})
Requires: ultramarine-release-common = %{version}-%{release}
Requires: ultramarine-release-desktop = %{version}-%{release}
Provides: system-release-product
# ultramarine-release-common Requires: ultramarine-release-identity, so at least one
# package must provide it. This Recommends: pulls in
# ultramarine-release-identity-cinnamon if nothing else is already doing so.
Recommends: ultramarine-release-identity-nothing
# pull in slick greeter for people upgrading
%dnl Recommends: slick-greeter

%description nothing
Provides a base package for Ultramarine Nothing Shade configurations.
%endif

######################################################################
####### Sway #######

%if %{with sway}

%package sway
Summary: Base package for Ultramarine sway-specific default configurations
RemovePathPostfixes: .sway
Provides: ultramarine-release = %{version}-%{release}
Provides: ultramarine-release-sway = %{version}-%{release}
Provides: ultramarine-release-variant = %{version}-%{release}
Provides: system-release
Provides: system-release(%{version})
Provides: base-module(platform:f%{version})
Requires: ultramarine-release-common = %{version}-%{release}
Requires: ultramarine-release-desktop = %{version}-%{release}
Provides: system-release-product
# ultramarine-release-common Requires: ultramarine-release-identity, so at least one
# package must provide it. This Recommends: pulls in
# ultramarine-release-identity-cinnamon if nothing else is already doing so.
Recommends: ultramarine-release-identity-sway
# pull in slick greeter for people upgrading
Recommends: slick-greeter

%description sway
Provides a base package for Ultramarine Sway Shade configurations.
%endif

######################################################################
####### Niri #######

%if %{with niri}

%package niri
Summary: Base package for Ultramarine Niri-specific default configurations
RemovePathPostfixes: .niri
Provides: ultramarine-release = %{version}-%{release}
Provides: ultramarine-release-niri = %{version}-%{release}
Provides: ultramarine-release-variant = %{version}-%{release}
Provides: system-release
Provides: system-release(%{version})
Provides: base-module(platform:f%{version})
Requires: ultramarine-release-common = %{version}-%{release}
Requires: ultramarine-release-desktop = %{version}-%{release}
Provides: system-release-product
# ultramarine-release-common Requires: ultramarine-release-identity, so at least one
# package must provide it. This Recommends: pulls in
# ultramarine-release-identity-cinnamon if nothing else is already doing so.
Recommends: ultramarine-release-identity-niri
# pull in slick greeter for people upgrading
Recommends: slick-greeter

%description niri
Provides a base package for Ultramarine Niri configurations.
%endif

######################################################################
####### Cinnamon #######

%if %{with Cinnamon}

%package cinnamon
Summary: Base package for Ultramarine cinnamon-specific default configurations
RemovePathPostfixes: .cinnamon
Provides: ultramarine-release = %{version}-%{release}
Provides: ultramarine-release-cinnamon = %{version}-%{release}
Provides: ultramarine-release-variant = %{version}-%{release}
Provides: system-release
Provides: system-release(%{version})
Provides: base-module(platform:f%{version})
Requires: ultramarine-release-common = %{version}-%{release}
Requires: ultramarine-release-desktop = %{version}-%{release}
Provides: system-release-product
# ultramarine-release-common Requires: ultramarine-release-identity, so at least one
# package must provide it. This Recommends: pulls in
# ultramarine-release-identity-cinnamon if nothing else is already doing so.
Recommends: ultramarine-release-identity-cinnamon
# pull in slick greeter for people upgrading
Recommends: slick-greeter

%description cinnamon
Provides a base package for Ultramarine Cinnamon Shade configurations.
%endif

######################################################################
#### Accessory packages
######################################################################
Expand Down Expand Up @@ -914,6 +1052,48 @@ VERSION_CODENAME="%fedora_codename"
PRETTY_NAME="Fedora Linux %dist_version (%fedora_codename)"
EOF

## Shades ##

%if %{with nothing}
# Nothing
cp -p os-release \
%{buildroot}%{_prefix}/lib/os-release.nothing
echo "VARIANT=\"Nothing Shade\"" >> %{buildroot}%{_prefix}/lib/os-release.nothing
echo "VARIANT_ID=nothing" >> %{buildroot}%{_prefix}/lib/os-release.nothing
sed -i -e "s|(%{release_name}%{?prerelease})|(Nothing Shade%{?prerelease})|g" %{buildroot}%{_prefix}/lib/os-release.nothing
sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/nothing/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.nothing
%endif

%if %{with sway}
# Sway
cp -p os-release \
%{buildroot}%{_prefix}/lib/os-release.sway
echo "VARIANT=\"Sway Shade\"" >> %{buildroot}%{_prefix}/lib/os-release.sway
echo "VARIANT_ID=sway" >> %{buildroot}%{_prefix}/lib/os-release.sway
sed -i -e "s|(%{release_name}%{?prerelease})|(Sway Shade%{?prerelease})|g" %{buildroot}%{_prefix}/lib/os-release.sway
sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/sway/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.sway
%endif

%if %{with niri}
# Niri
cp -p os-release \
%{buildroot}%{_prefix}/lib/os-release.niri
echo "VARIANT=\"Niri Shade\"" >> %{buildroot}%{_prefix}/lib/os-release.niri
echo "VARIANT_ID=niri" >> %{buildroot}%{_prefix}/lib/os-release.niri
sed -i -e "s|(%{release_name}%{?prerelease})|(Niri Shade%{?prerelease})|g" %{buildroot}%{_prefix}/lib/os-release.niri
sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/niri/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.niri
%endif

%if %{with cinnamon}
# Cinnamon
cp -p os-release \
%{buildroot}%{_prefix}/lib/os-release.cinnamon
echo "VARIANT=\"Cinnamon Shade\"" >> %{buildroot}%{_prefix}/lib/os-release.cinnamon
echo "VARIANT_ID=cinnamon" >> %{buildroot}%{_prefix}/lib/os-release.cinnamon
sed -i -e "s|(%{release_name}%{?prerelease})|(Cinnamon Shade%{?prerelease})|g" %{buildroot}%{_prefix}/lib/os-release.cinnamon
sed -e "s#\$version#%{bug_version}#g" -e 's/$edition/cinnamon/;s/<!--.*-->//;/^$/d' %{SOURCE20} > %{buildroot}%{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.cinnamon
%endif

##########################

# Create custom Anaconda config
Expand Down Expand Up @@ -1224,6 +1404,39 @@ ln -sf firewalld-workstation.conf %{_sysconfdir}/firewalld/firewalld.conf
%{_prefix}/lib/systemd/system-preset/81-desktop.preset
%endif

## Shades ##

%if %{with nothing}
%files nothing
%files identity-nothing
%{_prefix}/lib/os-release.nothing
%attr(0644,root,root) %{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.nothing
%endif

%if %{with sway}
%files sway
%files identity-sway
%{_prefix}/lib/os-release.sway
%attr(0644,root,root) %{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.sway
%endif

%if %{with niri}
%files niri
%files identity-niri
%{_prefix}/lib/os-release.niri
%attr(0644,root,root) %{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.niri
%endif

%if %{with cinnamon}
%files cinnamon
%files identity-cinnamon
%{_prefix}/lib/os-release.cinnamon
%attr(0644,root,root) %{_swidtagdir}/org.ultramarinelinux.Ultramarine-edition.swidtag.cinnamon

%endif

########

%if %{with chromebook}
%files chromebook
%{_prefix}/lib/systemd/system-preset/88-ultramarine-chromebook-default.preset
Expand Down