Blob Blame History Raw
%global _hardened_build 1

Name:		efl
Version:	1.13.2
Release:	1%{?dist}
Summary:	Collection of Enlightenment libraries
License:	BSD and LGPLv2+ and GPLv2 and zlib
URL:		http://enlightenment.org/
Source0:	http://download.enlightenment.org/rel/libs/efl/efl-%{version}.tar.xz
# I think this one is Fedora specific.
Patch0:		efl-1.11.4-tslibfix.patch
# https://phab.enlightenment.org/T2158
Patch1:		efl-1.13.1-drm-fixes.patch
# https://phab.enlightenment.org/T2157
Patch2:		efl-1.13.1-fsf-address-fix.patch
BuildRequires:	bullet-devel libpng-devel libjpeg-devel gstreamer1-devel zlib-devel
BuildRequires:	gstreamer1-plugins-base-devel luajit-devel libtiff-devel openssl-devel
BuildRequires:	curl-devel dbus-devel glibc-devel fontconfig-devel freetype-devel
BuildRequires:	fribidi-devel pulseaudio-libs-devel libsndfile-devel libX11-devel
BuildRequires:	libXau-devel libXcomposite-devel libXdamage-devel libXdmcp-devel
BuildRequires:	libXext-devel libXfixes-devel libXinerama-devel libXrandr-devel
BuildRequires:	libXrender-devel libXScrnSaver-devel libXtst-devel libXcursor-devel
BuildRequires:	libXp-devel libXi-devel mesa-libGL-devel mesa-libEGL-devel
BuildRequires:	libblkid-devel libmount-devel systemd-devel harfbuzz-devel 
BuildRequires:	libwebp-devel scim-devel tslib-devel SDL2-devel SDL-devel c-ares-devel
BuildRequires:	doxygen, systemd, libwayland-client-devel giflib-devel
BuildRequires:	mesa-libwayland-egl-devel, openjpeg-devel, libdrm-devel
BuildRequires:	autoconf, automake, libtool, gettext-devel, mesa-libGLES-devel
BuildRequires:	mesa-libgbm-devel, libinput-devel
# These are convenience provides to aid in migration
Provides:	e_dbus%{?_isa} = %{version}-%{release}
Provides:	e_dbus = %{version}-%{release}
Obsoletes:	e_dbus <= 1.7.10
Provides:	ecore = %{version}-%{release}
Provides:	ecore%{?_isa} = %{version}-%{release}
Obsoletes:	ecore <= 1.7.10
Provides:	edje = %{version}-%{release}
Provides:	edje%{?_isa} = %{version}-%{release}
Obsoletes:	edje <= 1.7.10
Provides:	eet = %{version}-%{release}
Provides:	eet%{?_isa} = %{version}-%{release}
Obsoletes:	eet <= 1.7.10
Provides:	eeze = %{version}-%{release}
Provides:	eeze%{?_isa} = %{version}-%{release}
Obsoletes:	eeze <= 1.7.10
Provides:	efreet = %{version}-%{release}
Provides:	efreet%{?_isa} = %{version}-%{release}
Obsoletes:	efreet <= 1.7.10
Provides:	eina%{?_isa} = %{version}-%{release}
Provides:	eio = %{version}-%{release}
Provides:	eio%{?_isa} = %{version}-%{release}
Obsoletes:	eio <= 1.7.10
Provides:	eldbus%{?_isa} = %{version}-%{release}
Provides:	elocation%{?_isa} = %{version}-%{release}
Provides:	elua%{?_isa} = %{version}-%{release}
Provides:	embryo = %{version}-%{release}
Provides:	embryo%{?_isa} = %{version}-%{release}
Obsoletes:	embryo <= 1.7.10
Provides:	emotion = %{version}-%{release}
Provides:	emotion%{?_isa} = %{version}-%{release}
Obsoletes:	emotion <= 1.7.10
Provides:	eo%{?_isa} = %{version}-%{release}
Provides:	eolian%{?_isa} = %{version}-%{release}
Provides:	ephysics%{?_isa} = %{version}-%{release}
Provides:	ethumb = %{version}-%{release}
Provides:	ethumb%{?_isa} = %{version}-%{release}
Obsoletes:	ethumb <= 1.7.10
Provides:	evas = %{version}-%{release}
Provides:	evas%{?_isa} = %{version}-%{release}
Obsoletes:	evas <= 1.7.10
Provides:	libeina = %{version}-%{release}
Provides:	libeina%{?_isa} = %{version}-%{release}
Obsoletes:	libeina <= 1.7.10

%description
EFL is a collection of libraries for handling many common tasks a
developer may have such as data structures, communication, rendering,
widgets and more.

