Blob Blame History Raw
%global	urlver		3.4
%global	mainver		3.4.1

%global	core_least_ver	3.4.1

%global	use_git	1
%global	gitdate	20210730
%global	githash	f24f7699e69b0e25e5e7674c4841dcefc4e6b61d
%global	shorthash	%(c=%{githash} ; echo ${c:0:7})

%global	tarballver	%{mainver}%{?use_git:-%{gitdate}git%{shorthash}}
%global	mainrel	41


%global	ruby_vendorlib	%(ruby -rrbconfig -e "puts RbConfig::CONFIG['vendorlibdir']")

%global	build_unstable	1

%global	use_webkit2	0
%if 0%{?fedora} >= 26
%global	use_webkit2	1
%endif

%undefine _strict_symbol_defs_build
%if 0%{?fedora} < 31
%undefine __brp_mangle_shebangs
%endif

Name:			cairo-dock-plug-ins
Version:		%{mainver}
Release:		%{mainrel}%{?use_git:.%{gitdate}git%{shorthash}}%{?dist}
Summary:		Plug-ins files for Cairo-Dock

License:		GPLv3+
URL:			http://glx-dock.org/
#Source0:		http://launchpad.net/cairo-dock-plug-ins/%%{urlver}/%%{mainver}/+download/cairo-dock-plugins-%%{mainver}.tar.gz
# Some contents removed: see https://bugzilla.redhat.com/show_bug.cgi?id=1178912
Source0:		cairo-dock-plugins-fedora-%{tarballver}.tar.gz
# Source0 is created from Source1
Source1:		cairo-dock-plug-ins-create-fedora-tarball.sh
# Port to WebKit2
Patch11:		cairo-dock-plugins-3.4.1-port-WebKit2.patch

BuildRequires:  gcc-c++
BuildRequires:	cmake
BuildRequires:	gettext

BuildRequires:	pkgconfig(gldi) = %{core_least_ver}
BuildRequires:	pkgconfig(glib-2.0)
BuildRequires:	pkgconfig(gio-2.0)

# Plug-ins
BuildRequires:	pkgconfig(alsa)
BuildRequires:	pkgconfig(dbusmenu-glib-0.4)
BuildRequires:	pkgconfig(dbusmenu-gtk3-0.4)
BuildRequires:	pkgconfig(fftw3)
BuildRequires:	pkgconfig(gnome-vfs-2.0)
BuildRequires:	pkgconfig(indicator3-0.4)
BuildRequires:	pkgconfig(libexif)
BuildRequires:	pkgconfig(libgnome-menu-3.0)
BuildRequires:	pkgconfig(libgnomeui-2.0)
BuildRequires:	pkgconfig(libical)
BuildRequires:	pkgconfig(libpulse)
BuildRequires:	pkgconfig(libxklavier)
BuildRequires:	pkgconfig(openssl) >= 1.1
# BuildRequires:	pkgconfig(thunar-vfs-1)
BuildRequires:	pkgconfig(upower-glib)
BuildRequires:	pkgconfig(vte-2.91)
BuildRequires:	pkgconfig(webkit2gtk-4.0)
BuildRequires:	pkgconfig(xxf86vm)
BuildRequires:	pkgconfig(zeitgeist-2.0)

BuildRequires:	libetpan-devel
BuildRequires:	lm_sensors-devel

# Bindings
BuildRequires:	python3-devel
BuildRequires:	ruby-devel
BuildRequires:	vala
BuildRequires:	make

Requires:	%{name}-base%{?_isa} = %{version}-%{release}
# Explicitly write below
Requires:	%{name}-dbus%{?_isa} = %{version}-%{release}
# cairo-dock-launcher-API-daemon is written in python,
# so for now make this depending on python
%if 0%{?fedora} < 31
Requires:	cairo-dock-python2 = %{version}-%{release}
%else
Requires:	cairo-dock-python3 = %{version}-%{release}
Obsoletes:	cairo-dock-python2 < 3.4.1-28
%endif
# Require xdg-utils for logout by default
Requires:	xdg-utils

%description
This package is a meta package for Cairo-Dock plugins.

%package	base
Summary:	Base files for Cairo-Dock plugins
Requires:	cairo-dock-core%{?_isa} = %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}

%description	base
This package contains plug-ins files for Cairo-Dock.


%package	common
Summary:	Common files for Cairo-Dock plugins
BuildArch:	noarch

%description	common
This file contains common files for Cairo-Dock plugins.

%package	dbus
Summary:	Plug-ins files for Cairo-Dock related to Dbus
Requires:	cairo-dock-core%{?_isa} >= %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}

%description	dbus
This package contains plug-ins files for Cairo-Dock related
to Dbus.

