+#
+# TODO:
+# - fix x86-64 int32<->ptr64 casts.
+#
+# tree.c:88: warning: cast from pointer to integer of different size
+# tree.c:102: warning: cast from pointer to integer of different size
+# fonts.c:144: warning: cast to pointer from integer of different size
+# fonts.c:211: warning: cast to pointer from integer of different size
+# gfxcard.c:1451: warning: cast to pointer from integer of different size
+# fbdev.c:459: warning: cast from pointer to integer of different size
+# fbdev.c:578: warning: cast from pointer to integer of different size
+# fbdev.c:708: warning: cast from pointer to integer of different size
+# idirectfbfont_ft2.c:130: warning: cast from pointer to integer of different size
+# idirectfbfont_ft2.c:292: warning: cast from pointer to integer of different size
+# idirectfbfont_ft2.c:653: warning: cast to pointer from integer of different size
+#
+# Conditional build:
+%bcond_with multi # build Multi-application core (requires working /dev/fusion*)
+#
Summary: DirectFB - Hardware graphics acceleration
Summary(pl): DirectFB - Wspomaganie grafiki
Name: DirectFB
-Version: 0.9.21
+Version: 0.9.24
Release: 1
Epoch: 1
License: LGPL v2+
Group: Libraries
-Source0: http://www.directfb.org/download/DirectFB/%{name}-%{version}.tar.gz
-# Source0-md5: 22699a04f2f618b287aa0ae1b06045b5
-Source1: http://www.directfb.org/download/DirectFB-extra/DFBTutorials-0.5.0.tar.gz
+Source0: http://www.directfb.org/downloads/Core/%{name}-%{version}.tar.gz
+# Source0-md5: 1f4b56b20d4e6f5c6ceb15c1c4fd2ecd
+Source1: http://www.directfb.org/downloads/Extras/DFBTutorials-0.5.0.tar.gz
# Source1-md5: 13e443a64bddd68835b574045d9025e9
Patch0: %{name}-am.patch
Patch1: %{name}-pmake.patch
Patch2: %{name}-fix.patch
-# missing files taken from DirectFB CVS
-Patch3: %{name}-missing-files.patch
+Patch3: %{name}-sh.patch
+Patch4: %{name}-gcc4.patch
URL: http://www.directfb.org/
BuildRequires: SDL-devel
+BuildRequires: XFree86-devel
BuildRequires: autoconf >= 2.52
BuildRequires: automake
BuildRequires: freetype-devel >= 2.0.2
BuildRequires: libjpeg-devel >= 6b
BuildRequires: libpng-devel >= 1.0
BuildRequires: libtool
+BuildRequires: libvncserver-devel
+%{?with_multi:BuildRequires: linux-fusion-devel}
BuildRequires: sed >= 4.0
-BuildRequires: sysfsutils-devel
+BuildRequires: sysfsutils-devel >= 1.3.0-3
BuildRequires: zlib-devel >= 1.1.3
+%{?with_multi:Provides: DirectFB(multi)}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define dfbdir %{_libdir}/directfb-%{version}
+%define specflags -fno-strict-aliasing
+
+%ifarch %{ix86}
+# gcc running out of registers with -O0 in generic_mmx.h
+%define debugcflags -O1 -g
+%endif
+
%description
DirectFB hardware graphics acceleration - libraries.
%description core-sdl -l pl
Ten pakiet zawiera modu³ systemu SDL dla DirectFB.
+%package core-vnc
+Summary: VNC core system for DirectFB
+Summary(pl): System VNC dla DirectFB
+Group: Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description core-vnc
+This package contains VNC core system module for DirectFB.
+
+%description core-vnc -l pl
+Ten pakiet zawiera modu³ systemu VNC dla DirectFB.
+
+%package core-x11
+Summary: X11 core system for DirectFB
+Summary(pl): System X11 dla DirectFB
+Group: Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description core-x11
+This package contains X11 core system module for DirectFB.
+
+%description core-x11 -l pl
+Ten pakiet zawiera modu³ systemu X11 dla DirectFB.
+
%package font-ft2
Summary: FreeType2 font provider for DirectFB
Summary(pl): DirectFB - wtyczka dostarczaj±ca fonty poprzez FreeType2
%description image-png -l pl
Ten pakiet zawiera wtyczkê dla DirectFB dostarczaj±c± grafikê PNG.
+%package input-elo
+Summary: ELO touchscreen input driver for DirectFB
+Summary(pl): Sterownik wej¶ciowy do touchscreenów ELO dla DirectFB
+Group: Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description input-elo
+ELO touchscreen input driver for DirectFB.
+
+NOTE: currently it uses hardcoded /dev/ttyS0 port, so don't install it
+unless you don't have ELO device connected to this port. It can mess
+with other devices connected to this port (mouse, modem etc.).
+
+%description input-elo -l pl
+Sterownik wej¶ciowy do touchscreenów ELO dla DirectFB.
+
+UWAGA: aktualnie u¿ywa zakodowanego na sta³e portu /dev/ttyS0, wiêc
+nie nale¿y go instalowaæ, je¶li urz±dzenie ELO nie jest pod³±czone do
+tego portu. Sterownik mo¿e utrudniæ wspó³pracê z innymi urz±dzeniami
+pod³±czonymi do /dev/ttyS0 (jak mysz, modem itp.).
+
+%package input-mutouch
+Summary: MuTouch touchscreen input driver for DirectFB
+Summary(pl): Sterownik wej¶ciowy do touchscreenów MuTouch dla DirectFB
+Group: Libraries
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description input-mutouch
+MuTouch touchscreen input driver for DirectFB.
+
+NOTE: it needs "mut-device" setting in directfbrc in order to work.
+
+%description input-mutouch -l pl
+Sterownik wej¶ciowy do touchscreenów MuTouch dla DirectFB.
+
+UWAGA: do dzia³ania potrzebuje ustawienia "mut-device" w directfbrc.
+
%prep
%setup -q -a1
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
-
-sed -i -e 's@sysfs/libsysfs.h@libsysfs.h@' \
- configure.in gfxdrivers/{nvidia/nvidia.c,matrox/matrox_maven.c}
+%patch4 -p1
%build
%{__libtoolize}
--enable-elo-input \
--enable-fast-install \
--enable-linux-input \
+ %{?with_multi:--enable-multi} \
--enable-mutouch \
--enable-sdl \
--enable-shared \
--enable-unique \
--enable-video4linux2 \
--enable-voodoo \
+ --enable-x11 \
--enable-zlib \
-%ifarch %{ix86}
+%ifarch %{ix86} %{x8664}
%ifnarch i386 i486
--enable-mmx \
%endif
%endif
%endif
-%{__make}
+%{__make} \
+ X11_LIBS=%{_prefix}/X11R6/%{_lib}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+install -d $RPM_BUILD_ROOT{%{_examplesdir}/%{name}-%{version},%{_sysconfdir}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
cp -rf DFBTutorials* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
-# dbfdump and dfbg require multi-application core - useless now
-rm -f $RPM_BUILD_ROOT{%{_bindir}/{dfbdump,dfbg},%{_mandir}/man1/dfbg.1}
+touch $RPM_BUILD_ROOT%{_sysconfdir}/directfbrc
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
+%doc AUTHORS ChangeLog NEWS README TODO
+%attr(755,root,root) %{_bindir}/dfbdump
+%attr(755,root,root) %{_bindir}/dfbg
%attr(755,root,root) %{_bindir}/dfbinfo
%attr(755,root,root) %{_bindir}/dfblayer
%attr(755,root,root) %{_bindir}/dfbproxy
%dir %{dfbdir}/gfxdrivers
%attr(755,root,root) %{dfbdir}/gfxdrivers/*.so
%dir %{dfbdir}/inputdrivers
-%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_elo.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_joystick.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_keyboard.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_linux_input.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_lirc.so
-%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_mutouch.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_ps2mouse.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_serialmouse.so
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_sonypi.so
%dir %{dfbdir}/wm
%attr(755,root,root) %{dfbdir}/wm/*.so
%{_datadir}/directfb-%{version}
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/directfbrc
+%{_mandir}/man1/dfbg.1*
%{_mandir}/man5/*
%files devel
%files doc
%defattr(644,root,root,755)
-%doc docs/html/*
+%doc docs/html/*.{html,png}
%{_examplesdir}/%{name}-%{version}
%files core-sdl
%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_sdlinput.so
%attr(755,root,root) %{dfbdir}/systems/libdirectfb_sdl.so
+%files core-vnc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_vncinput.so
+%attr(755,root,root) %{dfbdir}/systems/libdirectfb_vnc.so
+
+%files core-x11
+%defattr(644,root,root,755)
+%doc systems/x11/README
+%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_x11input.so
+%attr(755,root,root) %{dfbdir}/systems/libdirectfb_x11.so
+
%files font-ft2
%defattr(644,root,root,755)
%attr(755,root,root) %{dfbdir}/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
%files image-png
%defattr(644,root,root,755)
%attr(755,root,root) %{dfbdir}/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
+
+%files input-elo
+%defattr(644,root,root,755)
+%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_elo.so
+
+%files input-mutouch
+%defattr(644,root,root,755)
+%attr(755,root,root) %{dfbdir}/inputdrivers/libdirectfb_mutouch.so