File efl.spec of Package efl

#
# spec file for package efl
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#


# build doc is disabled due to #897122 once the bug is resolved it can be re enabled
%define build_doc 0

# Build doc needs to be defined for build doc man to work
%define build_doc_man 0

%define gstreamer1_present 1
%define physics_present 1

# Currently we don't need to build any  plugins and theres none that make
# sense to build
%define generic_players_present 0

%if 0%{?suse_version} == 1315 
%define xinput22_present 0
%else
%define xinput22_present 1
%endif

%if 0%{?suse_version} == 1315 
%define xinput22_present 0
%else
%define xinput22_present 1
%endif

# fedora SLEs 12 don't support xine
%if (0%{?suse_version} == 1315 || 0%{?fedora})
%define xine_present 0
%else
%define xine_present 1
%endif

%ifarch %ix86 x86_64 %arml ppc
%define luajit_present 1
%else
%define luajit_present 0
%endif

%if 0%{?is_opensuse}
%define poppler_present 1
%else
%define poppler_present 0
%endif

%if 0%{?is_opensuse}
%define vlc_present 1
%else
%define vlc_present 0
%endif

%define enable_wayland (0%{?suse_version} > 1320)

Name:           efl
Version:        1.19.1
Release:        0
# TODO: split package to separate packages and specify licenses correctly
Summary:        Enlightenment Foundation Libraries - set of libraries used (not only) by E17
License:        BSD-2-Clause and LGPL-2.1 and Zlib
Group:          Development/Libraries/C and C++
Url:            git://git.enlightenment.org/core/efl.git
Source:         %{name}-%{version}.tar.xz
Patch1:         fix-upstream-eina-hampster-repo-build.patch
BuildRequires:  autoconf >= 2.5
BuildRequires:  automake
%if %build_doc
BuildRequires:  doxygen
%endif
BuildRequires:  gcc-c++
BuildRequires:  gettext-devel
BuildRequires:  giflib-devel
BuildRequires:  glibc-devel
BuildRequires:  libjpeg-devel
%if %poppler_present
BuildRequires:  libpoppler-devel
# boo#864299 need libpoppler-cpp0 for Leap / SLE
BuildRequires:  libpoppler-cpp0
%endif
BuildRequires:  ImageMagick
BuildRequires:  gettext-devel
BuildRequires:  libraw-devel
BuildRequires:  libspectre-devel
BuildRequires:  libtool
BuildRequires:  pkgconfig
BuildRequires:  python >= 2.5
%if 0%{?suse_version}
BuildRequires:  update-desktop-files
%endif
%ifarch %ix86 x86_64 ppc ppc64 ppc64le s390x armv7l armv7hl armv6l armv6hl aarch64
BuildRequires:  valgrind
%endif

BuildRequires:  pkgconfig(alsa)
%if %physics_present
BuildRequires:  pkgconfig(bullet) >= 2.80
%endif
BuildRequires:  pkgconfig(check)
BuildRequires:  pkgconfig(dbus-1)
BuildRequires:  pkgconfig(dri)
BuildRequires:  pkgconfig(egl)
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(freetype2)
BuildRequires:  pkgconfig(fribidi)
BuildRequires:  pkgconfig(glesv2)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(libcurl)
BuildRequires:  pkgconfig(libexif)
BuildRequires:  pkgconfig(libpng) >= 1.2.10
BuildRequires:  pkgconfig(librsvg-2.0)
BuildRequires:  pkgconfig(libtiff-4)
BuildRequires:  pkgconfig(libudev)
BuildRequires:  pkgconfig(libudev)
%if %vlc_present
BuildRequires:  pkgconfig(libvlc)
%endif
%if %xine_present
BuildRequires:  pkgconfig(libxine)
%endif
%if %luajit_present
BuildRequires:  pkgconfig(luajit)
%else
%if 0%{suse_version} >= 1330
BuildRequires:  pkgconfig(lua-5.1)
%else
BuildRequires:  pkgconfig(lua) < 5.2
%endif
%endif
BuildRequires:  systemd
BuildRequires:  systemd-devel
BuildRequires:  pkgconfig(gstreamer-1.0)
BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires:  pkgconfig(harfbuzz)
BuildRequires:  pkgconfig(libpulse)
BuildRequires:  pkgconfig(mount)
BuildRequires:  pkgconfig(openssl)
BuildRequires:  pkgconfig(pixman-1)
BuildRequires:  pkgconfig(sdl)
BuildRequires:  pkgconfig(sndfile)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcomposite)
BuildRequires:  pkgconfig(xcursor)
BuildRequires:  pkgconfig(xdmcp)
BuildRequires:  pkgconfig(xext)
BuildRequires:  pkgconfig(xi)
BuildRequires:  pkgconfig(xinerama)
BuildRequires:  pkgconfig(xkbfile)
BuildRequires:  pkgconfig(xp)
BuildRequires:  pkgconfig(xproto)
BuildRequires:  pkgconfig(xrandr)
BuildRequires:  pkgconfig(xscrnsaver)
BuildRequires:  pkgconfig(xtst)
BuildRequires:  pkgconfig(zlib)
%if %enable_wayland
BuildRequires:  pkgconfig(gbm)
BuildRequires:  pkgconfig(libdrm) >= 2.4
BuildRequires:  pkgconfig(libinput) >= 0.6.0
BuildRequires:  pkgconfig(libudev)
BuildRequires:  pkgconfig(wayland-client) >= 1.11.0
BuildRequires:  pkgconfig(wayland-cursor) >= 1.11.0
BuildRequires:  pkgconfig(wayland-egl)
BuildRequires:  pkgconfig(wayland-protocols) >= 1.7
BuildRequires:  pkgconfig(wayland-scanner) >= 1.11.0
BuildRequires:  pkgconfig(wayland-server) >= 1.11.0
BuildRequires:  pkgconfig(xkbcommon)
%endif
%if 0%{?suse_version}
BuildRequires:  fdupes
%endif
Recommends:     elua = %{version}

