Blob Blame History Raw
%global srcname       lumina
%global srcurl        https://github.com/trueos/%{srcname}
%global relsuffix     -p2

%global srcdirname    %{version}-Release%{?relsuffix}

# get latest translations with fixes from git
%global localecommit0 bc08e907119117ba4dbe79caa240a007ef0d3472

%global localehash    %(c=%{localecommit0}; echo ${c:0:7} )
%global localedir     %{srcname}-i18n-%{localecommit0}

Summary:              A lightweight, portable desktop environment
Name:                 %{srcname}-desktop
Version:              1.0.0
Release:              5%(r=%{?relsuffix}; echo $r |tr - . ).L%{localehash}%{?dist}
License:              BSD
URL:                  http://%{name}.org

# Main source
Source0:              %{srcurl}/archive/v%{srcdirname}/%{srcdirname}.tar.gz
# Translations
Source1:              %{srcurl}-i18n/archive/%{localecommit0}/%{localedir}.tar.gz

# Compiler requirements
BuildRequires:        gcc-c++

# Qt requirements
BuildRequires:        qt5-qttools-devel
BuildRequires:        qt5-qtbase-devel
BuildRequires:        qt5-qtmultimedia-devel
BuildRequires:        qt5-qtdeclarative-devel
BuildRequires:        qt5-qtsvg-devel
BuildRequires:        qt5-qtx11extras-devel

# X component requirements
BuildRequires:        xcb-util-image-devel
BuildRequires:        xcb-util-wm-devel
BuildRequires:        libxcb-devel
BuildRequires:        xcb-util-devel
BuildRequires:        libXcomposite-devel
BuildRequires:        libXdamage-devel
BuildRequires:        libXrender-devel

BuildRequires:        desktop-file-utils

# Runtime requirements
Requires:             oxygen-cursor-themes
Requires:             qt5-style-oxygen%{?_isa}
Requires:             fluxbox%{?_isa}

# Enforce the library subpackage version requirement
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}
Requires:             %{name}-data = %{version}-%{release}

# Desktop extensions
%if 0%{?fedora}
Suggests:             %{srcname}-wallpapers = %{version}-%{release}
Suggests:             %{srcname}-open%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-config%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-fm%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-screenshot%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-search%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-info%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-xconfig%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-fileinfo%{?_isa} = %{version}-%{release}
Suggests:             %{srcname}-textedit%{?_isa} = %{version}-%{release}
%endif

%description
The Lumina Desktop Environment is a lightweight system interface
that is designed for use on any Unix-like operating system.

%package data
Summary:              Data for Lumina Desktop
BuildArch:            noarch
Requires:             %{name} = %{version}-%{release}

%description data
This package provides the data files for the Lumina Desktop
Environment: Colors, desktop background, theme templates.

%package libs
Summary:              Libraries for Lumina Desktop

%description libs
This package provides the libraries for the Lumina Desktop
Environment.

%package devel
Summary:              Development libraries for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description devel
This package provides the files needed to develop plugins
or extensions for the Lumina Desktop Environment, or
to develop applications that use Lumina Desktop libraries.

%package wallpapers
Summary:              Wallpapers for Lumina Desktop
BuildArch:            noarch
Requires:             kde-filesystem

%description wallpapers
Optional wallpapers recommended for Lumina Desktop.

%package -n %{srcname}-open
Summary:              xdg-open style utility for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-open
This package provides %{srcname}-open, which handles opening of
files and URLs according to the system-wide mimetype association.
It also provides an optional selector if more than one application
is assigned with the given url or file type.

%package -n %{srcname}-config
Summary:              Configuration utility for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-config
This package provides %{srcname}-config, which allows changing
various aspects of %{srcname} and fluxbox, like the wallpaper being
used, theme, icons, panel (and plugins), startup and default
applications, desktop menu and more.

%package -n %{srcname}-fm
Summary:              File manager for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-fm
This package provides %{srcname}-fm, which is a simple file manager
with support for multiple view modes, tabbed browsing,
including an integrated slideshow-based picture viewer.


%package -n %{srcname}-screenshot
Summary:              Screenshot utility for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-screenshot
This package provides %{srcname}-screenshot, which is a simple
screenshot utility that allows to snapshot the whole desktop
or a single window after a configurable delay.

Optionally the window border can be hidden when taking a
screenshot of a single window.


%package -n %{srcname}-search
Summary:              Search utility for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-search
This package provides %{srcname}-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.