%package	xfce
Summary:	Plug-ins files for Cairo-Dock related to Xfce
Requires:	cairo-dock-core%{?_isa} >= %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}

%description	xfce
This package contains plug-ins files for Cairo-Dock related
to Xfce.

%package	kde
Summary:	Plug-ins files for Cairo-Dock related to KDE
Requires:	cairo-dock-core%{?_isa} >= %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}

%description	kde
This package contains plug-ins files for Cairo-Dock related
to KDE.

%package	webkit
Summary:	Plug-ins files for Cairo-Dock related to WebKit
Requires:	cairo-dock-core%{?_isa} >= %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}

%description	webkit
This package contains plug-ins files for Cairo-Dock related
to WebKit.

%package	unstable
Summary:	Unstable plug-ins not installed by default
Requires:	cairo-dock-core%{?_isa} >= %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}

%description	unstable
This package contains unstable and experimental
plug-ins not installed by default.

%package	-n cairo-dock-python3
Summary:	Python3 binding for Cairo-Dock
Requires:	cairo-dock-core >= %{core_least_ver}
Requires:	%{name}-dbus = %{version}-%{release}
Requires:	python3-gobject
Requires:	python3-dbus
BuildArch:	noarch

%description	-n cairo-dock-python3
This package contains Python3 binding files for Cairo-Dock

%package	-n cairo-dock-ruby
Summary:	Ruby binding for Cairo-Dock
Requires:	cairo-dock-core >= %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}
Requires:	ruby(release)
Requires:	rubygem(ruby-dbus)
Requires:	rubygem(parseconfig)
BuildArch:	noarch

%description	-n cairo-dock-ruby
This package contains Ruby binding files for Cairo-Dock

%package	-n cairo-dock-vala
Summary:	Vala binding for Cairo-Dock
Requires:	cairo-dock-core%{?_isa} >= %{core_least_ver}
Requires:	%{name}-common = %{version}-%{release}
Requires:	vala

%description	-n cairo-dock-vala
This package contains Vala binding files for Cairo-Dock

%package	-n cairo-dock-vala-devel
Summary:	Development files for Vala binding for Cairo-Dock
Requires:	cairo-dock-vala%{?_isa} = %{version}-%{release}
Requires:	%{name}-dbus%{?isa} = %{version}-%{release}

%description	-n cairo-dock-vala-devel
This package contains development files for Vala
binding for Cairo-Dock.

%prep
%setup -q -n cairo-dock-plugins-%{mainver}%{?use_git:-%{gitdate}git%{shorthash}}
%if 0%{?use_webkit2}
%patch11 -p1 -b .wk2
%endif

## permission
# %%_fixperms cannot fix permissions completely here
for dir in */
do
	find $dir -type f | xargs chmod 0644
done
chmod 0644 [A-Z]* copyright
chmod 0755 */

# cmake issue
sed -i.debuglevel \
	-e '\@add_definitions@s|-O3|-O2|' \
	CMakeLists.txt
sed -i.stat \
	-e 's|\${MSGFMT_EXECUTABLE}|\${MSGFMT_EXECUTABLE} --statistics|' \
	po/CMakeLists.txt

# Compilation flags
sed -i.wall \
	-e 's|-Wno-all||' \
	Dbus/interfaces/vala/src/CMakeLists.txt

## source code fix
## Bindings
# Ruby
sed -i.site \
	-e "s|CONFIG\['rubylibdir'\]|CONFIG['vendorlibdir']|" \
	CMakeLists.txt
# ????
sed -i.installdir \
	-e '\@REGEX REPLACE.*RUBY@d' \
	-e '\@set.*RUBY_LIB_DIR.*CMAKE_INSTALL_PREFIX.*RUBY_LIB_DIR_INSTALL@d' \
	CMakeLists.txt

# Modify version forcely
sed -i CMakeLists.txt -e '\@set (VERSION @s|VERSION.*|VERSION "%{version}")|'

# Kill python2 explicitly
sed -i.py2 CMakeLists.txt -e 's|python2)|python2-nono)|'
# ... and explicitly use python3
env LANG=C grep -rl /usr/bin/env . | \
	xargs sed -i -e 's|/usr/bin/env[ \t]*python$|/usr/bin/python3|'

# Quick-and-dirty workaround for libetpan 1.9.4 change using pkgconfig
mkdir TMPBINDIR
cat > TMPBINDIR/libetpan-config <<EOF
#!/usr/bin/bash

exec pkg-config \$@ libetpan
EOF
chmod 0755 TMPBINDIR/libetpan-config

%build
export PATH=${PATH}:$(pwd)/TMPBINDIR