Provides:       ecore = %{version}
Obsoletes:      ecore < %{version}
Provides:       edje-utils = %{version}
Obsoletes:      edje-utils < %{version}
Provides:       eet = %{version}
Obsoletes:      eet < %{version}
Provides:       eeze = %{version}
Obsoletes:      eeze < %{version}
Provides:       efreet = %{version}
Obsoletes:      efreet < %{version}
Provides:       eina = %{version}
Obsoletes:      eina < %{version}
Provides:       emotion = %{version}
Obsoletes:      emotion < %{version}
Provides:       ethumb = %{version}
Obsoletes:      ethumb < %{version}
Provides:       evas = %{version}
Obsoletes:      evas < %{version}

BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires}

%description
EFL is library collection providing various functionality used (not onyl) by Enlightenment 17, Terminology, Tizen mobile platform and much more.

%package devel
Summary:        Headers, pkgconfig files and other files for development with EFL
License:        BSD-2-Clause and LGPL-2.1 and Zlib
Group:          Development/Libraries/C and C++
Requires:       gettext-devel
Requires:       giflib-devel
Requires:       glibc-devel

%if %physics_present
Requires:       pkgconfig(bullet)
%endif
Requires:       pkgconfig(dbus-1)
Requires:       pkgconfig(dri)
Requires:       pkgconfig(egl)
Requires:       pkgconfig(fontconfig)
Requires:       pkgconfig(freetype2)
Requires:       pkgconfig(fribidi)
Requires:       pkgconfig(glesv2)
Requires:       pkgconfig(glib-2.0)
Requires:       pkgconfig(libcurl)
Requires:       pkgconfig(libexif)
Requires:       pkgconfig(libopenjpeg)
Requires:       pkgconfig(libpng) >= 1.2.10
Requires:       pkgconfig(librsvg-2.0)
Requires:       pkgconfig(libtiff-4)
Requires:       pkgconfig(libudev)
%if %xine_present
Requires:       pkgconfig(libxine)
%endif
%if %luajit_present
Requires:       pkgconfig(luajit)
%else
%if 0%{suse_version} >= 1330
Requires:       pkgconfig(lua-5.1)
%else
Requires:       pkgconfig(lua) < 5.2
%endif
%endif
Requires:       pkgconfig(harfbuzz)
Requires:       pkgconfig(openssl)
Requires:       pkgconfig(pixman-1)
Requires:       pkgconfig(sdl)
Requires:       pkgconfig(sndfile)
Requires:       pkgconfig(x11)
Requires:       pkgconfig(xcomposite)
Requires:       pkgconfig(xcursor)
Requires:       pkgconfig(xdmcp)
Requires:       pkgconfig(xext)
Requires:       pkgconfig(xi)
Requires:       pkgconfig(xinerama)
Requires:       pkgconfig(xp)
Requires:       pkgconfig(xproto)
Requires:       pkgconfig(xrandr)
Requires:       pkgconfig(xscrnsaver)
Requires:       pkgconfig(xtst)
Requires:       pkgconfig(zlib)

%if %gstreamer1_present
Requires:       pkgconfig(gstreamer-1.0)
Requires:       pkgconfig(gstreamer-plugins-base-1.0)
%endif
Requires:       pkgconfig(libpulse)