%package -n %{srcname}-info
Summary:              Basic information utility for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-info
This package provides %{srcname}-info, which is a simple
utility that displays various information about the Lumina
installation, like paths, contributors, license or version.


%package -n %{srcname}-xconfig
Summary:              X server display configuration tool for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-xconfig
This package provides %{srcname}-xconfig, which is a simple
multi-head aware display configuration tool for configuring
the X server.


%package -n %{srcname}-fileinfo
Summary:              Desktop file editor for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-fileinfo
This package provides %{srcname}-fileinfo, which is an
advanced desktop file (menu) editor.


%package -n %{srcname}-textedit
Summary:              Text file editor for Lumina Desktop
Requires:             %{name}-libs%{?_isa} = %{version}-%{release}

%description -n %{srcname}-textedit
This package provides %{srcname}-textedit, which is an
text file editor.

########################################################################################
%prep
%autosetup -n%{srcname}-%{version}-Release%{?relsuffix}
# translations
tar xf %{SOURCE1}
# issues/2, ts/hi/lumina-fileinfo.ts does not parse
# commit/a96928d68364529cce670e4f64d9f988d5cc1a8c
sed -i -r -e 's:<TS.*>:\0\n<context>:' -e 's:</TS>:\n</context>\n\0:'\
 %{localedir}/ts/hi/lumina-fileinfo.ts
