File lumina-desktop.spec of Package lumina-desktop
#
# spec file for package lumina-desktop
#
# Copyright (c) 2021 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/
#
Name: lumina-desktop
Version: @SERVICE@
Release: 0
Summary: A lightweight, portable desktop environment
License: BSD-3-Clause
Group: System/GUI/Other
URL: https://github.com/trueos/lumina
Source0: %{name}-%{version}.tar.xz
Source1: %{name}.rpmlintrc
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: kf5-filesystem
BuildRequires: libQt5Gui-private-headers-devel
BuildRequires: libQt5PlatformSupport-private-headers-devel
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: pkgconfig(Qt5Concurrent)
BuildRequires: pkgconfig(Qt5Core) >= 5.10
BuildRequires: pkgconfig(Qt5DBus)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Multimedia)
BuildRequires: pkgconfig(Qt5MultimediaWidgets)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5QuickWidgets)
BuildRequires: pkgconfig(Qt5Svg)
BuildRequires: pkgconfig(Qt5UiTools)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt5X11Extras)
BuildRequires: pkgconfig(hunspell)
#uildRequires: pkgconfig(phonon)
BuildRequires: pkgconfig(phonon4qt5)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xcb-composite)
BuildRequires: pkgconfig(xcb-damage)
BuildRequires: pkgconfig(xcb-ewmh)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xcb-image)
BuildRequires: pkgconfig(xcb-keysyms)
BuildRequires: pkgconfig(xcb-util)
BuildRequires: pkgconfig(xcb-xinput)
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xrender)
Requires: acpi
Requires: alsa-utils
Requires: fluxbox
Requires: lumina-icon-theme
Requires: lumina-search
Requires: lumina-xconfig
Requires: numlockx
Requires: pavucontrol
Requires: sysstat
Requires: xbacklight
Requires: xscreensaver
Recommends: %{name}-lang
Recommends: compton
Recommends: fluxbox-styles-tenr
Recommends: lumina-fileinfo
Recommends: lumina-fm
Recommends: lumina-screenshot
Recommends: material-design-icon-theme
Suggests: lumina-archiver
Suggests: lumina-calculator
Suggests: lumina-mediaplayer
Suggests: lumina-pdf
Suggests: lumina-photo
Suggests: lumina-textedit
%if 0%{?suse_version} >= 1500
Requires(post): update-alternatives
Requires(postun): update-alternatives
%endif
PreReq: permissions
%description
The Lumina Desktop Environment is a lightweight system interface
that is designed for use on any Unix-like operating system.
%lang_package
%package -n lumina-archiver
Summary: Archiver for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
Requires: bsdtar
Requires: tar
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
Recommends: bzip2
Recommends: cpio
Recommends: gzip
Recommends: p7zip
Recommends: rpm
Recommends: sharutils
Recommends: star
Recommends: unar
Recommends: unzip
Recommends: xz
Recommends: zip
%package -n lumina-fileinfo
Summary: Desktop file editor for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
%package -n lumina-fm
Summary: File manager for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
%package -n lumina-mediaplayer
Summary: Media player for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
Requires: pianobar
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
%package -n lumina-photo
Summary: Photo viewer for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
%package -n lumina-screenshot
Summary: Screenshot utility for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
%package -n lumina-search
Summary: Search utility for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
%package -n lumina-textedit
Summary: Text editor for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
Requires(post): desktop-file-utils
Requires(postun): desktop-file-utils
%package -n lumina-xconfig
Summary: X server display configuration tool for Lumina Desktop
License: BSD-3-Clause
Group: System/GUI/Other
Requires: xrandr
%package -n material-design-icon-theme
Summary: New icon themes
License: Apache-2.0
Group: System/GUI/Other
BuildRequires: hicolor-icon-theme
BuildArch: noarch
%package -n lumina-icon-theme
Summary: Lumina icon themes
License: CC-BY-4.0
Group: System/GUI/Other
BuildRequires: hicolor-icon-theme
Recommends: la-capitaine-icon-theme
BuildArch: noarch
%description -n lumina-archiver
This package provides lumina-archiver.
%description -n lumina-fileinfo
This package provides lumina-fileinfo, which is an
advanced desktop file (menu) editor.
%description -n lumina-fm
This package provides lumina-fm, which is a simple file manager
with support for multiple view modes, tabbed browsing,
including an integrated slideshow-based picture viewer.
%description -n lumina-mediaplayer
This package provides lumina-mediaplayer.
%description -n lumina-photo
This package provides lumina-photo.
%description -n lumina-screenshot
This package provides lumina-screenshot, which is a simple
screenshot utility that allows to snapshot the whole desktop
or a single window after a configurable delay.
%description -n lumina-search
This package provides lumina-search, which is a simple
search utility that allows to search for applications or
files and directories in the home directory and launch
or open them.
%description -n lumina-textedit
This package provides lumina-textedit.
%description -n lumina-xconfig
This package provides lumina-xconfig, which is a simple
multi-head aware display configuration tool for configuring
the X server.
%description -n material-design-icon-theme
The "material-design-[light/dark]" themes are collections of ~800 SVG icons
(each) from the Google "material design" application icon theme plus some
of the "Templarian" additions to the material design icon pack.
%description -n lumina-icon-theme
Icons for the Lumina Desktop.
%prep
%setup -q
sed -i '/^OnlyShowIn/s/\(Lumina\)/X-\1/' src-qt5/*/lumina-*/lumina-{config,info,support}.desktop
sed -i '/Categories/d' src-qt5/*/lumina-*/lumina-support.desktop
sed -i 's/\(Icon=\).*/\1accessories-text-editor/' src-qt5/desktop-utils/lumina-textedit/lumina-textedit.desktop
sed -i 's/\(Icon=\).*/\1text-x-generic/' src-qt5/desktop-utils/lumina-fileinfo/lumina-fileinfo.desktop
sed -i 's/\(Icon=\).*/\1package-x-generic/' src-qt5/desktop-utils/lumina-archiver/lumina-archiver.desktop
sed -i '/MimeType=/s/$/;/' src-qt5/desktop-utils/lumina-archiver/lumina-archiver.desktop
sed -i 's/\(Type=\).*/\1XSession/' src-qt5/core/%{name}/Lumina-DE.desktop
sed -i 's/\(Icon=\).*/\1/' src-qt5/desktop-utils/lumina-mediaplayer/lumina-mediaplayer-pandora.desktop
sed -i '/session\.styleFile/s|usr/local|usr|' src-qt5/core/%{name}/fluxboxconf/fluxbox-init-rc
cp src-qt5/core/libLumina/LuminaOS-Debian.cpp src-qt5/core/libLumina/LuminaOS-openSUSE.cpp
sed -i 's|Debian GNU/Linux|openSUSE project|' src-qt5/core/libLumina/LuminaOS-openSUSE.cpp
sed -i 's|synaptic.desktop|YaST2/sw_single.desktop|' src-qt5/core/libLumina/LuminaOS-openSUSE.cpp
sed -i 's/\(-lXcursor\)/-lX11 \1/' src-qt5/core/lumina-theme-engine/src/lthemeengine-qtplugin/lthemeengine-qtplugin.pro
# KeyCode 133 = Super_L (xmodmap -pke)
sed -i '/--show-start/s/115/133/' src-qt5/core/lumina-desktop/fluxboxconf/fluxbox-keys
sed -i 's/\(perms\)/#\1/' src-qt5/core/lumina-checkpass/lumina-checkpass.pro
%build
%qmake5 \
LINUX_DISTRO="openSUSE" \
L_ETCDIR="%{_sysconfdir}" \
L_MANDIR="%{_mandir}" \
QMAKE_CFLAGS_ISYSTEM='' \
QMAKE_CFLAGS+="%{optflags}" \
QMAKE_CXXFLAGS+="%{optflags}" \
PREFIX=%{_prefix} LIBPREFIX=%{_libdir} QT5LIBDIR=%{_libdir}/qt5 CONFIG+=WITH_I18N
%make_jobs
%install
%qmake5_install
%suse_update_desktop_file -r -G "File Manager" lumina-fm FileManager Utility Core Qt
%suse_update_desktop_file -r -G "Search" lumina-search Utility DesktopUtility
%suse_update_desktop_file -r -G "Screenshot" lumina-screenshot Utility DesktopUtility
%suse_update_desktop_file -r -G "Lumina Text Editor" lumina-textedit Utility TextEditor
%suse_update_desktop_file -r -G "Lumina Screen Configuration" lumina-xconfig Settings HardwareSettings
%suse_update_desktop_file -r -G "File Information" lumina-fileinfo System Filesystem
%suse_update_desktop_file -r -G "Lumina Archiver" lumina-archiver Utility Archiving
%suse_update_desktop_file -r -G "Lumina Theme Engine" lthemeengine Qt Settings DesktopSettings
%suse_update_desktop_file -r -G "Lumina Media Player" lumina-mediaplayer AudioVideo Video Player
%suse_update_desktop_file -r -G "Pandora Internet Radio" lumina-mediaplayer-pandora AudioVideo Video Player
%suse_update_desktop_file -r -G "Lumina Image Viewer" lumina-photo Graphics Viewer
%fdupes -s %{buildroot}%{_datadir}/%{name}/i18n
find %{buildroot}%{_datadir}/%{name}/i18n -type l -name "*.qm" -delete -print
for i in config desktop info open; do
%find_lang lumina-$i %{name}.lang --with-qt
done
for i in $(find %{buildroot}%{_datadir}/%{name}/i18n -name '*fm*.qm' -or -name '*search*.qm' -or -name '*xconfig*.qm' | \
xargs basename -a | awk -F\_ '{print $1}' | awk -F\- '{print $2}' | uniq); do
%find_lang lumina-$i lumina-$i.lang --with-qt
done
for i in archiver fileinfo mediap photo screenshot te; do
%find_lang l-$i l-$i.lang --with-qt
done
rm -f %{buildroot}%{_datadir}/icons/material-design-*/LICENSE
rm -f %{buildroot}%{_datadir}/icons/lumina-icons/LICENSE
%fdupes -s %{buildroot}%{_datadir}/icons/material-design-dark
%fdupes -s %{buildroot}%{_datadir}/icons/material-design-light
%fdupes -s %{buildroot}%{_datadir}/icons/lumina-icons
%icon_theme_cache_create_ghost material-design-dark
%icon_theme_cache_create_ghost material-design-light
%icon_theme_cache_create_ghost lumina-icons
%if 0%{?suse_version} >= 1500
# for default-xsession
install -dm 0755 %{buildroot}%{_sysconfdir}/alternatives
touch %{buildroot}%{_sysconfdir}/alternatives/default-xsession.desktop
ln -s %{_sysconfdir}/alternatives/default-xsession.desktop %{buildroot}%{_datadir}/xsessions/default.desktop
%endif
%post
%if 0%{?suse_version} >= 1500
%{_sbindir}/update-alternatives --install %{_datadir}/xsessions/default.desktop \
default-xsession.desktop %{_datadir}/xsessions/Lumina-DE.desktop 25
%endif
%set_permissions %{_sbindir}/lumina-checkpass
%postun
%if 0%{?suse_version} >= 1500
[ -f %{_datadir}/xsessions/Lumina-DE.desktop ] || %{_sbindir}/update-alternatives \
--remove default-xsession.desktop %{_datadir}/xsessions/Lumina-DE.desktop
%endif
#%%verifyscript
#%%verify_permissions -e %%{_sbindir}/lumina-checkpass
%post -n lumina-archiver
%desktop_database_post
%post -n lumina-fm
%desktop_database_post
%post -n lumina-mediaplayer
%desktop_database_post
%post -n lumina-photo
%desktop_database_post
%post -n lumina-textedit
%desktop_database_post
%post -n material-design-icon-theme
%icon_theme_cache_post material-design-dark
%icon_theme_cache_post material-design-light
%post -n lumina-icon-theme
%icon_theme_cache_post lumina-icons
%postun -n lumina-archiver
%desktop_database_postun
%postun -n lumina-fm
%desktop_database_post
%postun -n lumina-mediaplayer
%desktop_database_post
%postun -n lumina-textedit
%desktop_database_post
%files
%license LICENSE
%doc DeveloperGuidelines.txt README.md ROADMAP luminaKeys.txt
%{_bindir}/lthemeengine*
%{_bindir}/lumina-config
%{_bindir}/%{name}
%{_bindir}/lumina-info
%{_bindir}/lumina-open
%{_bindir}/lumina-pingcursor
%{_bindir}/lumina-sudo
%{_bindir}/start-%{name}
#%%verify(not mode) %%attr(4755,root,root) %%{_sbindir}/lumina-checkpass
%config %{_sysconfdir}/luminaDesktop.conf.dist
%{_datadir}/applications/lthemeengine.desktop
%{_datadir}/applications/lumina-config.desktop
%{_datadir}/applications/lumina-info.desktop
%{_datadir}/applications/lumina-support.desktop
%{_datadir}/lthemeengine
%{_datadir}/icons/hicolor/scalable/apps/Lumina-DE.??g
%{_datadir}/xsessions/Lumina-DE.desktop
%if 0%{?suse_version} >= 1500
# for default-xsession
%ghost %{_sysconfdir}/alternatives/default-xsession.desktop
%{_datadir}/xsessions/default.desktop
%endif
%{_datadir}/%{name}
%{_mandir}/man?/lumina-config.?%{ext_man}
%{_mandir}/man?/%{name}.?%{ext_man}
%{_mandir}/man?/lumina-info.?%{ext_man}
%{_mandir}/man?/lumina-open.?%{ext_man}
%{_mandir}/man?/start-%{name}.?%{ext_man}
%dir %{_kf5_libdir}/qt5/plugins/platformthemes/
%{_kf5_libdir}/qt5/plugins/platformthemes/liblthemeengine.so
%dir %{_kf5_libdir}/qt5/plugins/styles/
%{_kf5_libdir}/qt5/plugins/styles/liblthemeengine-style.so
%exclude %{_datadir}/%{name}/i18n
%files lang -f %{name}.lang
%dir %{_datadir}/%{name}/i18n
%files -n lumina-archiver -f l-archiver.lang
%license LICENSE
%{_bindir}/lumina-archiver
%{_datadir}/applications/lumina-archiver.desktop
%{_mandir}/man?/lumina-archiver.?%{ext_man}
%files -n lumina-fileinfo -f l-fileinfo.lang
%license LICENSE
%{_bindir}/lumina-fileinfo
%{_datadir}/applications/lumina-fileinfo.desktop
%{_mandir}/man?/lumina-fileinfo.?%{ext_man}
%files -n lumina-fm -f lumina-fm.lang
%license LICENSE
%{_bindir}/lumina-fm
%{_datadir}/icons/hicolor/scalable/apps/Insight-FileManager.??g
%{_datadir}/applications/lumina-fm.desktop
%{_mandir}/man?/lumina-fm.?%{ext_man}
%files -n lumina-mediaplayer -f l-mediap.lang
%license LICENSE
%{_bindir}/lumina-mediaplayer
%{_datadir}/applications/lumina-mediaplayer*.desktop
%{_mandir}/man?/lumina-mediaplayer.?%{ext_man}
%files -n lumina-photo -f l-photo.lang
%license LICENSE
%{_bindir}/lumina-photo
%{_datadir}/applications/lumina-photo.desktop
%{_mandir}/man?/lumina-photo.?%{ext_man}
%files -n lumina-screenshot -f l-screenshot.lang
%license LICENSE
%{_bindir}/lumina-screenshot
%{_datadir}/applications/lumina-screenshot.desktop
%{_mandir}/man?/lumina-screenshot.?%{ext_man}
%files -n lumina-search -f lumina-search.lang
%license LICENSE
%{_bindir}/lumina-search
%{_datadir}/applications/lumina-search.desktop
%{_mandir}/man?/lumina-search.?%{ext_man}
%files -n lumina-textedit -f l-te.lang
%license LICENSE
%{_bindir}/lumina-textedit
%{_bindir}/lte
%{_datadir}/applications/lumina-textedit.desktop
%{_mandir}/man?/lumina-textedit.?%{ext_man}
%files -n lumina-xconfig
# -f lumina-xconfig.lang
%license LICENSE
%{_bindir}/lumina-xconfig
%{_datadir}/applications/lumina-xconfig.desktop
%{_mandir}/man?/lumina-xconfig.?%{ext_man}
%files -n material-design-icon-theme
%defattr(644,root,root,755)
%license icon-theme/material-design-dark/LICENSE
%{_datadir}/icons/material-design-*
%ghost %{_datadir}/icons/material-design-dark/icon-theme.cache
%ghost %{_datadir}/icons/material-design-light/icon-theme.cache
%files -n lumina-icon-theme
%defattr(644,root,root,755)
%license icon-theme/lumina-icons/LICENSE
%{_datadir}/icons/lumina-icons
%ghost %{_datadir}/icons/lumina-icons/icon-theme.cache
%changelog