Requires:       %{name} = %{version}
Requires:       libecore1 = %{version}
Requires:       libector1 = %{version}
Requires:       libedje1 = %{version}
Requires:       libeet1 = %{version}
Requires:       libeeze1 = %{version}
Requires:       libefreet1 = %{version}
Requires:       libefreet_mime1 = %{version}
Requires:       libefreet_trash1 = %{version}
Requires:       libeina1 = %{version}
Requires:       libeio1 = %{version}
Requires:       libeldbus1 = %{version}
Requires:       libelementary1 = %{version}
Requires:       libelocation1 = %{version}
Requires:       libembryo1 = %{version}
Requires:       libemile1 = %{version}
Requires:       libemotion1 = %{version}
Requires:       libeo1 = %{version}
%if %physics_present
Requires:       libephysics1 = %{version}
%endif
Requires:       edje = %{version}
Requires:       embryo = %{version}
Requires:       libethumb1 = %{version}
Requires:       libethumb_client1 = %{version}
Requires:       libevas1 = %{version}
Provides:       ecore-devel = %{version}
Provides:       edbus-devel = %{version}
Provides:       edje-devel = %{version}
Provides:       eet-devel = %{version}
Provides:       eeze-devel = %{version}
Provides:       efreet-devel = %{version}
Provides:       eina-devel = %{version}
Provides:       eio-devel = %{version}
Provides:       elementary-devel = %{version}
Provides:       embryo-devel = %{version}
Provides:       emotion-devel = %{version}
%if %physics_present
Provides:       ephysics-devel = %{version}
%endif
Provides:       emotion-generic-players-devel = %{version}
Provides:       eo-devel = %{version}
Provides:       ethumb-devel = %{version}
Provides:       evas-devel = %{version}
Provides:       evas-generic-loaders-devel = %{version}
Obsoletes:      ecore-devel < %{version}
Obsoletes:      edbus-devel < %{version}
Obsoletes:      edje-devel < %{version}
Obsoletes:      eet-devel < %{version}
Obsoletes:      eeze-devel < %{version}
Obsoletes:      efreet-devel < %{version}
Obsoletes:      eina-devel < %{version}
Obsoletes:      eio-devel < %{version}
Obsoletes:      elementary-devel < %{version}
Obsoletes:      embryo-devel < %{version}
Obsoletes:      emotion-devel < %{version}
Obsoletes:      eo-devel < %{version}
%if %physics_present
Obsoletes:      ephysics-devel < %{version}
%endif
Obsoletes:      emotion-generic-players-devel < %{version}
Obsoletes:      ethumb-devel < %{version}
Obsoletes:      evas-devel < %{version}
Obsoletes:      evas-generic-loaders-devel < %{version}

%description devel
Headers, pkgconfig files and other files needed for development with EFL.

%package -n libecore1
Summary:        Ecore, part of EFL
License:        BSD-2-Clause
Group:          Development/Libraries/C and C++

%description -n libecore1
Ecore is a clean and tiny event loop library with many modules to do lots of
convenient things for a programmer, to save time and effort.

%package -n libector1
Summary:        Ector, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libector1
Ector provides a new retained rendering library that is used by Evas to
provide
Evas_Object_VG. This is a new Evas_Object that provides a vector graphics
scene graph following the SVG specification. It will be considered a bug
if some
behaviour does not follow the SVG standard. Evas_Object_VG provides 3
kind of objects
for now: shape, as well as linear and radial gradients.

%package -n libedje1
Summary:        Edje, part of EFL
License:        BSD-2-Clause and GPL-2.0
Group:          System/Libraries

%description -n libedje1
Abstract GUI layout and animation object library. Part of Enlightenment Foundation Libraries.

%package -n libeldbus1
Summary:        ELDbus, part of EFL
License:        LGPL-2.1
Group:          System/Libraries

%description -n libeldbus1
ELDbus is a wrapper around libdbus for the Enlightenment Foundation Libraries

%package -n libeet1
Summary:        Eet, part of EFL
License:        BSD-2-Clause
Group:          Development/Libraries/C and C++

%description -n libeet1
Eet is a tiny library designed to write an arbitrary set of chunks of
data to a file and optionally compress each chunk (very much like a
zip file) and allow fast random-access reading of the file later
on. It does not do zip as a zip itself has more complexity than is
needed, and it was much simpler to implement this once here.

It also can encode and decode data structures in memory, as well as
image data for saving to eet files or sending across the network to
other machines, or just writing to arbitrary files on the system. All
data is encoded in a platform independent way and can be written and
read by any architecture.

%package -n libeeze1
Summary:        Eeze, part of EFL
License:        BSD-2-Clause
Group:          System/Libraries

%description -n libeeze1
Eeze is a library for manipulating devices through udev with a simple
and fast api. It interfaces directly with libudev, avoiding such
middleman daemons as udisks/upower or hal, to immediately gather
device information the instant it becomes known to the system.  This
can be used to determine such things as:
  * If a cdrom has a disk inserted
  * The temperature of a cpu core
  * The remaining power left in a battery
  * The current power consumption of various parts
  * Monitor in realtime the status of peripheral devices

Each of the above examples can be performed by using only a single
eeze function, as one of the primary focuses of the library is to
reduce the complexity of managing devices.

%package -n libefl1
Summary:        Efreet, part of EFL
License:        LGPL-2.1
Group:          System/Libraries