rm -f CMakeCache.txt
%cmake -B. \
%if 0%{?build_unstable} >= 1
	-Denable-disks=TRUE \
	-Denable-doncky=TRUE \
	-Denable-global-menu=TRUE \
	-Denable-network-monitor=TRUE \
%if 0
	-Denable-scooby-do=TRUE \
%endif
%endif
	.

make %{?_smp_mflags}

%install
%make_install \
	INSTALL="install -p"

# Collect documents
rm -rf documents licenses documents-dbus
mkdir documents licenses documents-dbus
cp -a \
	ChangeLog \
	documents
mkdir documents-dbus/Dbus
cp -a Dbus/demos \
	documents-dbus/Dbus/
cp -a \
	LGPL-2 \
	LICENSE \
	copyright \
	licenses/

# Just to suppress rpmlint...
pushd $RPM_BUILD_ROOT

for f in \
	`find . -name \*.conf`
do
	sed -i -e '1i\ ' $f
done

set +x
for f in \
	.%{_datadir}/cairo-dock/plug-ins/*/* \
	$(find . -name \*.rb)
do
	if head -n 1 $f 2>/dev/null | grep -q /bin/ ; then 
		set -x
		chmod 0755 $f
		set +x
	fi
done

# Modify CDApplet.h not to contain %%buildroot strings
sed -i .%{_datadir}/cairo-dock/plug-ins/Dbus/CDApplet.h \
	-e '\@def@s|__.*\(DBUS_INTERFACES_VALA_SRC_CDAPPLET_H__\)|__\1|'

popd

%find_lang cairo-dock-plugins

%ldconfig_scriptlets -n cairo-dock-vala

%files	common
%license	licenses/*

%files
# This is a metapackage

%files	base -f cairo-dock-plugins.lang
%doc	documents/*

%{_libdir}/cairo-dock/*
%{_datadir}/cairo-dock/plug-ins/*
%{_datadir}/cairo-dock/gauges/*/