%package devel
Summary:	Development files for EFL
Requires:	efl%{?_isa} = %{version}-%{release}
Requires:	pkgconfig, libX11-devel
Requires(post):		systemd
Requires(preun):	systemd
Requires(postun):	systemd
Provides:	e_dbus-devel%{?_isa} = %{version}-%{release}
Provides:	e_dbus-devel = %{version}-%{release}
Obsoletes:	e_dbus-devel <= 1.7.10
Provides:	ecore-devel = %{version}-%{release}
Provides:	ecore-devel%{?_isa} = %{version}-%{release}
Obsoletes:	ecore-devel <= 1.7.10
Provides:	edje-devel = %{version}-%{release}
Provides:	edje-devel%{?_isa} = %{version}-%{release}
Obsoletes:	edje-devel <= 1.7.10
Provides:	eet-devel = %{version}-%{release}
Provides:	eet-devel%{?_isa} = %{version}-%{release}
Obsoletes:	eet-devel <= 1.7.10
Provides:	eeze-devel = %{version}-%{release}
Provides:	eeze-devel%{?_isa} = %{version}-%{release}
Obsoletes:	eeze-devel <= 1.7.10
Provides:	efreet-devel = %{version}-%{release}
Provides:	efreet-devel%{?_isa} = %{version}-%{release}
Obsoletes:	efreet-devel <= 1.7.10
Provides:	eina-devel%{?_isa} = %{version}-%{release}
Provides:	eio-devel = %{version}-%{release}
Provides:	eio-devel%{?_isa} = %{version}-%{release}
Obsoletes:	eio-devel <= 1.7.10
Provides:	eldbus-devel%{?_isa} = %{version}-%{release}
Provides:	elocation-devel%{?_isa} = %{version}-%{release}
Provides:	embryo-devel = %{version}-%{release}
Provides:	embryo-devel%{?_isa} = %{version}-%{release}
Obsoletes:	embryo-devel <= 1.7.10
Provides:	emotion-devel = %{version}-%{release}
Provides:	emotion-devel%{?_isa} = %{version}-%{release}
Obsoletes:	emotion-devel <= 1.7.10
Provides:	eo-devel%{?_isa} = %{version}-%{release}
Provides:	eolian-devel%{?_isa} = %{version}-%{release}
Provides:	ephysics-devel%{?_isa} = %{version}-%{release}
Provides:	ethumb-devel = %{version}-%{release}
Provides:	ethumb-devel%{?_isa} = %{version}-%{release}
Obsoletes:	ethumb-devel <= 1.7.10
Provides:	evas-devel = %{version}-%{release}
Provides:	evas-devel%{?_isa} = %{version}-%{release}
Obsoletes:	evas-devel <= 1.7.10
Provides:	libeina-devel = %{version}-%{release}
Provides:	libeina-devel%{?_isa} = %{version}-%{release}
Obsoletes:	libeina-devel <= 1.7.10

%description devel
Development files for EFL.

%prep
%setup -q
%patch0 -p1 -b .tslibfix
%patch1 -p1 -b .drmfix
%patch2 -p1 -b .fsffix
autoreconf -ifv

%build
# The arm-wide disablement of neon is not right
# but i'm not sure which targets allow for neon at compile.
%configure \
	--enable-xinput22 \
	--enable-systemd \
	--enable-image-loader-webp \
	--enable-harfbuzz \
	--enable-sdl \
	--enable-scim \
	--enable-fb \
	--enable-wayland \
	--enable-drm \
	--enable-drm-hw-accel \
	--with-opengl=full \
	--disable-static \
	--with-profile=release \
%ifarch %{arm}
	--disable-neon \
%endif
	--with-systemdunitdir=%{_unitdir}
make %{?_smp_mflags} V=1
# This makes doxygen segfault. :/
# make %{?_smp_mflags} doc V=1

%install
make install DESTDIR=%{buildroot}

# fix perms
chmod -x src/bin/edje/edje_cc_out.c

find %{buildroot} -name '*.la' -exec rm -f {} ';'

%find_lang %{name}

%post
/sbin/ldconfig
%systemd_post efreet.service
%systemd_post ethumb.service
/bin/touch --no-create %{_datadir}/mime/packages &>/dev/null || :

%postun
if [ $1 -eq 0 ] ; then
  /usr/bin/update-mime-database %{_datadir}/mime &> /dev/null || :
fi
/sbin/ldconfig
%systemd_postun_with_restart efreet.service
%systemd_postun_with_restart ethumb.service

%posttrans
/usr/bin/update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :

%preun
%systemd_preun efreet.service
%systemd_preun ethumb.service