%description -n libefl1
The foundation components for the enlightenment foundation libraries.

%package -n libefreet1
Summary:        Efreet, part of EFL
License:        BSD-2-Clause
Group:          System/Libraries

%description -n libefreet1
Standards handling for FreeDesktop.org standards.

%package -n libefreet_mime1
Summary:        Efreet, part of EFL
License:        BSD-2-Clause
Group:          System/Libraries
Conflicts:      libefreet1 < 1.8

%description -n libefreet_mime1
Standards handling for FreeDesktop.org mime types.

%package -n libefreet_trash1
Summary:        Efreet, part of EFL
License:        BSD-2-Clause
Group:          System/Libraries
Conflicts:      libefreet1 < 1.8

%description -n libefreet_trash1
Standards handling for FreeDesktop.org trash.

%package -n libeina1
Summary:        Eina, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libeina1
Eina is library handling various data types.

%package -n libeio1
Summary:        Eio, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libeio1
Extension of ecore for parallel I/O operations. Part of Enlightenment Foundation Libraries.

%package -n libelocation1
Summary:        ELocation, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libelocation1
A location library. Part of Enlightenment Foundation Libraries.

%if %enable_wayland
%package -n libelput1
Summary:        Elput, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libelput1
A location library. Part of Enlightenment Foundation Libraries. For handling wayland input
%endif

%package -n libelua1
Summary:        Lua bindings for the EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libelua1
Support for lua within the efl

%package -n libembryo1
Summary:        Embryo, part of EFL
License:        BSD-2-Clause and Zlib
Group:          Development/Libraries/C and C++

%description -n libembryo1
Embryo is a tiny library designed to interpret limited small programs compiled
by the included compiler, embryo_cc. It is mostly a cleaned up and smaller
version of the original Small abstract machine. The compiler is mostly
untouched.

%package -n libemotion1
Summary:        Emotion, part of EFL
License:        BSD-2-Clause
Group:          Development/Libraries/C and C++

%description -n libemotion1
Emotion is a wrapper that provides a uniform api to a number of different media libraries
Currently the supported backends for this 

%package -n libemile1
Summary:        Emile, part of EFL compression and ciphering libs for the efl
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libemile1

Emile provides a library to bring together serialization, compression
and ciphering.
It is a low-level library and can be used by anything above Eina. It
came along with a
lot re-factoring of our current code base to make use of it and
de-duplicate a lot of
existing code. More refactoring is expected in ecore_con_ssl ciphering
and general
image compression.

%package -n libeo1
Summary:        Eo, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libeo1
Eo is library providing basic E object in OOP way of programming.

%package -n libeolian1
Summary:        Eolian, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libeolian1
Eolian is library for binding/code generation based on Eo descriptions.

%package -n libethumb1
Summary:        EThumb, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libethumb1
Thumbnail generation library for EFL

%if %physics_present
%package -n libephysics1
Summary:        EPhysics, part of EFL
License:        LGPL-2.1
Group:          Development/Libraries/C and C++

%description -n libephysics1
EPhysics is a wrapper around bullet physics for the enlightenment foundation libraries
%endif

%package -n libevas1
Summary:        Evas, part of EFL
License:        BSD-2-Clause
Group:          Development/Libraries/C and C++

%description -n libevas1
Evas is a clean display canvas API that implements a scene graph, not an
immediate-mode rendering target, is cross-platform, for several target display
systems that can draw anti-aliased text, smooth super and sub-sampled scaled
images, alpha-blend objects and much more.

%package -n libethumb_client1
Summary:        EThumb Client, part of EFL
License:        LGPL-2.1
Group:          System/Libraries

%description -n libethumb_client1
Shared library of ethumb client

%package -n edje
Summary:        Abstract GUI layout and animation object library
License:        BSD-2-Clause
Group:          Development/Libraries/C and C++
Requires:       efl = %{version}
Requires:       embryo = %{version}
Requires:       libedje1 = %{version}

%description -n edje
Abstract GUI layout and animation object library. Part of Enlightenment Foundation Libraries.

%package -n elementary
Summary:        The widget set for enlightenment
License:        LGPL-2.1
Group:          Development/Libraries
Requires:       edje = %{version}
Requires:       efl = %{version}
Provides:       libelementary1 = %{version}
Obsoletes:      libelementary1 < %{version}

%description -n elementary
Set of widgets for enlightenment focused on touch devices

%package -n elementary-examples
Summary:        Elementary examples
License:        LGPL-2.1
Group:          Documentation/Other

%description -n elementary-examples
Examples of usage of Elementary library.

%package -n elua
Summary:        LuaJIT bindings for the efl
License:        LGPL-2.1
Group:          Development/Libraries
Requires:       efl = %{version}

%description -n elua
A set of efl bindings for the LuaJIT environment

%package -n embryo
Summary:        Abstract GUI layout and animation object library
License:        BSD-2-Clause
Group:          Development/Libraries/C and C++
Requires:       libembryo1 = %{version}