%exclude	%{_libdir}/cairo-dock/*weblet*
%exclude	%{_libdir}/cairo-dock/*xfce*
%exclude	%{_libdir}/cairo-dock/*kde*
%exclude	%{_libdir}/cairo-dock/*Dbus*
%exclude	%{_datadir}/cairo-dock/plug-ins/*weblet*
%exclude	%{_datadir}/cairo-dock/plug-ins/*xfce*
%exclude	%{_datadir}/cairo-dock/plug-ins/*kde*
%exclude	%{_datadir}/cairo-dock/plug-ins/Dbus/
%if 0%{?build_unstable} >= 1
%exclude	%{_libdir}/cairo-dock/appmenu-registrar
%exclude	%{_libdir}/cairo-dock/libcd-Global-Menu.so
%exclude	%{_libdir}/cairo-dock/libcd-disks.so
%exclude	%{_libdir}/cairo-dock/libcd-doncky.so
%exclude	%{_libdir}/cairo-dock/libcd-network-monitor.so
#%%exclude	%%{_libdir}/cairo-dock/libcd-scooby-do.so
%exclude	%{_datadir}/cairo-dock/plug-ins/Disks/
%exclude	%{_datadir}/cairo-dock/plug-ins/Doncky/
%exclude	%{_datadir}/cairo-dock/plug-ins/Global-Menu/
%exclude	%{_datadir}/cairo-dock/plug-ins/Network-Monitor/
#%%exclude	%%{_datadir}/cairo-dock/plug-ins/Scooby-Do/
%endif
# Vala
%exclude	%{_datadir}/cairo-dock/plug-ins/Dbus/CDApplet.h

%if 0%{?build_unstable} >= 1
%files	unstable
%{_libdir}/cairo-dock/appmenu-registrar
%{_libdir}/cairo-dock/libcd-Global-Menu.so
%{_libdir}/cairo-dock/libcd-disks.so
%{_libdir}/cairo-dock/libcd-doncky.so
%{_libdir}/cairo-dock/libcd-network-monitor.so
#%%{_libdir}/cairo-dock/libcd-scooby-do.so
%{_datadir}/cairo-dock/plug-ins/Disks/
%{_datadir}/cairo-dock/plug-ins/Doncky/
%{_datadir}/cairo-dock/plug-ins/Global-Menu/
%{_datadir}/cairo-dock/plug-ins/Network-Monitor/
#%%{_datadir}/cairo-dock/plug-ins/Scooby-Do/
%endif

%files	dbus
%doc	documents-dbus/*
%{_libdir}/cairo-dock/*Dbus*
%{_datadir}/cairo-dock/plug-ins/Dbus/
# The following is for cairo-dock-vala-devel
%exclude	%{_datadir}/cairo-dock/plug-ins/Dbus/CDApplet.h

%files	xfce
%{_libdir}/cairo-dock/*xfce*
%{_datadir}/cairo-dock/plug-ins/*xfce*

%files	kde
%{_libdir}/cairo-dock/*kde*
%{_datadir}/cairo-dock/plug-ins/*kde*

%files	webkit
%{_libdir}/cairo-dock/*weblet*
%{_datadir}/cairo-dock/plug-ins/*weblet*

%files	-n cairo-dock-python3
%{python3_sitelib}/CairoDock.py*
%{python3_sitelib}/CDApplet.py*
%{python3_sitelib}/CDBashApplet.py*
%{python3_sitelib}/*.egg-info
%{python3_sitelib}/__pycache__/

%files	-n cairo-dock-ruby
%{ruby_vendorlib}/CDApplet.rb

%files -n cairo-dock-vala
%{_libdir}/libCDApplet.so.1*
%{_datadir}/vala/vapi/CDApplet.*

%files -n cairo-dock-vala-devel
%{_libdir}/libCDApplet.so
%{_libdir}/pkgconfig/CDApplet.pc
%{_datadir}/cairo-dock/plug-ins/Dbus/CDApplet.h

%changelog
* Tue Aug 10 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-41.20210730gitf24f769
- Update to the latest git

* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-40.20210125gitcad0a29.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 3.4.1-40.20210125gitcad0a29.1
- Rebuilt for Python 3.10

* Sat Jan 30 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-40.20210125gitcad0a29
- Update to the latest git

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-39.20210103git8554994.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Thu Jan  7 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-39.20210103git8554994
- Update to the latest git

* Sun Jan  3 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-38.20201022gita0d3415
- Update to the latest git

* Fri Aug  7 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-37
- Minor fix for cmake build issue https://fedoraproject.org/wiki/Changes/CMake_to_do_out-of-source_builds

* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-37
- Second attempt - Rebuilt for
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-36
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-35
- Rebuilt for Python 3.9

* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-34
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Jan 23 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-33
- Fix for gcc10 -fno-common

* Thu Nov 28 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-32
- Use newer zeitgeist

* Thu Nov 28 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-31
- Quick-and-dirty workaround for libetpan 1.9.4 change using pkgconfig

* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-30
- Rebuilt for Python 3.8.0rc1 (#1748018)

* Tue Aug 20 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-29
- F-31+: disable python2 binding, use python3 explicitly

* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-27
- Rebuilt for Python 3.8

* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Mon Feb 04 2019 Kalev Lember <klember@redhat.com> - 3.4.1-25
- Require python2/python3-gobject instead of pygobject2 and pygobject3

* Fri Feb  1 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-24
- Fix for recent cmake change

* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-22
- Rebuilt for Python 3.7

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Tue Jan 23 2018 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-20
- Remove -z defs for plugins usage

* Fri Dec 15 2017 Iryna Shcherbina <ishcherb@redhat.com> - 3.4.1-19
- Update Python 2 dependency declarations to new packaging standards
  (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)

* Wed Nov 22 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-18
- F-28: use vte-2.91 instead of vte-2.90

* Tue Nov 14 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-17
- F-28: rebuild for new libical

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Sat Apr  1 2017 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-14
- Fix FTBFS with related to -Wno-all -Werror=format-security
- F-26+: switch to use webkitgtk4

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 3.4.1-12
- Rebuild for Python 3.6

* Sun Dec 11 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-11
- Workaround for time.h related conflict with 2.25 glibc

* Sat Dec 10 2016 Andreas Bierfert <andreas.bierfert@lowlatency.de> - 3.4.1-10
- rebuild for libetpan 1.7.2 soname change
- fix changelog dates

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.1-9
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Wed Feb 24 2016 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-8
- Pull in upstream patch to update URL on weather plugin

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Mon Jan 18 2016 David Tardon <dtardon@redhat.com> - 3.4.1-6
- rebuild for libical 2.0.0

* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.1-5
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Wed Mar 25 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-3
- Require xdg-utils by default for logout

* Wed Mar 25 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-2
- Default to xdg-screensaver for lock_screen
- Restrict the dependency for core package

* Fri Mar 13 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.1-1
- 3.4.1
- demo_ruby: fix traceback when changing themes

* Sat Feb 28 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.0-14
- Bump release

* Wed Feb 25 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.0-13
- Cosmetic changes

* Wed Feb 11 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.0-12
- Split out Dbus subpackage, modify internal dependency
- Make some packages noarch

* Fri Jan 23 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.0-11
- Another may-be-problematic contents removed (bug 1178912)
- Make sure that licenses files are always installed

* Thu Jan 22 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.0-10
- Some may-be-problematic contents removed (bug 1178912)

* Fri Jan 02 2015 Mamoru TASAKA <mtasaka@fedoraproject.org> - 3.4.0-9
- Initial package