%files -f %{name}.lang
%{!?_licensedir:%global license %%doc}
%license COPYING licenses/COPYING.BSD licenses/COPYING.GPL licenses/COPYING.LGPL licenses/COPYING.SMALL
%doc AUTHORS COMPLIANCE NEWS README
%{_libdir}/libefl.so.1*
# ecore
%{_bindir}/ecore_evas_convert
%{_libdir}/ecore/
%{_libdir}/ecore_evas/
%{_libdir}/ecore_imf/
%{_libdir}/ecore_x/
%{_libdir}/libecore*.so.*
%{_datadir}/ecore/
%{_datadir}/ecore_imf/
%{_datadir}/ecore_x/
# edje
%{_bindir}/edje*
%{_datadir}/mime/packages/edje.xml
%{_libdir}/edje/
%{_libdir}/libedje.so.1*
# eet
%{_bindir}/diffeet
%{_bindir}/eet
%{_bindir}/vieet
%{_libdir}/libeet.so.*
# eeze
%{_bindir}/eeze_*
%{_libdir}/eeze/
%{_libdir}/libeeze.so.1*
# efreet
%{_bindir}/efreetd
%{_unitdir}/efreet.service
# we don't depend on dbus, but we want clean dir ownership here.
%dir %{_datadir}/dbus-1/
%dir %{_datadir}/dbus-1/services/
%{_datadir}/dbus-1/services/org.enlightenment.Efreet.service
%{_libdir}/efreet/
%{_libdir}/libefreet.so.1*
%{_libdir}/libefreet_mime.so.1*
%{_libdir}/libefreet_trash.so.1*
# eina
%{_libdir}/libeina.so.*
# eio
%{_libdir}/libeio.so.1*
# eldbus
%{_bindir}/eldbus-codegen
%{_libdir}/libeldbus.so.1*
# elocation
%{_libdir}/libelocation.so.1*
# elua
%{_bindir}/elua
%{_datadir}/elua/
%{_libdir}/libelua.so.1*
# embryo
%{_bindir}/embryo_cc
%{_libdir}/libembryo.so.1*
# emotion
%{_libdir}/emotion/
%{_libdir}/libemotion.so.1*
# eo
%{_libdir}/libeo.so.1*
# eolian
%{_bindir}/eolian_cxx
%{_bindir}/eolian_gen
%{_libdir}/libeolian.so.1*
# ephysics
%{_libdir}/libephysics.so.1*
# ethumb
%{_bindir}/ethumb
%{_bindir}/ethumbd
%{_bindir}/ethumbd_client
%{_unitdir}/ethumb.service
%{_libdir}/ethumb/
%{_libdir}/ethumb_client/
%{_libdir}/libethumb.so.1*
%{_libdir}/libethumb_client.so.1*
%{_datadir}/dbus-1/services/org.enlightenment.Ethumb.service
%{_datadir}/ethumb
%{_datadir}/ethumb_client
# evas
%{_bindir}/evas_*
%{_libdir}/evas/
%{_libdir}/libevas.so.*
%{_datadir}/evas/