%description -n embryo
Embryo is a tiny library designed to interpret limited small programs compiled
by the included compiler, embryo_cc. It is mostly a cleaned up and smaller
version of the original Small abstract machine. The compiler is mostly
untouched.

%package -n evas-generic-loaders
Summary:        Set of generic loaders for Evas
License:        GPL-2.0+
Group:          Development/Libraries/C and C++

%description -n evas-generic-loaders
Set of generic loaders allowing to open XCF, PDF, PS, RAW, MPG/AVI/OGV/MOV/MKV/WMV. 
Useful only for evas library.

%if %generic_players_present
%package -n emotion-generic-players
Summary:        Set of generic players for Emotion
License:        GPL-2.0+
Group:          Development/Libraries/C and C++

%description -n emotion-generic-players
Set of generic players (currently VLC is supported) allowing to open video files through emotion.
Useful only for emotion library.
%endif

%if %{build_doc}
%if %{build_doc_man}
%package doc-man
Summary:        EFL reference man pages
License:        BSD-2-Clause
Group:          Documentation/Man

%description doc-man
Documentation in form of man pages describing EFL API.
%endif #build_doc_man

%package doc-html
Summary:        EFL reference man pages
License:        BSD-2-Clause
Group:          Documentation/HTML

%description doc-html
Documentation in form of HTML pages describing EFL API.
%endif #build_doc

%package examples
Summary:        Examples of EFL usage
License:        BSD-2-Clause and LGPL-2.1 and Zlib
Group:          Documentation/Man

%description examples
Examples usage of the EFL library.

%package testsuite
Summary:        EFL testsuite
License:        BSD-2-Clause and LGPL-2.1 and Zlib
Group:          Development/Libraries/C and C++
Requires:       libefreet1 = %{version}

%description testsuite
Testsuite of EFL package.

%package -n enlightenment-theme-upstream
Summary:        Default Enlightenment theme
License:        BSD-2-Clause and LGPL-2.1 and Zlib
Group:          System/GUI/Other
Version:        0.21.0
Release:        0
Provides:       enlightenment-theme = 0.1
Provides:       enlightenment-theme-dft
Conflicts:      otherproviders(enlightenment-theme-dft)

%description  -n enlightenment-theme-upstream
For use with upstream branding, when using openSUSE themes, when using openSUSE themes Use the Dark theme instead

%package -n enlightenment-theme-dark
Summary:        Default Enlightenment theme(Dark)
License:        BSD-2-Clause and LGPL-2.1 and Zlib
Group:          System/GUI/Other
Provides:       enlightenment-theme
Version:        0.21.0
Release:        0

%description  -n enlightenment-theme-dark
The default theme for enlightenment install when using openSUSE branding

%package -n enlightenment-x-dark-icon-theme
Summary:        A freedesktop.org compatible icon theme
License:        GPL-3.0
Group:          System/GUI/Other

%description -n enlightenment-x-dark-icon-theme
Setting this icon theme as your application icon theme in enlightenment will
make all your applications use the same icon set as the enlightenment
dark (upstream) theme.

Icon themes to match the openSUSE Enlightenment themes are also available.

%prep
%setup -q
%patch1 -p1

%build
# For now i'm not using a proper source tarball.
autoreconf -ivf

# remove __DATE__ and __TIME__
FAKE_BUILDTIME=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%H:%%M')
FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y')
FAKE_DOCDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%a %%b %%d %%Y')
sed -i -e "s/__TIME__/\"$FAKE_BUILDTIME\"/g" -e "s/__TIME__/\"$FAKE_BUILDTIME\"/g" src/lib/eina/eina_hamster.c
sed -i -e "s/__TIME__/\"$FAKE_BUILDDATE\"/g" -e "s/__DATE__/\"$FAKE_BUILDDATE\"/g" src/lib/eina/eina_hamster.c

# it seems that fedora libxcb-devel package doesn't contain xcb-xprint.pc
%if 0%{?fedora_version}
sed -i 's/xcb-xprint//g' configure.ac configure
%endif

ARGS=""

# efl intentionally compares string pointers in alot of places rather then strings this stops obs complaining
export CFLAGS="%optflags -Wno-address";

%configure \
    --disable-static \
    --disable-silent-rules \
    --disable-tslib \
%ifarch armv6hl armv6l
    --disable-neon \
%endif
%if ! %physics_present
    --disable-physics \
    --enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-aba \
%endif
%if ! %poppler_present
    --disable-poppler \
%endif
%if !%luajit_present
    --enable-lua-old \
%endif
    --enable-harfbuzz \
%if %xinput22_present
    --enable-xinput22 \
%endif
%if %xine_present
    --enable-xine \
%endif
    --with-generic_vl \
    --enable-systemd \
    --enable-fb \
%if %{build_doc}
    --enable-doc \
%else
    --disable-doc \
