Hello community,
here is the log from the commit of package DirectFB for openSUSE:Factory checked in at 2015-04-02 16:02:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/DirectFB (Old)
and /work/SRC/openSUSE:Factory/.DirectFB.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "DirectFB"
Changes:
--------
--- /work/SRC/openSUSE:Factory/DirectFB/DirectFB.changes 2015-02-06 10:45:20.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.DirectFB.new/DirectFB.changes 2015-04-02 16:02:14.000000000 +0200
@@ -1,0 +2,19 @@
+Mon Mar 30 06:29:54 UTC 2015 - pgajdos@suse.com
+
+- security update
+ * CVE-2014-2977 [bnc#878345]
+ + DirectFB-CVE-2014-2977.patch
+ * CVE-2014-2978 [bnc#878349]
+ + DirectFB-CVE-2014-2978.patch
+
+-------------------------------------------------------------------
+Mon Mar 23 08:54:48 UTC 2015 - pgajdos@suse.com
+
+- Update to version 1.7.7
+ * Core: allow access to core part data during its initialisation
+ * Client: Create extended Graphics State object when needed for
+ later usage
+ * Core: Cascaded interlock in favor of optimization.
+ * libfusion: deallocate call tls properly
+
+-------------------------------------------------------------------
Old:
----
DirectFB-1.7.6.tar.gz
New:
----
DirectFB-1.7.7.tar.gz
DirectFB-CVE-2014-2977.patch
DirectFB-CVE-2014-2978.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ DirectFB.spec ++++++
--- /var/tmp/diff_new_pack.rSEdHw/_old 2015-04-02 16:02:15.000000000 +0200
+++ /var/tmp/diff_new_pack.rSEdHw/_new 2015-04-02 16:02:15.000000000 +0200
@@ -16,12 +16,12 @@
#
-%global directfbdir %{_libdir}/directfb-1.7-6
-%global libdirectfb libdirectfb-1_7-6
-%global libdfb lib++dfb-1_7-6
+%global directfbdir %{_libdir}/directfb-1.7-7
+%global libdirectfb libdirectfb-1_7-7
+%global libdfb lib++dfb-1_7-7
Name: DirectFB
-Version: 1.7.6
+Version: 1.7.7
Release: 0
Summary: Graphics Library for Framebuffer Devices
License: LGPL-2.1+
@@ -60,6 +60,8 @@
Patch20: DirectFB-setregion.patch
# PATCH-FIX_OPENSUSE drop test_foo as it does not build in 1.7, mvyskocil@suse.com
Patch21: DirectFB-1.7.3-drop-test_foo.patch
+Patch22: DirectFB-CVE-2014-2977.patch
+Patch23: DirectFB-CVE-2014-2978.patch
BuildRequires: LibVNCServer-devel
%if 0%{?suse_version} > 1220
# Mesa-lib* available only in 12.2+
@@ -221,6 +223,8 @@
%patch19 -p1 -b .fusionID
%patch20 -p1
%patch21 -p1
+%patch22
+%patch23
#Disable ppc asm since compilation fails (and it seems better to use glibc)
sed -i.noppcasm -e 's/want_ppcasm=yes/want_ppcasm=no/'g configure.in configure
++++++ DirectFB-1.7.6.tar.gz -> DirectFB-1.7.7.tar.gz ++++++
++++ 1694 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/ChangeLog new/DirectFB-1.7.7/ChangeLog
--- old/DirectFB-1.7.6/ChangeLog 2014-08-14 09:17:47.000000000 +0200
+++ new/DirectFB-1.7.7/ChangeLog 2015-02-09 18:16:46.000000000 +0100
@@ -1,3 +1,81 @@
+commit 56ba4031a184031c1149f1e0f73214509e9c0293
+Author: Denis Oliver Kropp
+Date: Mon Nov 17 12:19:49 2014 +0100
+
+ Core: allow access to core part data during its initialisation
+
+commit 0b0c22d6a1ddfa894b1240cd375931934f033e60
+Author: Denis Oliver Kropp
+Date: Fri Oct 31 13:53:07 2014 +0100
+
+ configure: Evaluate module directory to show final directory
+
+commit 6fece410a5b946f1c0c017a66ea5884c7747dbcf
+Author: Denis Oliver Kropp
+Date: Fri Oct 31 13:51:13 2014 +0100
+
+ configure: Change --with-sysroot option to --with-runtime-sysroot to avoid conflict with newer autoconf
+
+commit 549eb402b3141fb98c64f31bf84d116e2234fbe0
+Author: Denis Oliver Kropp
+Date: Sat Sep 20 15:35:10 2014 +0200
+
+ mknames: add typecast to avoid errors with C++
+
+commit 4d422fbdf6add491f20164b8b33a0b7b9064b06c
+Author: Denis Oliver Kropp
+Date: Sun Feb 1 10:15:13 2015 +0100
+
+ Client: Create extended Graphics State object when needed for later usage
+
+commit 3a960cc384f97ea07e72385b442d6f65583a40cf
+Author: Denis Oliver Kropp
+Date: Sun Feb 1 10:18:12 2015 +0100
+
+ ignore
+
+commit 618c81557d92e75351303c95aa086dd9657d7170
+Author: Denis Oliver Kropp
+Date: Sun Feb 1 10:16:23 2015 +0100
+
+ debug: add some timing info to surface interface construct / destruct
+
+commit e5c8ab0e391ef139b9efc143053994a0bb34c409
+Author: Denis Oliver Kropp
+Date: Sun Feb 1 10:04:27 2015 +0100
+
+ Core: Cascaded interlock in favor of optimization.
+
+commit 6f09d498b57d3559ba22e0d043664303a0ee1c37
+Author: Denis Oliver Kropp
+Date: Sun Feb 1 10:01:24 2015 +0100
+
+ libfusion: deallocate call tls properly
+
+commit 36566929135390deb249c89ed657c057942a58fc
+Author: Denis Oliver Kropp
+Date: Sun Feb 1 09:58:42 2015 +0100
+
+ 1.7.7
+
+commit 2f4f78cc43fa7e6ee8411c5f284aa533ad003729
+Author: Denis Oliver Kropp
+Date: Sun Feb 1 09:56:19 2015 +0100
+
+ 2015
+
+commit 09d8d058ced264a3a7fd4041bbc4c95893d42691
+Author: Denis Oliver Kropp
+Date: Tue Nov 4 08:38:19 2014 +0100
+
+ Core: When creating the layer surface also pass along the DSCAPS_GL flag.
+
+commit e2221b1dcad2c44f57b8f8e962c3e0816f393b94
+Author: Denis Oliver Kropp
+Date: Thu Aug 14 09:21:39 2014 +0200
+
+ directfb 1.7.6
+
commit 4b4ca723b8dc7d83b8cd8c709f4b0d5e7a96e06b
Author: Denis Oliver Kropp
Date: Thu Aug 14 09:17:21 2014 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/configure.in new/DirectFB-1.7.7/configure.in
--- old/DirectFB-1.7.6/configure.in 2014-08-14 09:19:24.000000000 +0200
+++ new/DirectFB-1.7.7/configure.in 2015-02-09 18:16:46.000000000 +0100
@@ -16,7 +16,7 @@
#
DIRECTFB_MAJOR_VERSION=1
DIRECTFB_MINOR_VERSION=7
-DIRECTFB_MICRO_VERSION=6
+DIRECTFB_MICRO_VERSION=7
DIRECTFB_INTERFACE_AGE=0
DIRECTFB_BINARY_AGE=0
DIRECTFB_VERSION=$DIRECTFB_MAJOR_VERSION.$DIRECTFB_MINOR_VERSION.$DIRECTFB_MICRO_VERSION
@@ -2624,8 +2624,8 @@
# Sysroot used for runtime module loading, etc.
-AC_ARG_WITH(sysroot,
- AC_HELP_STRING([--with-sysroot=DIR],
+AC_ARG_WITH(runtime-sysroot,
+ AC_HELP_STRING([--with-runtime-sysroot=DIR],
[search for lib/share et al within DIR at runtime,]
[e.g. when loading modules]),
[RUNTIME_SYSROOT="$withval"], [RUNTIME_SYSROOT=])
@@ -2981,6 +2981,10 @@
], [chmod +x directfb-config])
+eval eval_moduledir=$MODULEDIR
+eval eval_moduledir=$eval_moduledir
+eval eval_moduledir=$eval_moduledir
+
AC_MSG_RESULT([
Build options:
@@ -2990,7 +2994,7 @@
Config files in $SYSCONFDIR
Build shared libs $enable_shared
Build static libs $enable_static
- Module directory $MODULEDIR
+ Module directory $eval_moduledir
CC $CC
CXX $CXX
LD $LD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/directfb.spec new/DirectFB-1.7.7/directfb.spec
--- old/DirectFB-1.7.6/directfb.spec 2014-08-14 09:22:23.000000000 +0200
+++ new/DirectFB-1.7.7/directfb.spec 2015-02-11 15:44:46.000000000 +0100
@@ -1,5 +1,5 @@
%define name directfb
-%define version 1.7.6
+%define version 1.7.7
%define oname DirectFB
%define libname lib%name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/include/directfb_keynames.h new/DirectFB-1.7.7/include/directfb_keynames.h
--- old/DirectFB-1.7.6/include/directfb_keynames.h 2014-08-14 09:22:59.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_keynames.h 2015-02-11 15:44:56.000000000 +0100
@@ -517,7 +517,7 @@
{ DIKS_CUSTOM253, "CUSTOM253" }, \
{ DIKS_CUSTOM254, "CUSTOM254" }, \
{ DIKS_CUSTOM255, "CUSTOM255" }, \
- { DIKS_NULL, "NULL" } \
+ { (DFBInputDeviceKeySymbol) DIKS_NULL, "NULL" } \
};
@@ -643,7 +643,7 @@
{ DIKI_KP_7, "KP_7" }, \
{ DIKI_KP_8, "KP_8" }, \
{ DIKI_KP_9, "KP_9" }, \
- { DIKI_UNKNOWN, "UNKNOWN" } \
+ { (DFBInputDeviceKeyIdentifier) DIKI_UNKNOWN, "UNKNOWN" } \
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/include/directfb_strings.h new/DirectFB-1.7.7/include/directfb_strings.h
--- old/DirectFB-1.7.6/include/directfb_strings.h 2014-08-14 09:22:59.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_strings.h 2015-02-11 15:44:56.000000000 +0100
@@ -51,7 +51,7 @@
{ DSPF_LUT4, "LUT4" }, \
{ DSPF_ALUT8, "ALUT8" }, \
{ DSPF_LUT1, "LUT1" }, \
- { DSPF_UNKNOWN, "UNKNOWN" } \
+ { (DFBSurfacePixelFormat) DSPF_UNKNOWN, "UNKNOWN" } \
};
@@ -74,7 +74,7 @@
{ DSPD_ADD, "ADD" }, \
{ DSPD_XOR, "XOR" }, \
{ DSPD_DST, "DST" }, \
- { DSPD_NONE, "NONE" } \
+ { (DFBSurfacePorterDuffRule) DSPD_NONE, "NONE" } \
};
@@ -100,7 +100,7 @@
{ DSCAPS_STEREO, "STEREO" }, \
{ DSCAPS_SHARED, "SHARED" }, \
{ DSCAPS_ROTATED, "ROTATED" }, \
- { DSCAPS_NONE, "NONE" } \
+ { (DFBSurfaceCapabilities) DSCAPS_NONE, "NONE" } \
};
@@ -114,7 +114,7 @@
{ DSCS_BT601, "BT601" }, \
{ DSCS_BT601_FULLRANGE, "BT601_FULLRANGE" }, \
{ DSCS_BT709, "BT709" }, \
- { DSCS_UNKNOWN, "UNKNOWN" } \
+ { (DFBSurfaceColorSpace) DSCS_UNKNOWN, "UNKNOWN" } \
};
@@ -129,7 +129,7 @@
{ DIDTF_JOYSTICK, "JOYSTICK" }, \
{ DIDTF_REMOTE, "REMOTE" }, \
{ DIDTF_VIRTUAL, "VIRTUAL" }, \
- { DIDTF_NONE, "NONE" } \
+ { (DFBInputDeviceTypeFlags) DIDTF_NONE, "NONE" } \
};
@@ -145,7 +145,7 @@
{ DSDRAW_DST_PREMULTIPLY, "DST_PREMULTIPLY" }, \
{ DSDRAW_DEMULTIPLY, "DEMULTIPLY" }, \
{ DSDRAW_XOR, "XOR" }, \
- { DSDRAW_NOFX, "NOFX" } \
+ { (DFBSurfaceDrawingFlags) DSDRAW_NOFX, "NOFX" } \
};
@@ -180,7 +180,7 @@
{ DSBLIT_ROP, "ROP" }, \
{ DSBLIT_SRC_COLORMATRIX, "SRC_COLORMATRIX" }, \
{ DSBLIT_SRC_CONVOLUTION, "SRC_CONVOLUTION" }, \
- { DSBLIT_NOFX, "NOFX" } \
+ { (DFBSurfaceBlittingFlags) DSBLIT_NOFX, "NOFX" } \
};
@@ -201,7 +201,7 @@
{ DSFLIP_SWAP, "SWAP" }, \
{ DSFLIP_UPDATE, "UPDATE" }, \
{ DSFLIP_WAITFORSYNC, "WAITFORSYNC" }, \
- { DSFLIP_NONE, "NONE" } \
+ { (DFBSurfaceFlipFlags) DSFLIP_NONE, "NONE" } \
};
@@ -222,7 +222,7 @@
{ DSBF_DESTCOLOR, "DESTCOLOR" }, \
{ DSBF_INVDESTCOLOR, "INVDESTCOLOR" }, \
{ DSBF_SRCALPHASAT, "SRCALPHASAT" }, \
- { DSBF_UNKNOWN, "UNKNOWN" } \
+ { (DFBSurfaceBlendFunction) DSBF_UNKNOWN, "UNKNOWN" } \
};
@@ -235,7 +235,7 @@
{ DICAPS_KEYS, "KEYS" }, \
{ DICAPS_AXES, "AXES" }, \
{ DICAPS_BUTTONS, "BUTTONS" }, \
- { DICAPS_NONE, "NONE" } \
+ { (DFBInputDeviceCapabilities) DICAPS_NONE, "NONE" } \
};
@@ -249,7 +249,7 @@
{ DLTF_VIDEO, "VIDEO" }, \
{ DLTF_STILL_PICTURE, "STILL_PICTURE" }, \
{ DLTF_BACKGROUND, "BACKGROUND" }, \
- { DLTF_NONE, "NONE" } \
+ { (DFBDisplayLayerTypeFlags) DLTF_NONE, "NONE" } \
};
@@ -282,7 +282,7 @@
{ DLCAPS_CLIP_REGIONS, "CLIP_REGIONS" }, \
{ DLCAPS_LR_MONO, "LR_MONO" }, \
{ DLCAPS_STEREO, "STEREO" }, \
- { DLCAPS_NONE, "NONE" } \
+ { (DFBDisplayLayerCapabilities) DLCAPS_NONE, "NONE" } \
};
@@ -297,7 +297,7 @@
{ DLBM_BACKSYSTEM, "BACKSYSTEM" }, \
{ DLBM_TRIPLE, "TRIPLE" }, \
{ DLBM_WINDOWS, "WINDOWS" }, \
- { DLBM_UNKNOWN, "UNKNOWN" } \
+ { (DFBDisplayLayerBufferMode) DLBM_UNKNOWN, "UNKNOWN" } \
};
@@ -317,7 +317,7 @@
{ DWCAPS_NOFOCUS, "NOFOCUS" }, \
{ DWCAPS_LR_MONO, "LR_MONO" }, \
{ DWCAPS_STEREO, "STEREO" }, \
- { DWCAPS_NONE, "NONE" } \
+ { (DFBWindowCapabilities) DWCAPS_NONE, "NONE" } \
};
@@ -337,7 +337,7 @@
{ DLOP_LR_MONO, "LR_MONO" }, \
{ DLOP_STEREO, "STEREO" }, \
{ DLOP_STEREO, "STEREO" }, \
- { DLOP_NONE, "NONE" } \
+ { (DFBDisplayLayerOptions) DLOP_NONE, "NONE" } \
};
@@ -363,7 +363,7 @@
{ DWOP_KEEP_ABOVE, "KEEP_ABOVE" }, \
{ DWOP_KEEP_UNDER, "KEEP_UNDER" }, \
{ DWOP_FOLLOW_BOUNDS, "FOLLOW_BOUNDS" }, \
- { DWOP_NONE, "NONE" } \
+ { (DFBWindowOptions) DWOP_NONE, "NONE" } \
};
@@ -378,7 +378,7 @@
{ DSCCAPS_MIXERS, "MIXERS" }, \
{ DSCCAPS_ENCODERS, "ENCODERS" }, \
{ DSCCAPS_OUTPUTS, "OUTPUTS" }, \
- { DSCCAPS_NONE, "NONE" } \
+ { (DFBScreenCapabilities) DSCCAPS_NONE, "NONE" } \
};
@@ -403,7 +403,7 @@
{ DSECAPS_RESOLUTION, "RESOLUTION" }, \
{ DSECAPS_FRAMING, "FRAMING" }, \
{ DSECAPS_ASPECT_RATIO, "ASPECT_RATIO" }, \
- { DSECAPS_NONE, "NONE" } \
+ { (DFBScreenEncoderCapabilities) DSECAPS_NONE, "NONE" } \
};
@@ -416,7 +416,7 @@
{ DSET_CRTC, "CRTC" }, \
{ DSET_TV, "TV" }, \
{ DSET_DIGITAL, "DIGITAL" }, \
- { DSET_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenEncoderType) DSET_UNKNOWN, "UNKNOWN" } \
};
@@ -438,7 +438,7 @@
{ DSETV_NTSC_M_JPN, "NTSC_M_JPN" }, \
{ DSETV_DIGITAL, "DIGITAL" }, \
{ DSETV_NTSC_443, "NTSC_443" }, \
- { DSETV_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenEncoderTVStandards) DSETV_UNKNOWN, "UNKNOWN" } \
};
@@ -454,7 +454,7 @@
{ DSOCAPS_CONNECTOR_SEL, "CONNECTOR_SEL" }, \
{ DSOCAPS_SLOW_BLANKING, "SLOW_BLANKING" }, \
{ DSOCAPS_RESOLUTION, "RESOLUTION" }, \
- { DSOCAPS_NONE, "NONE" } \
+ { (DFBScreenOutputCapabilities) DSOCAPS_NONE, "NONE" } \
};
@@ -472,7 +472,7 @@
{ DSOC_COMPONENT, "COMPONENT" }, \
{ DSOC_HDMI, "HDMI" }, \
{ DSOC_656, "656" }, \
- { DSOC_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenOutputConnectors) DSOC_UNKNOWN, "UNKNOWN" } \
};
@@ -489,7 +489,7 @@
{ DSOS_YCBCR, "YCBCR" }, \
{ DSOS_HDMI, "HDMI" }, \
{ DSOS_656, "656" }, \
- { DSOS_NONE, "NONE" } \
+ { (DFBScreenOutputSignals) DSOS_NONE, "NONE" } \
};
@@ -503,7 +503,7 @@
{ DSOSB_4x3, "4x3" }, \
{ DSOSB_FOLLOW, "FOLLOW" }, \
{ DSOSB_MONITOR, "MONITOR" }, \
- { DSOSB_OFF, "OFF" } \
+ { (DFBScreenOutputSlowBlankingSignals) DSOSB_OFF, "OFF" } \
};
@@ -536,7 +536,7 @@
{ DSOR_2560_1600, "2560_1600" }, \
{ DSOR_3840_2160, "3840_2160" }, \
{ DSOR_4096_2160, "4096_2160" }, \
- { DSOR_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenOutputResolution) DSOR_UNKNOWN, "UNKNOWN" } \
};
@@ -550,7 +550,7 @@
{ DSMCAPS_SUB_LEVEL, "SUB_LEVEL" }, \
{ DSMCAPS_SUB_LAYERS, "SUB_LAYERS" }, \
{ DSMCAPS_BACKGROUND, "BACKGROUND" }, \
- { DSMCAPS_NONE, "NONE" } \
+ { (DFBScreenMixerCapabilities) DSMCAPS_NONE, "NONE" } \
};
@@ -563,7 +563,7 @@
{ DSMT_FULL, "FULL" }, \
{ DSMT_SUB_LEVEL, "SUB_LEVEL" }, \
{ DSMT_SUB_LAYERS, "SUB_LAYERS" }, \
- { DSMT_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenMixerTree) DSMT_UNKNOWN, "UNKNOWN" } \
};
@@ -583,7 +583,7 @@
{ DSETP_RED, "RED" }, \
{ DSETP_BLUE, "BLUE" }, \
{ DSETP_BLACK, "BLACK" }, \
- { DSETP_OFF, "OFF" } \
+ { (DFBScreenEncoderTestPicture) DSETP_OFF, "OFF" } \
};
@@ -595,7 +595,7 @@
#define DirectFBScreenEncoderScanModeNames(Identifier) struct DFBScreenEncoderScanModeName Identifier[] = { \
{ DSESM_INTERLACED, "INTERLACED" }, \
{ DSESM_PROGRESSIVE, "PROGRESSIVE" }, \
- { DSESM_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenEncoderScanMode) DSESM_UNKNOWN, "UNKNOWN" } \
};
@@ -619,7 +619,7 @@
{ DSECONF_RESOLUTION, "RESOLUTION" }, \
{ DSECONF_FRAMING, "FRAMING" }, \
{ DSECONF_ASPECT_RATIO, "ASPECT_RATIO" }, \
- { DSECONF_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenEncoderConfigFlags) DSECONF_UNKNOWN, "UNKNOWN" } \
};
@@ -638,7 +638,7 @@
{ DSEF_30HZ, "30HZ" }, \
{ DSEF_24HZ, "24HZ" }, \
{ DSEF_23_976HZ, "23_976HZ" }, \
- { DSEF_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenEncoderFrequency) DSEF_UNKNOWN, "UNKNOWN" } \
};
@@ -653,7 +653,7 @@
{ DSEPF_STEREO_TOP_AND_BOTTOM, "STEREO_TOP_AND_BOTTOM" }, \
{ DSEPF_STEREO_FRAME_PACKING, "STEREO_FRAME_PACKING" }, \
{ DSEPF_STEREO_SIDE_BY_SIDE_FULL, "STEREO_SIDE_BY_SIDE_FULL" }, \
- { DSEPF_UNKNOWN, "UNKNOWN" } \
+ { (DFBScreenEncoderPictureFraming) DSEPF_UNKNOWN, "UNKNOWN" } \
};
@@ -677,7 +677,7 @@
{ DFXL_BLIT2, "BLIT2" }, \
{ DFXL_TILEBLIT, "TILEBLIT" }, \
{ DFXL_DRAWSTRING, "DRAWSTRING" }, \
- { DFXL_NONE, "NONE" } \
+ { (DFBAccelerationMask) DFXL_NONE, "NONE" } \
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/include/directfb_version.h new/DirectFB-1.7.7/include/directfb_version.h
--- old/DirectFB-1.7.6/include/directfb_version.h 2014-08-14 09:22:23.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_version.h 2015-02-11 15:44:46.000000000 +0100
@@ -31,7 +31,7 @@
#define DIRECTFB_MAJOR_VERSION (1)
#define DIRECTFB_MINOR_VERSION (7)
-#define DIRECTFB_MICRO_VERSION (6)
+#define DIRECTFB_MICRO_VERSION (7)
#define DIRECTFB_BINARY_AGE (0)
#define DIRECTFB_INTERFACE_AGE (0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/include/directfb_water_strings.h new/DirectFB-1.7.7/include/directfb_water_strings.h
--- old/DirectFB-1.7.6/include/directfb_water_strings.h 2014-08-14 09:22:59.000000000 +0200
+++ new/DirectFB-1.7.7/include/directfb_water_strings.h 2015-02-11 15:44:56.000000000 +0100
@@ -33,7 +33,7 @@
{ WET_QUAD_CURVE_STRIP, "QUAD_CURVE_STRIP" }, \
{ WET_CUBIC_CURVE, "CUBIC_CURVE" }, \
{ WET_CUBIC_CURVE_STRIP, "CUBIC_CURVE_STRIP" }, \
- { WET_UNKNOWN, "UNKNOWN" } \
+ { (WaterElementType) WET_UNKNOWN, "UNKNOWN" } \
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/lib/fusion/call.c new/DirectFB-1.7.7/lib/fusion/call.c
--- old/DirectFB-1.7.6/lib/fusion/call.c 2014-07-15 17:59:08.000000000 +0200
+++ new/DirectFB-1.7.7/lib/fusion/call.c 2015-02-01 10:01:44.000000000 +0100
@@ -79,14 +79,74 @@
static DirectTLS call_tls_key;
+DirectResult
+flush_calls( FusionWorld *world, int lock, CallTLS *call_tls )
+{
+ DirectResult ret = DR_OK;
+
+ D_DEBUG_AT( Fusion_Call, "%s( %p, lock %d )\n", __FUNCTION__, world, lock );
+
+ if (call_tls->bins_num > 0) {
+#if D_DEBUG_ENABLED
+ D_DEBUG_AT( Fusion_Call, " -> num %d, length %u\n", call_tls->bins_num, call_tls->bins_data_len );
+
+ if (direct_log_domain_check( &Fusion_Call )) {
+ int i;
+
+ for (i=0; ibins_num; i++) {
+ D_DEBUG_AT( Fusion_Call, " -> [%2d] call_id 0x%08x, call_arg %3d, length %3u, flasg 0x%08x\n", i,
+ call_tls->bins[i].call_id,
+ call_tls->bins[i].call_arg,
+ call_tls->bins[i].length,
+ call_tls->bins[i].flags );
+ }
+ }
+#endif
+
+ if (call_tls->dispatcher) {
+ D_DEBUG_AT( Fusion_Call, " -> I AM THE DISPATCHER, NOT FLUSHING\n" );
+ D_WARN("no flush in dispatcher");
+ return DR_OK;
+ }
+
+ call_tls->bins[call_tls->bins_num - 1].flags &= ~(FCEF_FOLLOW | FCEF_QUEUE);
+
+ while (ioctl( world->fusion_fd, FUSION_CALL_EXECUTE3, call_tls->bins )) {
+ switch (errno) {
+ case EINTR:
+ continue;
+ case EINVAL:
+ D_ERROR ("Fusion/Call: invalid call (id 0x%08x)\n", call_tls->bins[0].call_id);
+ ret = DR_INVARG;
+ break;
+ case EIDRM:
+ D_ERROR ("Fusion/Call: call got destroyed (id 0x%08x)\n", call_tls->bins[0].call_id);
+ ret = DR_DESTROYED;
+ break;
+ default:
+ break;
+ }
+
+ D_PERROR ("FUSION_CALL_EXECUTE3 (num %d, len %d)", call_tls->bins_num, call_tls->bins_data_len );
+
+ ret = DR_FAILURE;
+ break;
+ }
+
+ call_tls->bins_num = 0;
+ call_tls->bins_data_len = 0;
+ }
+
+ return ret;
+}
+
static void
call_tls_destroy( void *arg )
{
CallTLS *call_tls = arg;
-
D_MAGIC_ASSERT( call_tls, CallTLS );
- fusion_world_flush_calls( call_tls->world, 0 );
+ flush_calls( call_tls->world, 0, call_tls );
D_ASSUME( call_tls->bins_num == 0 );
@@ -600,65 +660,13 @@
DirectResult
fusion_world_flush_calls( FusionWorld *world, int lock )
{
- DirectResult ret = DR_OK;
- CallTLS *call_tls;
+ CallTLS *call_tls;
call_tls = Call_GetTLS( world );
D_DEBUG_AT( Fusion_Call, "%s( %p, lock %d )\n", __FUNCTION__, world, lock );
- if (call_tls->bins_num > 0) {
-#if D_DEBUG_ENABLED
- D_DEBUG_AT( Fusion_Call, " -> num %d, length %u\n", call_tls->bins_num, call_tls->bins_data_len );
-
- if (direct_log_domain_check( &Fusion_Call )) {
- int i;
-
- for (i=0; ibins_num; i++) {
- D_DEBUG_AT( Fusion_Call, " -> [%2d] call_id 0x%08x, call_arg %3d, length %3u, flasg 0x%08x\n", i,
- call_tls->bins[i].call_id,
- call_tls->bins[i].call_arg,
- call_tls->bins[i].length,
- call_tls->bins[i].flags );
- }
- }
-#endif
-
- if (call_tls->dispatcher) {
- D_DEBUG_AT( Fusion_Call, " -> I AM THE DISPATCHER, NOT FLUSHING\n" );
- D_WARN("no flush in dispatcher");
- return DR_OK;
- }
-
- call_tls->bins[call_tls->bins_num - 1].flags &= ~(FCEF_FOLLOW | FCEF_QUEUE);
-
- while (ioctl( world->fusion_fd, FUSION_CALL_EXECUTE3, call_tls->bins )) {
- switch (errno) {
- case EINTR:
- continue;
- case EINVAL:
- D_ERROR ("Fusion/Call: invalid call (id 0x%08x)\n", call_tls->bins[0].call_id);
- ret = DR_INVARG;
- break;
- case EIDRM:
- D_ERROR ("Fusion/Call: call got destroyed (id 0x%08x)\n", call_tls->bins[0].call_id);
- ret = DR_DESTROYED;
- break;
- default:
- break;
- }
-
- D_PERROR ("FUSION_CALL_EXECUTE3 (num %d, len %d)", call_tls->bins_num, call_tls->bins_data_len );
-
- ret = DR_FAILURE;
- break;
- }
-
- call_tls->bins_num = 0;
- call_tls->bins_data_len = 0;
- }
-
- return ret;
+ return flush_calls( world, lock, call_tls );
}
DirectResult
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/lib/fusiondale/fusiondale_version.h new/DirectFB-1.7.7/lib/fusiondale/fusiondale_version.h
--- old/DirectFB-1.7.6/lib/fusiondale/fusiondale_version.h 2014-08-14 09:22:23.000000000 +0200
+++ new/DirectFB-1.7.7/lib/fusiondale/fusiondale_version.h 2015-02-11 15:44:47.000000000 +0100
@@ -26,7 +26,7 @@
#define FUSIONDALE_MAJOR_VERSION (1)
#define FUSIONDALE_MINOR_VERSION (7)
-#define FUSIONDALE_MICRO_VERSION (6)
+#define FUSIONDALE_MICRO_VERSION (7)
#define FUSIONDALE_BINARY_AGE (0)
#define FUSIONDALE_INTERFACE_AGE (0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/lib/fusionsound/fusionsound_version.h new/DirectFB-1.7.7/lib/fusionsound/fusionsound_version.h
--- old/DirectFB-1.7.6/lib/fusionsound/fusionsound_version.h 2014-08-14 09:22:24.000000000 +0200
+++ new/DirectFB-1.7.7/lib/fusionsound/fusionsound_version.h 2015-02-11 15:44:47.000000000 +0100
@@ -30,7 +30,7 @@
#define FUSIONSOUND_MAJOR_VERSION (1)
#define FUSIONSOUND_MINOR_VERSION (7)
-#define FUSIONSOUND_MICRO_VERSION (6)
+#define FUSIONSOUND_MICRO_VERSION (7)
#define FUSIONSOUND_BINARY_AGE (0)
#define FUSIONSOUND_INTERFACE_AGE (0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/lib/sawman/sawman_strings.h new/DirectFB-1.7.7/lib/sawman/sawman_strings.h
--- old/DirectFB-1.7.6/lib/sawman/sawman_strings.h 2014-08-14 09:23:02.000000000 +0200
+++ new/DirectFB-1.7.7/lib/sawman/sawman_strings.h 2015-02-11 15:44:59.000000000 +0100
@@ -12,7 +12,7 @@
{ SWMPF_MASTER, "MASTER" }, \
{ SWMPF_MANAGER, "MANAGER" }, \
{ SWMPF_EXITING, "EXITING" }, \
- { SWMPF_NONE, "NONE" } \
+ { (SaWManProcessFlags) SWMPF_NONE, "NONE" } \
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/core/CoreGraphicsStateClient.cpp new/DirectFB-1.7.7/src/core/CoreGraphicsStateClient.cpp
--- old/DirectFB-1.7.6/src/core/CoreGraphicsStateClient.cpp 2014-08-14 09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/core/CoreGraphicsStateClient.cpp 2015-02-02 07:29:24.000000000 +0100
@@ -273,12 +273,14 @@
client( client ),
last_cookie(0)
{
- dfb_graphics_state_attach( client->gfx_state, CoreGraphicsStateClient_Reaction, this, &gfx_reaction );
+ if (client->gfx_state)
+ dfb_graphics_state_attach( client->gfx_state, CoreGraphicsStateClient_Reaction, this, &gfx_reaction );
}
virtual ~CoreGraphicsStateClientPrivate()
{
- dfb_graphics_state_detach( client->gfx_state, &gfx_reaction );
+ if (client->gfx_state)
+ dfb_graphics_state_detach( client->gfx_state, &gfx_reaction );
}
void handleDone( u32 cookie )
@@ -328,6 +330,22 @@
}
+static DFBResult
+CoreGraphicsStateClient_init_state( CoreGraphicsStateClient *client )
+{
+ DFBResult ret;
+
+ if (!client->gfx_state) {
+ ret = ::CoreDFB_CreateState( client->core, &client->gfx_state );
+ if (ret)
+ return ret;
+
+ D_DEBUG_AT( Core_GraphicsStateClient, " -> gfxstate id 0x%x\n", client->gfx_state->object.ref.multi.id );
+ }
+
+ return DFB_OK;
+}
+
DFBResult
CoreGraphicsStateClient_Init( CoreGraphicsStateClient *client,
CardState *state )
@@ -347,19 +365,21 @@
client->requestor = NULL;
client->throttle = NULL;
- ret = CoreDFB_CreateState( state->core, &client->gfx_state );
- if (ret)
- return ret;
-
- D_DEBUG_AT( Core_GraphicsStateClient, " -> gfxstate id 0x%x\n", client->gfx_state->object.ref.multi.id );
-
if (dfb_config->task_manager) {
if (dfb_config->call_nodirect) {
if (direct_thread_get_tid( direct_thread_self() ) == fusion_dispatcher_tid(state->core->world)) {
+ ret = CoreGraphicsStateClient_init_state( client );
+ if (ret)
+ return ret;
+
client->renderer = new DirectFB::Renderer( client->state, client->gfx_state );
}
}
else if (!fusion_config->secure_fusion || dfb_core_is_master( client->core )) {
+ ret = CoreGraphicsStateClient_init_state( client );
+ if (ret)
+ return ret;
+
client->renderer = new DirectFB::Renderer( client->state, client->gfx_state );
client->throttle = new ThrottleBlocking( *client->renderer );
client->renderer->SetThrottle( client->throttle );
@@ -370,6 +390,10 @@
!(!dfb_config->call_nodirect &&
(dfb_core_is_master( client->core ) || !fusion_config->secure_fusion)))
{
+ ret = CoreGraphicsStateClient_init_state( client );
+ if (ret)
+ return ret;
+
client->requestor = new DirectFB::IGraphicsState_Requestor( core_dfb, client->gfx_state );
}
@@ -388,7 +412,7 @@
void
CoreGraphicsStateClient_Deinit( CoreGraphicsStateClient *client )
{
- D_DEBUG_AT( Core_GraphicsStateClient, "%s( client %p, gfxstate id 0x%x )\n", __FUNCTION__, client, client->gfx_state->object.ref.multi.id );
+ D_DEBUG_AT( Core_GraphicsStateClient, "%s( client %p, gfxstate id 0x%x )\n", __FUNCTION__, client, client->gfx_state ? client->gfx_state->object.ref.multi.id : 0 );
D_MAGIC_ASSERT( client, CoreGraphicsStateClient );
@@ -412,7 +436,8 @@
delete (CoreGraphicsStateClientPrivate *) client->priv;
- dfb_graphics_state_unref( client->gfx_state );
+ if (client->gfx_state)
+ dfb_graphics_state_unref( client->gfx_state );
client_list.RemoveClient( client );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/core/CoreSurface_real.cpp new/DirectFB-1.7.7/src/core/CoreSurface_real.cpp
--- old/DirectFB-1.7.6/src/core/CoreSurface_real.cpp 2014-08-14 09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/core/CoreSurface_real.cpp 2015-02-01 20:36:12.000000000 +0100
@@ -161,14 +161,8 @@
CoreSurfaceAccessorID accessor,
CoreSurfaceAccessFlags access )
{
- int locks;
-
- locks = dfb_surface_allocation_locks( allocation );
-
/*
* Manage access interlocks.
- *
- * SOON FIXME: Clearing flags only when not locked yet. Otherwise nested GPU/CPU locks are a problem.
*/
/* Software read/write access... */
if (accessor != CSAID_GPU) {
@@ -180,13 +174,11 @@
/* Software read access after hardware write requires flush of the (bus) read cache. */
dfb_gfxcard_flush_read_cache();
- if (!locks) {
- /* ...clear hardware write access. */
- allocation->accessed[CSAID_GPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_WRITE);
+ /* ...clear hardware write access. */
+ allocation->accessed[CSAID_GPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_WRITE);
- /* ...clear hardware read access (to avoid syncing twice). */
- allocation->accessed[CSAID_GPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
- }
+ /* ...clear hardware read access (to avoid syncing twice). */
+ allocation->accessed[CSAID_GPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
}
/* Software write access... */
@@ -197,8 +189,7 @@
dfb_gfxcard_wait_serial( &allocation->gfx_serial );
/* ...clear hardware read access. */
- if (!locks)
- allocation->accessed[CSAID_GPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
+ allocation->accessed[CSAID_GPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_GPU] & ~CSAF_READ);
}
}
}
@@ -218,8 +209,7 @@
dfb_gfxcard_flush_texture_cache();
/* ...clear software read and write access. */
- if (!locks)
- allocation->accessed[CSAID_CPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_CPU] & ~(CSAF_READ | CSAF_WRITE));
+ allocation->accessed[CSAID_CPU] = (CoreSurfaceAccessFlags)(allocation->accessed[CSAID_CPU] & ~(CSAF_READ | CSAF_WRITE));
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/core/core_parts.c new/DirectFB-1.7.7/src/core/core_parts.c
--- old/DirectFB-1.7.6/src/core/core_parts.c 2013-12-19 01:16:24.000000000 +0100
+++ new/DirectFB-1.7.7/src/core/core_parts.c 2015-02-09 18:16:46.000000000 +0100
@@ -73,6 +73,9 @@
if (core_part->size_shared)
shared = SHCALLOC( pool, 1, core_part->size_shared );
+ core_part->data_local = local;
+ core_part->data_shared = shared;
+
ret = core_part->Initialize( core, local, shared );
if (ret) {
D_ERROR( "DirectFB/Core: Could not initialize '%s' core!\n"
@@ -85,14 +88,15 @@
if (local)
D_FREE( local );
+ core_part->data_local = NULL;
+ core_part->data_shared = NULL;
+
return ret;
}
if (shared)
core_arena_add_shared_field( core, core_part->name, shared );
- core_part->data_local = local;
- core_part->data_shared = shared;
core_part->initialized = true;
return DFB_OK;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/core/core_strings.h new/DirectFB-1.7.7/src/core/core_strings.h
--- old/DirectFB-1.7.6/src/core/core_strings.h 2014-08-14 09:23:01.000000000 +0200
+++ new/DirectFB-1.7.7/src/core/core_strings.h 2015-02-11 15:44:58.000000000 +0100
@@ -17,7 +17,7 @@
{ CSTF_INTERNAL, "INTERNAL" }, \
{ CSTF_EXTERNAL, "EXTERNAL" }, \
{ CSTF_PREALLOCATED, "PREALLOCATED" }, \
- { CSTF_NONE, "NONE" } \
+ { (CoreSurfaceTypeFlags) CSTF_NONE, "NONE" } \
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/core/layer_context.c new/DirectFB-1.7.7/src/core/layer_context.c
--- old/DirectFB-1.7.6/src/core/layer_context.c 2014-08-14 09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/core/layer_context.c 2015-02-01 20:36:12.000000000 +0100
@@ -1851,7 +1851,8 @@
/* Add available surface capabilities. */
caps |= config->surface_caps & (DSCAPS_INTERLACED |
DSCAPS_SEPARATED |
- DSCAPS_PREMULTIPLIED);
+ DSCAPS_PREMULTIPLIED |
+ DSCAPS_GL);
scon.flags = CSCONF_SIZE | CSCONF_FORMAT | CSCONF_COLORSPACE | CSCONF_CAPS;
scon.size.w = config->width;
@@ -1929,7 +1930,7 @@
sconfig.flags = CSCONF_SIZE | CSCONF_FORMAT | CSCONF_COLORSPACE | CSCONF_CAPS;
sconfig.caps = surface->config.caps & ~(DSCAPS_FLIPPING | DSCAPS_INTERLACED |
- DSCAPS_SEPARATED | DSCAPS_PREMULTIPLIED |
+ DSCAPS_SEPARATED | DSCAPS_PREMULTIPLIED |
DSCAPS_ROTATED | DSCAPS_STEREO);
switch (config->buffermode) {
@@ -1956,7 +1957,8 @@
/* Add available surface capabilities. */
sconfig.caps |= config->surface_caps & (DSCAPS_INTERLACED |
DSCAPS_SEPARATED |
- DSCAPS_PREMULTIPLIED);
+ DSCAPS_PREMULTIPLIED |
+ DSCAPS_GL);
if (config->options & DLOP_DEINTERLACING)
sconfig.caps |= DSCAPS_INTERLACED;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/core/surface_pool.c new/DirectFB-1.7.7/src/core/surface_pool.c
--- old/DirectFB-1.7.6/src/core/surface_pool.c 2014-08-14 09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/core/surface_pool.c 2015-02-09 18:16:46.000000000 +0100
@@ -1184,7 +1184,9 @@
D_ASSERT( callback != NULL );
fusion_vector_foreach (allocation, i, pool->allocs) {
- if (callback( allocation, ctx ) == DFENUM_CANCEL)
+ D_MAGIC_ASSERT( allocation, CoreSurfaceAllocation );
+
+ if (allocation->data && callback( allocation, ctx ) == DFENUM_CANCEL)
break;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/directfb.c new/DirectFB-1.7.7/src/directfb.c
--- old/DirectFB-1.7.6/src/directfb.c 2014-07-15 08:54:58.000000000 +0200
+++ new/DirectFB-1.7.7/src/directfb.c 2015-02-01 20:36:12.000000000 +0100
@@ -1,6 +1,6 @@
/*
- (c) Copyright 2012-2013 DirectFB integrated media GmbH
- (c) Copyright 2001-2013 The world wide DirectFB Open Source Community (directfb.org)
+ (c) Copyright 2012-2015 DirectFB integrated media GmbH
+ (c) Copyright 2001-2015 The world wide DirectFB Open Source Community (directfb.org)
(c) Copyright 2000-2004 Convergence (integrated media) GmbH
All rights reserved.
@@ -203,9 +203,9 @@
if ( !(direct_config->quiet & DMT_BANNER) && dfb_config->banner) {
direct_log_printf( NULL,
"\n"
- " ~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB " DIRECTFB_VERSION DIRECTFB_VERSION_VENDOR " |~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
- " (c) 2012-2013 DirectFB integrated media GmbH\n"
- " (c) 2001-2013 The world wide DirectFB Open Source Community\n"
+ " ~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB " DIRECTFB_VERSION DIRECTFB_VERSION_VENDOR " |~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
+ " (c) 2012-2015 DirectFB integrated media GmbH\n"
+ " (c) 2001-2015 The world wide DirectFB Open Source Community\n"
" (c) 2000-2004 Convergence (integrated media) GmbH\n"
" ----------------------------------------------------------------\n"
"\n" );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/display/idirectfbsurface.c new/DirectFB-1.7.7/src/display/idirectfbsurface.c
--- old/DirectFB-1.7.6/src/display/idirectfbsurface.c 2014-08-14 09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/src/display/idirectfbsurface.c 2015-02-01 20:45:25.000000000 +0100
@@ -155,6 +155,8 @@
D_ASSERT( data != NULL );
D_ASSERT( data->children_data == NULL );
+ D_DEBUG_AT( Surface, " -> flushing graphics state...\n" );
+
if (data->memory_permissions_count) {
// FIXME: currently just enough for df_dok
CoreGraphicsStateClient_FlushCurrent( 1 );
@@ -166,8 +168,11 @@
else
CoreGraphicsStateClient_FlushCurrent( 0 );
- if (data->surface_client)
+ if (data->surface_client) {
+ D_DEBUG_AT( Surface, " -> releasing surface client...\n" );
+
dfb_surface_client_unref( data->surface_client );
+ }
parent = data->parent;
if (parent) {
@@ -199,12 +204,20 @@
dfb_state_destroy( &data->state );
- if (data->font)
+ if (data->font) {
+ D_DEBUG_AT( Surface, " -> releasing font...\n" );
+
data->font->Release( data->font );
+ }
if (data->surface) {
- if (data->locked)
+ if (data->locked) {
+ D_DEBUG_AT( Surface, " -> unlocking buffer...\n" );
+
dfb_surface_unlock_buffer( data->surface, &data->lock );
+ }
+
+ D_DEBUG_AT( Surface, " -> releasing surface...\n" );
dfb_surface_unref( data->surface );
}
@@ -218,8 +231,13 @@
DIRECT_DEALLOCATE_INTERFACE( thiz );
- if (parent)
+ if (parent) {
+ D_DEBUG_AT( Surface, " -> releasing parent...\n" );
+
parent->Release( parent );
+ }
+
+ D_DEBUG_AT( Surface, " -> done.\n" );
}
static DirectResult
@@ -2556,6 +2574,8 @@
return ret;
}
+ D_ASSERT( num <= bytes );
+
/* Calculate string width. */
for (i=0; isrc_eye = DSSE_LEFT;
+ D_DEBUG_AT( Surface, " -> initializing CoreGraphicsStateClient...\n" );
+
ret = CoreGraphicsStateClient_Init( &data->state_client, &data->state );
if (ret)
return ret; // FIXME: deinit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/gfx/generic/generic_blit.c new/DirectFB-1.7.7/src/gfx/generic/generic_blit.c
--- old/DirectFB-1.7.6/src/gfx/generic/generic_blit.c 2013-12-19 01:16:24.000000000 +0100
+++ new/DirectFB-1.7.7/src/gfx/generic/generic_blit.c 2015-02-11 14:32:14.000000000 +0100
@@ -141,13 +141,17 @@
gfxs->Astep = gfxs->Bstep = 1;
- int mask_x = 0;
- int mask_y = 0;
+ int mask_x = rect->x;
+ int mask_y = rect->y;
int mask_h = gfxs->mask_height;
- if ((state->blittingflags & (DSBLIT_SRC_MASK_ALPHA | DSBLIT_SRC_MASK_COLOR)) && (state->src_mask_flags & DSMF_STENCIL)) {
- mask_x = state->src_mask_offset.x;
- mask_y = state->src_mask_offset.y;
+ if (state->blittingflags & (DSBLIT_SRC_MASK_ALPHA | DSBLIT_SRC_MASK_COLOR)) {
+ if (state->src_mask_flags & DSMF_STENCIL) {
+ mask_x = 0;
+ mask_y = 0;
+ }
+ mask_x += state->src_mask_offset.x;
+ mask_y += state->src_mask_offset.y;
}
if (rotflip_blittingflags == (DSBLIT_FLIP_HORIZONTAL | DSBLIT_FLIP_VERTICAL)) { // 180 deg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/src/media/idirectfbfont.c new/DirectFB-1.7.7/src/media/idirectfbfont.c
--- old/DirectFB-1.7.6/src/media/idirectfbfont.c 2013-12-19 01:16:24.000000000 +0100
+++ new/DirectFB-1.7.7/src/media/idirectfbfont.c 2015-02-01 20:45:08.000000000 +0100
@@ -316,6 +316,8 @@
return ret;
}
+ D_ASSERT( num <= bytes );
+
for (i=0; i D_ARRAY_SIZE(dfb_config->layers)) {
+ if (id < 0 || id >= D_ARRAY_SIZE(dfb_config->layers)) {
D_ERROR("DirectFB/Config '%s': ID %d out of bounds!\n", name, id);
return DFB_INVARG;
}
@@ -2455,7 +2455,7 @@
DFBResult dfb_config_read( const char *filename )
{
DFBResult ret = DFB_OK;
- char line[400];
+ char line[400+1];
FILE *f;
char *slash = 0;
@@ -2491,7 +2491,7 @@
}
/* must copy filename for path, due to const'ness */
- char nwd[strlen(filename)];
+ char nwd[strlen(filename)+1];
strcpy( nwd, filename );
nwd[slash-filename] = 0;
if (chdir( nwd ))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/systems/fbdev/fbdev.c new/DirectFB-1.7.7/systems/fbdev/fbdev.c
--- old/DirectFB-1.7.6/systems/fbdev/fbdev.c 2013-12-19 01:16:24.000000000 +0100
+++ new/DirectFB-1.7.7/systems/fbdev/fbdev.c 2015-02-01 20:42:59.000000000 +0100
@@ -330,7 +330,7 @@
static void
dfb_fbdev_get_pci_info( FBDevShared *shared )
{
- char buf[512];
+ char buf[512+1];
int vendor = -1;
int model = -1;
FILE *fp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/systems/x11/primary.c new/DirectFB-1.7.7/systems/x11/primary.c
--- old/DirectFB-1.7.6/systems/x11/primary.c 2014-08-14 09:04:51.000000000 +0200
+++ new/DirectFB-1.7.7/systems/x11/primary.c 2015-02-09 18:16:46.000000000 +0100
@@ -764,8 +764,8 @@
update_screen( DFBX11 *x11, const DFBRectangle *clip, CoreSurfaceBufferLock *lock, XWindow *xw )
{
void *dst;
- u8 *srces[3];
- int pitches[3];
+ u8 *srces[3] = { 0 };
+ int pitches[3] = { 0 };
unsigned int offset = 0;
XImage *ximage;
CoreSurfaceAllocation *allocation;
@@ -874,7 +874,7 @@
dst = xw->virtualscreen + rect.x * xw->bpp + (rect.y + offset) * ximage->bytes_per_line;
- dfb_surface_get_data_offsets( allocation->surface, lock->addr, lock->pitch, rect.x, rect.y,
+ dfb_surface_get_data_offsets( &allocation->config, lock->addr, lock->pitch, rect.x, rect.y,
3, srces, pitches );
switch (xw->depth) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/DirectFB-1.7.6/tools/mknames.sh new/DirectFB-1.7.7/tools/mknames.sh
--- old/DirectFB-1.7.6/tools/mknames.sh 2013-07-17 04:49:59.000000000 +0200
+++ new/DirectFB-1.7.7/tools/mknames.sh 2015-02-09 18:16:46.000000000 +0100
@@ -28,6 +28,6 @@
egrep "^ +${PREFIX}_[0-9A-Za-z_]+[ ,]" $HEADER | grep -v ${PREFIX}_${NULL} | perl -p -e "s/^\\s*(${PREFIX}_)([\\w_]+)[ ,].*/ \\{ \\1\\2, \\\"\\2\\\" \\}, \\\\/"
cat << EOF
- { ${PREFIX}_${NULL}, "${NULL}" } \\
+ { ($ENUM) ${PREFIX}_${NULL}, "${NULL}" } \\
};
EOF
++++++ DirectFB-CVE-2014-2977.patch ++++++
Index: proxy/dispatcher/idirectfbsurface_dispatcher.c
===================================================================
--- proxy/dispatcher/idirectfbsurface_dispatcher.c.orig 2014-03-22 21:05:18.000000000 +0100
+++ proxy/dispatcher/idirectfbsurface_dispatcher.c 2015-03-23 13:07:30.840507533 +0100
@@ -1729,6 +1729,9 @@
VOODOO_PARSER_GET_INT( parser, pitch );
VOODOO_PARSER_END( parser );
+ /* CVE-2014-2977 */
+ DFB_RECTANGLE_ASSERT_IF( rect );
+
if (encoded) {
switch (encoded) {
case 2: {
++++++ DirectFB-CVE-2014-2978.patch ++++++
Index: proxy/dispatcher/idirectfbsurface_dispatcher.c
===================================================================
--- proxy/dispatcher/idirectfbsurface_dispatcher.c.orig 2014-03-22 21:05:18.000000000 +0100
+++ proxy/dispatcher/idirectfbsurface_dispatcher.c 2015-03-23 15:03:28.650053384 +0100
@@ -1629,6 +1629,11 @@
dst[out++] = RLE16_KEY;
}
else {
+ /* CVE-2014-2978 */
+ if (count > num - out ) {
+ break;
+ }
+
last = src[n++];
while (count >= 4) {
@@ -1679,6 +1684,11 @@
dst[out++] = RLE32_KEY;
}
else {
+ /* CVE-2014-2978 */
+ if (count > num - out ) {
+ break;
+ }
+
last = src[n++];
while (count >= 4) {