# bug with make -C
sed -i -r -e '/cp defaults\//d' -e 's:(INSTALLS.*)defaults:\1:' \
 src-qt5/core/%{srcname}-desktop/*.pro


%build
mkdir -p %{_target_platform}
pushd %{_target_platform}
%qmake_qt5 ../*.pro \
 CONFIG+=configure \
 LIBPREFIX="%{_libdir}" \
 L_BINDIR="%{_bindir}" \
 L_LIBDIR=%{_libdir} \
 L_SHAREDIR=%{_datadir} \
 L_ETCDIR=%{_sysconfdir} \
 L_INCLUDEDIR=%{_includedir} \
 QT5LIBDIR="%{_qt5_prefix}" \
 QMAKE_LFLAGS+="-Wl,--as-needed"
popd
%make_build -C %{_target_platform}
# see https://github.com/trueos/lumina-i18n/blob/master/scripts/mkrelease.sh
mkdir qm
for i in $(find %{localedir} -name \*.ts)
do
   NLANG=$(dirname $i |xargs basename)
   QMNAME=$(basename $i .ts)_$NLANG.qm
   lrelease-qt5 $i -qm qm/$QMNAME
done


%install
# Install the desktop
%if 0%{?rhel}
install -d %{buildroot}%{_sysconfdir}
%endif
%make_install -C %{_target_platform} INSTALL_ROOT=%{buildroot}
install -d %{buildroot}%{_datadir}/%{name}/i18n
install -m0644 -D -t %{buildroot}%{_datadir}/%{name}/i18n qm/*.qm

# split locales into subpackages
%find_lang %{name} --with-qt
%find_lang %{srcname}-open --with-qt
%find_lang %{srcname}-config --with-qt
%find_lang %{srcname}-fm --with-qt
%find_lang %{srcname}-screenshot --with-qt
%find_lang %{srcname}-search --with-qt
%find_lang %{srcname}-info --with-qt
%find_lang %{srcname}-xconfig --with-qt
%find_lang %{srcname}-fileinfo --with-qt
%find_lang %{srcname}-textedit --with-qt

# Move config folder to correct location
install -m0644 -D src-qt5/core/%{name}/defaults/%{srcname}Desktop.conf \
 -t %{buildroot}%{_sysconfdir}
# Other missing files in cmake installation
install -m0644 -D src-qt5/core/%{name}/defaults/desktop-background.jpg \
 -t %{buildroot}%{_datadir}/%{name}

# Fix paths in desktop files
find %{buildroot}%{_datadir}/applications -name *.desktop -print -exec \
 desktop-file-edit --remove-only-show-in=Lumina --add-only-show-in=X-Lumina '{}' \;
desktop-file-edit --remove-key=Categories \
 %{buildroot}%{_datadir}/applications/%{srcname}-support.desktop

%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{srcname}-*.desktop

########################################################################################
%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%post -n %{srcname}-fm
/usr/bin/update-desktop-database &> /dev/null || :

%postun -n %{srcname}-fm
/usr/bin/update-desktop-database &> /dev/null || :

%post -n %{srcname}-textedit
/usr/bin/update-desktop-database &> /dev/null || :

%postun -n %{srcname}-textedit
/usr/bin/update-desktop-database &> /dev/null || :

########################################################################################
%files -f %{name}.lang
%{_bindir}/%{name}
%{_bindir}/start-%{name}
%config(noreplace) %{_sysconfdir}/%{srcname}Desktop.conf
%{_datadir}/pixmaps/Lumina-DE.png
%{_datadir}/xsessions/Lumina-DE.desktop
%{_datadir}/applications/%{srcname}-support.desktop

%files data
%{_datadir}/%{name}/
%exclude %{_datadir}/%{name}/i18n

%files libs
%license LICENSE
%{_libdir}/libLuminaUtils.so.*
# each binary expects its locale files in the common folder
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/i18n

%files devel
%license LICENSE
%{_libdir}/libLuminaUtils.so
%{_includedir}/Lumina*.h

%files wallpapers
%license LICENSE
%{_datadir}/wallpapers/Lumina-DE/

%files -n %{srcname}-open -f %{srcname}-open.lang
%{_bindir}/%{srcname}-open

%files -n %{srcname}-config -f %{srcname}-config.lang
%{_bindir}/%{srcname}-config
%{_datadir}/applications/%{srcname}-config.desktop

%files -n %{srcname}-fm -f %{srcname}-fm.lang
%{_bindir}/%{srcname}-fm
%{_datadir}/pixmaps/Insight-FileManager.png
%{_datadir}/applications/%{srcname}-fm.desktop

%files -n %{srcname}-screenshot -f %{srcname}-screenshot.lang
%{_bindir}/%{srcname}-screenshot
%{_datadir}/applications/%{srcname}-screenshot.desktop

%files -n %{srcname}-search -f %{srcname}-search.lang
%{_bindir}/%{srcname}-search
%{_datadir}/applications/%{srcname}-search.desktop

%files -n %{srcname}-info -f %{srcname}-info.lang
%license src-qt5/core/%{srcname}-info/LICENSE
%{_bindir}/%{srcname}-info
%{_datadir}/applications/%{srcname}-info.desktop

%files -n %{srcname}-xconfig -f %{srcname}-xconfig.lang
%{_bindir}/%{srcname}-xconfig
%{_datadir}/applications/%{srcname}-xconfig.desktop

%files -n %{srcname}-fileinfo -f %{srcname}-fileinfo.lang
%{_bindir}/%{srcname}-fileinfo
%{_datadir}/applications/%{srcname}-fileinfo.desktop

%files -n %{srcname}-textedit -f %{srcname}-textedit.lang
# W: dangling-symlink /usr/bin/lte /usr/bin/lumina-textedit
%exclude %{_bindir}/lte
%{_bindir}/%{srcname}-textedit
%{_datadir}/applications/%{srcname}-textedit.desktop

########################################################################################
%changelog
* Mon Sep 26 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-5.p2.Lbc08e90
- fix typo

* Sun Sep 25 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-4.p2.Lbc08e90
- thin out dependencies, no assumptions about used applications

* Sat Sep 24 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-3.p2.Lbc08e90
- drop ExcludeArch
- try to fix unused-direct-shlib-dependency

* Sat Aug 27 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-2.p2.Lbc08e90
- update to patchset 2
- fix E: script-without-shebang
- [epel] fix creation of folder etc

* Sun Aug 14 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-1.p1.Lbc08e90
- use official upstream release
- clean up build deps
- update translations from git
- drop langpacks and include in binary subpackages
- disable weak dependencies for epel

* Sun Aug 07 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-0.3.Beta4.Tfbab63e
- Beta4

* Sun Aug 07 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-0.2.Beta2.Tfbab63e
- avoid dangling-symlink /usr/bin/lte
- drop implicit BR: gcc
- drop Group tags
- compile translations and split into individual langpacks

* Fri Jul 15 2016 Raphael Groner <projects.rg@smart.ms> - 1.0.0-0.1.Beta2
- version 1.0.0 Beta2
- prepare for review
- split more subpackages: i18n, wallpapers

* Wed Dec 23 2015 Neal Gompa <ngompa13@gmail.com>
- Update to 0.8.8
- Bring it closer to Fedora guidelines
- Break out Lumina Desktop package into subpackages
- Unify 32-bit and 64-bit packaging

* Tue Oct 27 2015 Jesse Smith <jsmith@resonatingmedia.com>
- Update to 0.8.7

* Thu Aug 20 2015 Jesse Smith <jsmith@resonatingmedia.com>
- Updated for 32-bit

* Thu Jul 30 2015 Jesse Smith <jsmith@resonatingmedia.com>
- Initial build