%endif
    --enable-install-examples \
%if %enable_wayland
    --enable-drm \
    --enable-wayland \
    --enable-elput \
    --enable-egl \
    --with-opengl=es \
%endif
    $ARGS

make %{?_smp_mflags}
%if %{build_doc}
make doc
%endif 

%install
make install DESTDIR="%buildroot"
make install-examples DESTDIR="%buildroot"

%if 0%{?suse_version}
%fdupes -s "%{buildroot}/%{_datadir}/%{name}/examples"
%endif
# delete binary with suid bit set :D
rm -f "%buildroot/%_bindir/eeze_scanner"

%if %{build_doc}
%if %{build_doc_man}
# copy documentation manually
echo "Copying MAN pages"
/bin/cp -vr doc/man %{buildroot}%{_datadir}/
%endif #build_doc_man
# fix line endings
find doc/html -name '*.eps' | xargs sed -i 's@\r@\n@g'
# remove duplicates
%if 0%{?suse_version}
%fdupes -s doc/html
%if %{build_doc_man}
%fdupes -s %{buildroot}%{_datadir}/man/
%endif #build_doc_man
%endif
%endif #build_doc

# fix permissions
find \
%if %{build_doc_man}
     %{buildroot}%{_datadir}/man \
     doc \
%endif
     %{buildroot}%{_datadir}/*/examples \
     -type d -exec chmod 0755 {} \;
find \
%if %{build_doc_man}
     %{buildroot}%{_datadir}/man \
     doc \
%endif
     %{buildroot}%{_datadir}/*/examples \
    -type f -exec chmod 0644 {} \;

# python gdb pretty printers shouldn't have execute permissions.
chmod 0644 %{buildroot}%{_datadir}/eo/gdb/eo_gdb.py

find %{buildroot}%{_libdir} -name '*.la' -exec rm -v {} \;
%find_lang efl

mkdir -p  %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/
mv %{buildroot}%{_datadir}/icons/elementary.png  %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/

# create theme version for dark package
cp %{buildroot}%{_datadir}/elementary/themes/default.edj %{buildroot}%{_datadir}/elementary/themes/dark.edj

# move icons as openSUSE also ships 
mv %{buildroot}/%{_datadir}/icons/Enlightenment-X %{buildroot}/%{_datadir}/icons/Enlightenment-X-dark
%if 0%{?suse_version}
%fdupes -s %{buildroot}%{_datadir}/icons/Enlightenment-X-dark/
%endif

find %{buildroot}%{_libdir} -name '*.la' -exec rm -v {} +
%find_lang %{name}
%if 0%{?suse_version}
%suse_update_desktop_file -N "Elementary Configuration" -G "Elementary Configuration" -r %{buildroot}%{_datadir}/applications/elementary_config.desktop Settings DesktopSettings
%suse_update_desktop_file -N "Elementary Test" -G "Elementary Test" -r %{buildroot}%{_datadir}/applications/elementary_test.desktop Development IDE
%endif

%if ! 0%{?fedora_version}
%pre
%service_add_pre efreet.service ethumb.service
%endif 

%post
%if ! 0%{?fedora_version}
%service_add_post efreet.service ethumb.service
%endif
/sbin/ldconfig

%if ! 0%{?fedora_version}
%preun
%service_del_preun efreet.service ethumb.service
%endif

%postun
%if ! 0%{?fedora_version}
%service_del_postun efreet.service ethumb.service
%endif
/sbin/ldconfig

%post -n libecore1 -p /sbin/ldconfig
%postun -n libecore1 -p /sbin/ldconfig

%post -n libector1 -p /sbin/ldconfig
%postun -n libector1 -p /sbin/ldconfig

%post -n libedje1 -p /sbin/ldconfig
%postun -n libedje1 -p /sbin/ldconfig

%post -n libeldbus1 -p /sbin/ldconfig
%postun -n libeldbus1 -p /sbin/ldconfig

%post -n libeet1 -p /sbin/ldconfig
%postun -n libeet1 -p /sbin/ldconfig

%post -n libeeze1 -p /sbin/ldconfig
%postun -n libeeze1 -p /sbin/ldconfig

%post -n libefl1 -p /sbin/ldconfig
%postun -n libefl1 -p /sbin/ldconfig

%post -n libefreet1 -p /sbin/ldconfig
%postun -n libefreet1 -p /sbin/ldconfig

%post -n libeina1 -p /sbin/ldconfig
%postun -n libeina1 -p /sbin/ldconfig

%post -n libeio1 -p /sbin/ldconfig
%postun -n libeio1 -p /sbin/ldconfig

%post -n elementary -p /sbin/ldconfig
%postun -n elementary -p /sbin/ldconfig

%post -n libelocation1 -p /sbin/ldconfig
%postun -n libelocation1 -p /sbin/ldconfig

%if %enable_wayland
%post -n libelput1 -p /sbin/ldconfig
%postun -n libelput1 -p /sbin/ldconfig
%endif