%files devel
%{_includedir}/efl-1/
%{_includedir}/efl-cxx-1/
%{_libdir}/cmake/Efl/
%{_libdir}/libefl.so
%{_libdir}/pkgconfig/efl-cxx.pc
%{_libdir}/pkgconfig/efl.pc
# ecore-devel
%{_includedir}/ecore-1/
%{_includedir}/ecore-audio-1/
%{_includedir}/ecore-audio-cxx-1/
%{_includedir}/ecore-avahi-1/
%{_includedir}/ecore-con-1/
%{_includedir}/ecore-cxx-1/
%{_includedir}/ecore-drm-1/
%{_includedir}/ecore-evas-1/
%{_includedir}/ecore-fb-1/
%{_includedir}/ecore-file-1/
%{_includedir}/ecore-imf-1/
%{_includedir}/ecore-imf-evas-1/
%{_includedir}/ecore-input-1/
%{_includedir}/ecore-input-evas-1/
%{_includedir}/ecore-ipc-1/
%{_includedir}/ecore-sdl-1/
%{_includedir}/ecore-wayland-1/
%{_includedir}/ecore-x-1/
%{_libdir}/cmake/Ecore*/
%{_libdir}/libecore*.so
%{_libdir}/pkgconfig/ecore*.pc
# edje-devel
%{_libdir}/libedje.so
%{_libdir}/pkgconfig/edje*.pc
%{_datadir}/edje
%{_includedir}/edje-*
%{_libdir}/cmake/Edje/
# eet-devel
%{_includedir}/eet-1/
%{_includedir}/eet-cxx-1/
%{_libdir}/cmake/Eet/
%{_libdir}/cmake/EetCxx/
%{_libdir}/pkgconfig/eet*.pc
%{_libdir}/libeet.so
# eeze-devel
%{_includedir}/eeze-1/
%{_libdir}/cmake/Eeze/
%{_libdir}/libeeze.so
%{_datadir}/eeze/
%{_libdir}/pkgconfig/eeze.pc
# efreet-devel
%{_includedir}/efreet-1/
%{_libdir}/cmake/Efreet/
%{_libdir}/libefreet.so
%{_libdir}/libefreet_mime.so
%{_libdir}/libefreet_trash.so
%{_datadir}/efreet/
%{_libdir}/pkgconfig/efreet.pc
%{_libdir}/pkgconfig/efreet-mime.pc
%{_libdir}/pkgconfig/efreet-trash.pc
# eina-devel
%{_bindir}/eina-bench-cmp
%{_includedir}/eina-1/
%{_includedir}/eina-cxx-1/
%{_libdir}/cmake/Eina*/
%{_libdir}/pkgconfig/eina*.pc
%{_libdir}/libeina.so
# eio-devel
%{_includedir}/eio-1/
%{_libdir}/libeio.so
%{_libdir}/pkgconfig/eio.pc
# eldbus-devel
%{_includedir}/eldbus-1/
%{_includedir}/eldbus_cxx-1/
%{_libdir}/cmake/Eldbus/
%{_libdir}/libeldbus.so
%{_libdir}/pkgconfig/eldbus.pc
# elocation-devel
%{_includedir}/elocation-1/
%{_libdir}/libelocation.so
%{_libdir}/pkgconfig/elocation.pc
# elua-devel
%{_includedir}/elua-1/
%{_libdir}/libelua.so
%{_libdir}/pkgconfig/elua.pc
%{_libdir}/cmake/Elua/
# embryo-devel
%{_includedir}/embryo-1/
%{_libdir}/libembryo.so
%{_libdir}/pkgconfig/embryo.pc
%{_datadir}/embryo/
# emotion-devel
%{_includedir}/emotion-1/
%{_libdir}/cmake/Emotion/
%{_libdir}/libemotion.so
%{_libdir}/pkgconfig/emotion.pc
%{_datadir}/emotion/
# eo-devel
%{_includedir}/eo-1/
%{_includedir}/eo-cxx-1/
%{_libdir}/cmake/Eo/
%{_libdir}/cmake/EoCxx/
%{_libdir}/libeo.so
%{_libdir}/pkgconfig/eo.pc
%{_libdir}/pkgconfig/eo-cxx.pc
%{_datadir}/eo/
%{_datadir}/gdb/auto-load/%{_libdir}/libeo.so*
# eolian-devel
%{_includedir}/eolian-1/
%{_includedir}/eolian-cxx-1/
%{_libdir}/cmake/Eolian/
%{_libdir}/cmake/EolianCxx/
%{_libdir}/pkgconfig/eolian.pc
%{_libdir}/pkgconfig/eolian-cxx.pc
%{_libdir}/libeolian.so
%{_datadir}/eolian/
# ephysics-devel
%{_includedir}/ephysics-1/
%{_libdir}/libephysics.so
%{_libdir}/pkgconfig/ephysics.pc
# ethumb-devel
%{_includedir}/ethumb-1/
%{_includedir}/ethumb-client-1/
%{_libdir}/cmake/Ethumb/
%{_libdir}/cmake/EthumbClient/
%{_libdir}/libethumb.so
%{_libdir}/libethumb_client.so
%{_libdir}/pkgconfig/ethumb.pc
%{_libdir}/pkgconfig/ethumb_client.pc
# evas-devel
%{_includedir}/evas-1/
%{_includedir}/evas-cxx-1/
%{_libdir}/libevas.so
%{_libdir}/cmake/Evas/
%{_libdir}/cmake/EvasCxx/
%{_libdir}/pkgconfig/evas*.pc

%changelog
* Mon Apr  6 2015 Tom Callaway <spot@fedoraproject.org> - 1.13.2-1
- update to 1.13.2

* Tue Mar 31 2015 Tom Callaway <spot@fedoraproject.org> - 1.13.1-7
- add dbus dir ownership

* Mon Mar 30 2015 Tom Callaway <spot@fedoraproject.org> - 1.13.1-6
- fix provides/obsoletes to replace old split out packages with efl
- add scriptlets for mimeinfo handling
- mark COPYING as a license file

* Wed Mar 18 2015 Tom Callaway <spot@fedoraproject.org> - 1.13.1-5
- own cmake dirs, not just cmake files

* Mon Mar 16 2015 Tom Callaway <spot@fedoraproject.org> - 1.13.1-4
- drop incorrect patch, do not enable gl-drm

* Thu Mar  5 2015 Tom Callaway <spot@fedoraproject.org> - 1.13.1-3
- add e_dbus Provides/Obsoletes

* Fri Feb 27 2015 Tom Callaway <spot@fedoraproject.org> - 1.13.1-1
- drop subpackages
- update to 1.13.1

* Mon Dec 15 2014 Tom Callaway <spot@fedoraproject.org> - 1.12.2-1
- initial package