%post -n libelua1 -p /sbin/ldconfig
%postun -n libelua1 -p /sbin/ldconfig

%post -n libembryo1 -p /sbin/ldconfig
%postun -n libembryo1 -p /sbin/ldconfig

%post -n libemile1 -p /sbin/ldconfig
%postun -n libemile1 -p /sbin/ldconfig

%post -n libemotion1 -p /sbin/ldconfig
%postun -n libemotion1 -p /sbin/ldconfig

%post -n libeo1 -p /sbin/ldconfig
%postun -n libeo1 -p /sbin/ldconfig

%post -n libeolian1 -p /sbin/ldconfig
%postun -n libeolian1 -p /sbin/ldconfig

%if %physics_present
%post -n libephysics1 -p /sbin/ldconfig
%postun -n libephysics1 -p /sbin/ldconfig
%endif

%post -n libethumb1 -p /sbin/ldconfig
%postun -n libethumb1 -p /sbin/ldconfig

%post -n libethumb_client1 -p /sbin/ldconfig
%postun -n libethumb_client1 -p /sbin/ldconfig

%post -n libevas1 -p /sbin/ldconfig
%postun -n libevas1 -p /sbin/ldconfig

%post -n libefreet_trash1 -p /sbin/ldconfig
%postun -n libefreet_trash1 -p /sbin/ldconfig

%post -n libefreet_mime1 -p /sbin/ldconfig
%postun -n libefreet_mime1 -p /sbin/ldconfig

%files -f efl.lang
%defattr(-, root, root)
%{_bindir}/*
%exclude %{_bindir}/edje_*
%exclude %{_bindir}/elementary_*
%exclude %{_bindir}/embryo_*
%exclude %{_datadir}/ecore_x/checkme
%exclude %{_datadir}/evas/checkme
%exclude %{_datadir}/*/examples
# evas generic loaders
%exclude %{_libdir}/evas/utils/
%if %generic_players_present
%exclude %{_libdir}/emotion/generic_players/
%endif

%doc README COPYING AUTHORS
%{_libdir}/ecore_con
%{_libdir}/ecore_evas
%{_libdir}/ecore_imf
%{_libdir}/ecore
%{_libdir}/eeze
%{_libdir}/efreet
%{_libdir}/emotion
%{_libdir}/ethumb
%{_libdir}/ethumb_client
%{_libdir}/evas
%{_datadir}/dbus-1
%{_datadir}/ecore
%{_datadir}/ecore_avahi
%{_datadir}/ecore_x
%{_datadir}/eet
%{_datadir}/eina
%{_datadir}/eina_cxx
%{_datadir}/eio
%{_datadir}/eldbus
%{_datadir}/elocation
%{_datadir}/emile
%{_datadir}/emotion
%{_datadir}/eo
%{_datadir}/eolian_cxx
%{_datadir}/ephysics
%{_datadir}/ethumb
%{_datadir}/evas
%{_prefix}/lib/systemd/user/*.service

%files -n libefl1
%defattr(-, root, root)
%{_libdir}/libefl*.so.*

%files -n libecore1
%defattr(-, root, root)
%{_libdir}/libecore*.so.*

%files -n libector1
%defattr(-, root, root)
%{_libdir}/libector*.so.*

%files -n libedje1
%defattr(-, root, root)
%{_libdir}/libedje.so.1*

%files -n libeldbus1
%defattr(-, root, root)
%{_libdir}/libeldbus.so.*

%files -n libelocation1
%defattr(-, root, root)
%{_libdir}/libelocation.so.*

%if %enable_wayland
%files -n  libelput1
%defattr(-, root, root)
%{_libdir}/libelput.so.*
%endif

%if %luajit_present
%files -n libelua1
%defattr(-, root, root)
%{_libdir}/libelua.so.*
%endif

%files -n libeet1
%defattr(-, root, root)
%{_libdir}/libeet.so.*

%files -n libeeze1
%defattr(-, root, root)
%{_libdir}/libeeze.so.*

%files -n libefreet1
%defattr(-, root, root)
%{_libdir}/libefreet.so.*

%files -n libefreet_mime1
%defattr(-, root, root)
%{_libdir}/libefreet_mime.so.*

%files -n libefreet_trash1
%defattr(-, root, root)
%{_libdir}/libefreet_trash.so.*

%files -n libeina1
%defattr(-, root, root)
%{_libdir}/libeina.so.*

%files -n libeio1
%defattr(-, root, root)
%{_libdir}/libeio.so.*

%files -n libembryo1
%defattr(-, root, root)
%{_libdir}/libembryo.so.*

%files -n libemile1
%defattr(-,root,root)
%{_libdir}/libemile.so.*

%files -n libemotion1
%defattr(-,root,root)
%{_libdir}/libemotion.so.*

%files -n libeo1
%defattr(-, root, root)
%{_libdir}/libeo.so.*

%files -n libeolian1
%defattr(-, root, root)
%{_libdir}/libeolian.so.*

%if %physics_present
%files -n libephysics1
%defattr(-,root,root)
%{_libdir}/libephysics.so.*
%endif

%files -n libethumb1
%defattr(-,root,root)
%{_libdir}/libethumb.so.*

%files -n libethumb_client1
%defattr(-,root,root)
%{_libdir}/libethumb_client.so.*

%files -n libevas1
%defattr(-, root, root)
%{_libdir}/libevas.so.*

%files devel
%defattr(-, root, root)
%{_bindir}/elementary_codegen
%{_bindir}/elementary_test
%{_libdir}/pkgconfig/*
%{_libdir}/lib*.so
%{_libdir}/libeo_dbg.so.*
%{_libdir}/cmake/
%{_includedir}/efl-1/
%{_includedir}/efl-cxx-1/
%{_includedir}/ecore-1/
%{_includedir}/ecore-audio-1/
%{_includedir}/ecore-avahi-1/
%{_includedir}/ecore-con-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-x-1/
%{_includedir}/eldbus-1/
%{_includedir}/elementary-1
%{_includedir}/elocation-1/
%if %luajit_present
%{_includedir}/elua-1/
%endif
%{_includedir}/edje-1/
%{_includedir}/eet-1/
%{_includedir}/eeze-1/
%{_includedir}/efreet-1/
%{_includedir}/eina-1/
%{_includedir}/eio-1/
%{_includedir}/embryo-1/
%{_includedir}/emile-1/
%{_includedir}/emotion-1/
%{_includedir}/eo-1/
%{_includedir}/eolian-1/
# C++ headers
%{_includedir}/ecore-cxx-1
%{_includedir}/edje-cxx-1
%{_includedir}/eet-cxx-1
%{_includedir}/eina-cxx-1
%{_includedir}/eio-cxx-1
%{_includedir}/eldbus_cxx-1
%{_includedir}/elementary-cxx-1
%{_includedir}/eo-cxx-1
%{_includedir}/eolian-cxx-1
%{_includedir}/evas-cxx-1

%if %physics_present
%{_includedir}/ephysics-1/
%endif
%{_includedir}/ethumb-1/
%{_includedir}/ethumb-client-1/
%{_includedir}/evas-1/
%if %enable_wayland
/usr/include/ecore-drm2-1/
/usr/include/ecore-wl2-1/
/usr/include/elput-1/
%endif
%{_datadir}/eolian/
%{_datadir}/ecore_x/checkme
%{_datadir}/evas/checkme
%{_datadir}/gdb/

%files -n edje
%defattr(-, root, root)
%{_bindir}/edje_*
%{_datadir}/edje
%exclude %{_datadir}/edje/examples
%{_libdir}/edje
%{_datadir}/mime/packages/edje.xml

%files -n elementary
%defattr(-, root, root)
%{_bindir}/elementary_*
%exclude %{_bindir}/elementary_codegen
%exclude %{_bindir}/elementary_test
%{_libdir}/libelementary.so.*
%{_datadir}/elementary
%exclude %{_datadir}/elementary/examples
%exclude %{_datadir}/elementary/themes/*
%{_datadir}/icons/hicolor/
%{_datadir}/applications/elementary*
%{_libdir}/elementary

%files -n elementary-examples
%defattr(-, root, root)
%{_datadir}/elementary/examples

%files -n elua
%defattr(-, root, root)
%{_datadir}/elua

%files -n embryo
%defattr(-, root, root)
%{_bindir}/embryo_*
%{_datadir}/embryo

%files -n enlightenment-theme-upstream
%defattr(-, root, root)
%{_datadir}/elementary/themes/default.edj

%files -n enlightenment-theme-dark
%defattr(-, root, root)
%{_datadir}/elementary/themes/dark.edj

%files -n enlightenment-x-dark-icon-theme
%defattr(-, root, root)
%{_datadir}/icons/Enlightenment-X-dark

%files -n evas-generic-loaders
%defattr(-,root,root)
%{_libdir}/evas/utils/

%if %generic_players_present
%files -n emotion-generic-players
%defattr(-,root,root)
%{_libdir}/emotion/generic_players/
%endif

%if %{build_doc}
%if %{build_doc_man}
%files doc-man
%defattr(-, root, root)
%{_datadir}/man/*/*
%endif #build_doc

%files doc-html
%defattr(-, root, root)
%doc doc/html/*

%endif #build_doc

%files examples
%defattr(-, root, root)
%{_datadir}/*/examples
%exclude %{_datadir}/elementary/examples

%files testsuite
%defattr(-, root, root)
%{_datadir}/ecore_imf/
%{_datadir}/eeze/
%{_datadir}/efreet/
%{_datadir}/ethumb_client/
%exclude %{_datadir}/ethumb_client/examples

%changelog