All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [pull request v2] Pull request for branch disko
@ 2011-07-20  5:11 Thomas Petazzoni
  2011-07-20  5:11 ` [Buildroot] [PATCH 1/3] scons: new package Thomas Petazzoni
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2011-07-20  5:11 UTC (permalink / raw)
  To: buildroot

Hello,

Here is a set of patches that add the disko multimedia framework and
its demonstration application. Since disko uses SCons as it builds
system, we also add a host-scons package.

Changes since v1:
 * Removed an UTF-8 only character from the disko/Config.in file

Regards,

Thomas

The following changes since commit ffe62f915dcbf62a840b40167f391127f0702aac:

  sysvinit: package name typo (2011-07-12 09:11:39 +0200)

are available in the git repository at:
  http://free-electrons.com/~thomas/buildroot.git disko

Thomas Petazzoni (3):
      scons: new package
      disko: new package
      disko-demos: new package

 package/multimedia/Config.in                       |    2 +
 package/multimedia/disko-demos/Config.in           |    8 ++
 .../disko-demos-1.8.0-fix-install-paths.patch      |   61 +++++++++++++++
 package/multimedia/disko-demos/disko-demos.mk      |   27 +++++++
 package/multimedia/disko/Config.in                 |   41 ++++++++++
 .../disko/disko-1.8.0-directfb-fix-errors.patch    |   82 ++++++++++++++++++++
 .../disko/disko-1.8.0-fixup-pkgconfig.patch        |   22 +++++
 package/multimedia/disko/disko.mk                  |   57 ++++++++++++++
 package/scons/scons.mk                             |   13 +++
 9 files changed, 313 insertions(+), 0 deletions(-)
 create mode 100644 package/multimedia/disko-demos/Config.in
 create mode 100644 package/multimedia/disko-demos/disko-demos-1.8.0-fix-install-paths.patch
 create mode 100644 package/multimedia/disko-demos/disko-demos.mk
 create mode 100644 package/multimedia/disko/Config.in
 create mode 100644 package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch
 create mode 100644 package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
 create mode 100644 package/multimedia/disko/disko.mk
 create mode 100644 package/scons/scons.mk

Thanks,
-- 
Thomas Petazzoni

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 1/3] scons: new package
  2011-07-20  5:11 [Buildroot] [pull request v2] Pull request for branch disko Thomas Petazzoni
@ 2011-07-20  5:11 ` Thomas Petazzoni
  2011-07-24 20:32   ` Peter Korsgaard
  2011-07-20  5:11 ` [Buildroot] [PATCH 2/3] disko: " Thomas Petazzoni
  2011-07-20  5:11 ` [Buildroot] [PATCH 3/3] disko-demos: " Thomas Petazzoni
  2 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2011-07-20  5:11 UTC (permalink / raw)
  To: buildroot

Only the host package is supported.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/scons/scons.mk |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
 create mode 100644 package/scons/scons.mk

diff --git a/package/scons/scons.mk b/package/scons/scons.mk
new file mode 100644
index 0000000..f8fe84b
--- /dev/null
+++ b/package/scons/scons.mk
@@ -0,0 +1,13 @@
+SCONS_VERSION = 2.0.1
+SCONS_SOURCE = scons-$(SCONS_VERSION).tar.gz
+SCONS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/scons
+
+define HOST_SCONS_BUILD_CMDS
+	(cd $(@D); python setup.py build)
+endef
+
+define HOST_SCONS_INSTALL_CMDS
+	(cd $(@D); python setup.py install --prefix=$(HOST_DIR)/usr)
+endef
+
+$(eval $(call GENTARGETS,package,scons,host))
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 2/3] disko: new package
  2011-07-20  5:11 [Buildroot] [pull request v2] Pull request for branch disko Thomas Petazzoni
  2011-07-20  5:11 ` [Buildroot] [PATCH 1/3] scons: new package Thomas Petazzoni
@ 2011-07-20  5:11 ` Thomas Petazzoni
  2011-07-24 20:38   ` Peter Korsgaard
  2011-07-20  5:11 ` [Buildroot] [PATCH 3/3] disko-demos: " Thomas Petazzoni
  2 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2011-07-20  5:11 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/multimedia/Config.in                       |    1 +
 package/multimedia/disko/Config.in                 |   41 ++++++++++
 .../disko/disko-1.8.0-directfb-fix-errors.patch    |   82 ++++++++++++++++++++
 .../disko/disko-1.8.0-fixup-pkgconfig.patch        |   22 +++++
 package/multimedia/disko/disko.mk                  |   57 ++++++++++++++
 5 files changed, 203 insertions(+), 0 deletions(-)
 create mode 100644 package/multimedia/disko/Config.in
 create mode 100644 package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch
 create mode 100644 package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
 create mode 100644 package/multimedia/disko/disko.mk

diff --git a/package/multimedia/Config.in b/package/multimedia/Config.in
index 79c601c..74885bd 100644
--- a/package/multimedia/Config.in
+++ b/package/multimedia/Config.in
@@ -2,6 +2,7 @@ menu "Audio and video libraries and applications"
 source "package/multimedia/alsa-lib/Config.in"
 source "package/multimedia/alsa-utils/Config.in"
 source "package/multimedia/aumix/Config.in"
+source "package/multimedia/disko/Config.in"
 source "package/multimedia/faad2/Config.in"
 source "package/multimedia/flac/Config.in"
 source "package/multimedia/ffmpeg/Config.in"
diff --git a/package/multimedia/disko/Config.in b/package/multimedia/disko/Config.in
new file mode 100644
index 0000000..6d83402
--- /dev/null
+++ b/package/multimedia/disko/Config.in
@@ -0,0 +1,41 @@
+config BR2_PACKAGE_DISKO
+	bool "disko"
+	select BR2_PACKAGE_LIBSIGC
+	select BR2_PACKAGE_LIBXML2
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_SQLITE
+	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_JPEG
+	help
+	  Disko is an LGPL-licensed user interface (UI) application
+	  framework for the fast and simple development of flexible
+	  applications on Embedded Linux systems, with a particular
+	  focus on interactive user interfaces. It is high-performance
+	  and easy to learn, and due to its architecture is well
+	  suited to creating complex applications. Disko is a product
+	  of BerLinux Solutions GmbH.
+
+	  http://www.diskohq.com/
+
+choice
+	prompt "Disko graphical backend"
+	default BR2_PACKAGE_DISKO_GRAPHIC_FBDEV
+	depends on BR2_PACKAGE_DISKO
+	help
+	  Select the graphical backend for Disko.
+
+config BR2_PACKAGE_DISKO_GRAPHIC_FBDEV
+	bool "framebuffer"
+
+config BR2_PACKAGE_DISKO_GRAPHIC_DIRECTFB
+	bool "directfb"
+	depends on BR2_PACKAGE_DIRECTFB
+
+config BR2_PACKAGE_DISKO_GRAPHIC_X11
+	bool "x11"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBXCOMPOSITE
+	select BR2_PACKAGE_XLIB_LIBXV
+endchoice
diff --git a/package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch b/package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch
new file mode 100644
index 0000000..1cc2a52
--- /dev/null
+++ b/package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch
@@ -0,0 +1,82 @@
+From: Matthias Hardt <mhardt@berlinux-solutions.de>
+Date: Wed, 8 Jun 2011 18:16:10 +0000 (+0200)
+Subject: mmsgui: -compile errors fixed for DirectFB
+X-Git-Url: http://git.diskohq.com/gitweb/?p=disko.git;a=commitdiff_plain;h=ed0026e853747ed251e438e30643fe29fa42c426
+
+mmsgui: -compile errors fixed for DirectFB
+---
+
+diff --git a/src/mmsgui/fb/mmsfbsurface.cpp b/src/mmsgui/fb/mmsfbsurface.cpp
+index 7cd6d3e..bb7e24b 100755
+--- a/src/mmsgui/fb/mmsfbsurface.cpp
++++ b/src/mmsgui/fb/mmsfbsurface.cpp
+@@ -857,7 +857,7 @@ void MMSFBSurface::initPlanePointers(MMSFBSurfacePlanes *planes, int height) {
+     	planes->ptr2 = ((unsigned char *)planes->ptr) + planes->pitch * height;
+     	planes->pitch2 = planes->pitch / 4;
+     	planes->ptr3 = NULL;
+-    	planes->pitch3 = NULL;
++    	planes->pitch3 = 0;
+     	break;
+     default:
+     	break;
+@@ -4785,7 +4785,7 @@ bool MMSFBSurface::stretchBlit(MMSFBSurface *source, MMSFBRectangle *src_rect, M
+ 					dfbres=((IDirectFBSurface *)tempsuf->getDFBSurface())->StretchBlit((IDirectFBSurface *)tempsuf->getDFBSurface(), (IDirectFBSurface *)source->getDFBSurface(), (DFBRectangle*)&src, (DFBRectangle*)&temp);
+ 					if (dfbres == DFB_OK) {
+ 						if (!this->is_sub_surface) {
+-							if (extendedAccelBlit(tempsuf, &temp, dst.x, dst.y)) {
++							if (extendedAccelBlit(tempsuf, &temp, dst.x, dst.y, this->config.blittingflags)) {
+ 								blit_done = true;
+ 								ret = true;
+ 							}
+@@ -4806,7 +4806,7 @@ bool MMSFBSurface::stretchBlit(MMSFBSurface *source, MMSFBRectangle *src_rect, M
+ 							SETSUBSURFACE_BLITTINGFLAGS;
+ #endif
+ 
+-							if (!extendedAccelBlit(tempsuf, &temp, dst.x, dst.y))
++							if (!extendedAccelBlit(tempsuf, &temp, dst.x, dst.y, this->config.blittingflags))
+ 								this->dfb_surface->Blit(this->dfb_surface, (IDirectFBSurface *)tempsuf->getDFBSurface(), (DFBRectangle*)&temp, dst.x, dst.y);
+ 
+ #ifndef USE_DFB_SUBSURFACE
+@@ -7121,7 +7121,7 @@ bool MMSFBSurface::dump2file(string filename, MMSFBSurfaceDumpMode dumpmode) {
+ 
+ bool dump_fcb(char *buf, int len, void *argp, int *argi) {
+ 	buf[len] = 0;
+-	printf(buf);
++	printf("%s", buf);
+ 	return true;
+ }
+ 
+diff --git a/src/mmsgui/mmsfbmanager.cpp b/src/mmsgui/mmsfbmanager.cpp
+index ab604e8..871000d 100755
+--- a/src/mmsgui/mmsfbmanager.cpp
++++ b/src/mmsgui/mmsfbmanager.cpp
+@@ -73,13 +73,6 @@ bool MMSFBManager::init(int argc, char **argv, string appl_name, string appl_ico
+ 	for(i=0;i<argc;i++)
+ 		myargv[i]=strdup(argv[i]);
+ 
+-#ifdef  __HAVE_DIRECTFB__
+-	if(config.getOutputType() == MMSFB_OT_X11) {
+-		myargv[myargc]=strdup("--dfb:system=x11");
+-		myargc++;
+-	}
+-#endif
+-
+     DEBUGMSG("MMSGUI", "init mmsfb");
+     bool ea = config.getExtendedAccel();
+ #ifdef  __HAVE_DIRECTFB__
+@@ -98,6 +91,15 @@ bool MMSFBManager::init(int argc, char **argv, string appl_name, string appl_ico
+ 	MMSConfigDataLayer videolayer_conf = this->config.getVideoLayer();
+ 	MMSConfigDataLayer graphicslayer_conf = this->config.getGraphicsLayer();
+ 
++#ifdef  __HAVE_DIRECTFB__
++	if(videolayer_conf.outputtype == MMSFB_OT_X11) {
++		myargv[myargc++] = strdup("--dfb:system=x11");
++		char mode[24];
++		snprintf(mode, 24, "--dfb:mode=%dx%d", graphicslayer_conf.rect.w, graphicslayer_conf.rect.h);
++		myargv[myargc++] = strdup(mode);
++	}
++#endif
++
+ 	// init the MMSFB class
+     if (!mmsfb->init(myargc, myargv, config.getBackend(), graphicslayer_conf.rect,
+ 					 ea, config.getFullScreen(), config.getPointer(), appl_name, appl_icon_name, config.getHideApplication())) {
diff --git a/package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch b/package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
new file mode 100644
index 0000000..7e10df9
--- /dev/null
+++ b/package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
@@ -0,0 +1,22 @@
+Do not prepend pkg-config prefix variable with destdir
+
+The SConstruct script of Disko preprends the destdir to the prefix=
+variable in the .pc file. This is useless and also broken, as
+pkg-config already preprends the destdir to the prefix= variable
+thanks to the PKG_CONFIG_SYSROOT_DIR environment variable.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: disko_1.8.0/SConstruct
+===================================================================
+--- disko_1.8.0.orig/SConstruct	2011-07-15 14:23:01.478750933 +0200
++++ disko_1.8.0/SConstruct	2011-07-15 14:23:15.565746631 +0200
+@@ -859,8 +859,6 @@
+ 		disko_pc_libs_private += ' -lswscale -lavutil'
+ 
+ 	disko_pc.write('prefix=')
+-	if env['destdir'] and env['destdir'] != 'none':
+-		disko_pc.write(env['destdir'] + '/')
+ 	disko_pc.write(env['prefix'] + '\n')
+ 	disko_pc.write('exec_prefix=${prefix}\n')
+ 	disko_pc.write('libdir=${exec_prefix}/lib\n')
diff --git a/package/multimedia/disko/disko.mk b/package/multimedia/disko/disko.mk
new file mode 100644
index 0000000..0d6d894
--- /dev/null
+++ b/package/multimedia/disko/disko.mk
@@ -0,0 +1,57 @@
+
+DISKO_VERSION = 1.8.0
+DISKO_SOURCE = disko_$(DISKO_VERSION).tar.gz
+DISKO_SITE = http://www.diskohq.com/repository/sources/
+DISKO_INSTALL_STAGING = YES
+
+DISKO_DEPENDENCIES = \
+	host-scons host-pkg-config libsigc \
+	libxml2 libcurl freetype sqlite zlib \
+	libpng jpeg
+
+# SCons uses directly "ld" as the linker, but the external toolchain
+# wrapper does not wrap ld, so we tell scons to use gcc as the linker.
+DISKO_SCONS_ENV = 	 	 \
+	$(TARGET_CONFIGURE_OPTS) \
+	LD="$(TARGET_CC)"
+
+DISKO_SCONS_OPTS =		\
+	prefix=/usr		\
+	cross=True
+
+ifeq ($(BR2_PACKAGE_DISKO_GRAPHIC_FBDEV),y)
+DISKO_SCONS_OPTS += graphics_backend=fbdev
+else ifeq ($(BR2_PACKAGE_DISKO_GRAPHIC_DIRECTFB),y)
+DISKO_SCONS_OPTS += graphics_backend=dfb
+DISKO_DEPENDENCIES += directfb
+else ifeq ($(BR2_PACKAGE_DISKO_GRAPHIC_X11),y)
+DISKO_SCONS_OPTS += graphics_backend=x11
+DISKO_DEPENDENCIES += xserver_xorg-server xlib_libXv xlib_libXcomposite
+endif
+
+define DISKO_BUILD_CMDS
+	(cd $(@D); \
+		$(DISKO_SCONS_ENV)	 \
+		scons			 \
+		$(DISKO_SCONS_OPTS))
+endef
+
+define DISKO_INSTALL_STAGING_CMDS
+	(cd $(@D); \
+		$(DISKO_SCONS_ENV)	   \
+		scons			   \
+		$(DISKO_SCONS_OPTS)	   \
+		destdir=$(STAGING_DIR) 	   \
+		install)
+endef
+
+define DISKO_INSTALL_TARGET_CMDS
+	(cd $(@D); \
+		$(DISKO_SCONS_ENV)	   \
+		scons			   \
+		$(DISKO_SCONS_OPTS)	   \
+		destdir=$(TARGET_DIR) 	   \
+		install)
+endef
+
+$(eval $(call GENTARGETS,package/multimedia,disko))
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 3/3] disko-demos: new package
  2011-07-20  5:11 [Buildroot] [pull request v2] Pull request for branch disko Thomas Petazzoni
  2011-07-20  5:11 ` [Buildroot] [PATCH 1/3] scons: new package Thomas Petazzoni
  2011-07-20  5:11 ` [Buildroot] [PATCH 2/3] disko: " Thomas Petazzoni
@ 2011-07-20  5:11 ` Thomas Petazzoni
  2011-07-24 20:39   ` Peter Korsgaard
  2 siblings, 1 reply; 8+ messages in thread
From: Thomas Petazzoni @ 2011-07-20  5:11 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/multimedia/Config.in                       |    1 +
 package/multimedia/disko-demos/Config.in           |    8 +++
 .../disko-demos-1.8.0-fix-install-paths.patch      |   61 ++++++++++++++++++++
 package/multimedia/disko-demos/disko-demos.mk      |   27 +++++++++
 4 files changed, 97 insertions(+), 0 deletions(-)
 create mode 100644 package/multimedia/disko-demos/Config.in
 create mode 100644 package/multimedia/disko-demos/disko-demos-1.8.0-fix-install-paths.patch
 create mode 100644 package/multimedia/disko-demos/disko-demos.mk

diff --git a/package/multimedia/Config.in b/package/multimedia/Config.in
index 74885bd..05ca8a3 100644
--- a/package/multimedia/Config.in
+++ b/package/multimedia/Config.in
@@ -3,6 +3,7 @@ source "package/multimedia/alsa-lib/Config.in"
 source "package/multimedia/alsa-utils/Config.in"
 source "package/multimedia/aumix/Config.in"
 source "package/multimedia/disko/Config.in"
+source "package/multimedia/disko-demos/Config.in"
 source "package/multimedia/faad2/Config.in"
 source "package/multimedia/flac/Config.in"
 source "package/multimedia/ffmpeg/Config.in"
diff --git a/package/multimedia/disko-demos/Config.in b/package/multimedia/disko-demos/Config.in
new file mode 100644
index 0000000..b488fa2
--- /dev/null
+++ b/package/multimedia/disko-demos/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_DISKO_DEMOS
+	bool "disko-demos"
+	depends on BR2_PACKAGE_DISKO
+	help
+	  This is a demonstration application for the Disko multimedia
+	  application framework.
+
+	  http://www.diskohq.com/
diff --git a/package/multimedia/disko-demos/disko-demos-1.8.0-fix-install-paths.patch b/package/multimedia/disko-demos/disko-demos-1.8.0-fix-install-paths.patch
new file mode 100644
index 0000000..3469365
--- /dev/null
+++ b/package/multimedia/disko-demos/disko-demos-1.8.0-fix-install-paths.patch
@@ -0,0 +1,61 @@
+Allow proper configuration of /etc directory
+
+The disko-demos SConstruct build script forced to install
+configuration files into <prefix>/etc, which means /usr/etc. This
+patch adds a sysconfdir argument, which allows to specify a different
+directory for configuration files.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: disko-demos_1.8.0/SConstruct
+===================================================================
+--- disko-demos_1.8.0.orig/SConstruct	2011-07-16 17:36:38.136817482 +0200
++++ disko-demos_1.8.0/SConstruct	2011-07-16 17:56:55.266816863 +0200
+@@ -3,6 +3,7 @@
+ opts = Variables('disko-demos.conf')
+ opts.AddVariables(
+ PathVariable('prefix',  'Installation directory', '/tmp/disko-demos', PathVariable.PathIsDirCreate),
++PathVariable('sysconfdir', 'Configuration directory', 'none', PathVariable.PathIsDirCreate),
+ PathVariable('destdir', 'Installation directory for cross-compile', 'none', PathVariable.PathAccept))
+ 
+ env = Environment(ENV = os.environ)
+@@ -27,6 +28,11 @@
+ 
+ env['CCFLAGS'].extend(['-I./inc'])
+ 
++if env['sysconfdir'] != 'none':
++	isysconfdir = env['sysconfdir'] + "/"
++else:
++	isysconfdir = env['prefix'] + "/etc/"
++
+ # Here are our installation paths:
+ if os.environ.has_key('DESTDIR'):
+ 	env['destdir'] = os.environ['DESTDIR']
+@@ -34,6 +40,7 @@
+ 	idir_prefix = env['destdir']
+ 	if env['prefix'] != 'none':
+ 		idir_prefix += ('/' + env['prefix'])
++	isysconfdir = env['destdir'] + isysconfdir
+ else:
+ 	idir_prefix = env['prefix']
+ 
+@@ -72,14 +79,15 @@
+ 	
+ env = conf.Finish()
+ 
+-demo = env.Program('bin/demo', Glob('src/*.cpp'))
++demo = env.Program('bin/disko-demo', Glob('src/*.cpp'))
+ 
+-install = env.Alias('install', [idir_prefix])
++env.Alias('install', idir_prefix)
++env.Alias('install', isysconfdir)
+ 
+ env.Install(idir_prefix + '/bin', demo)
+ 
+ etc = Glob(os.getcwd() + '/etc/*')
+-env.Install(idir_prefix + '/etc', etc)
++env.Install(isysconfdir, etc)
+ 
+ share = Glob(os.getcwd() + '/share/*')
+-env.Install(idir_prefix + '/share/', share)
++env.Install(idir_prefix + '/share/disko-demo/', share)
diff --git a/package/multimedia/disko-demos/disko-demos.mk b/package/multimedia/disko-demos/disko-demos.mk
new file mode 100644
index 0000000..5a7cd70
--- /dev/null
+++ b/package/multimedia/disko-demos/disko-demos.mk
@@ -0,0 +1,27 @@
+
+DISKO_DEMOS_VERSION = 1.8.0
+DISKO_DEMOS_SOURCE = disko-demos_$(DISKO_DEMOS_VERSION).tar.gz
+DISKO_DEMOS_SITE = http://www.diskohq.com/repository/sources/
+
+DISKO_DEMOS_DEPENDENCIES = disko
+
+DISKO_DEMOS_SCONS_ENV = 	 \
+	$(TARGET_CONFIGURE_OPTS)
+
+DISKO_DEMOS_SCONS_OPTS =	\
+	prefix=/usr		\
+	sysconfdir=/etc		\
+	cross=True
+
+define DISKO_DEMOS_BUILD_CMDS
+	(cd $(@D); $(DISKO_DEMOS_SCONS_ENV) scons $(DISKO_DEMOS_SCONS_OPTS))
+endef
+
+define DISKO_DEMOS_INSTALL_TARGET_CMDS
+	(cd $(@D); \
+		$(DISKO_DEMOS_SCONS_ENV) scons $(DISKO_DEMOS_SCONS_OPTS) \
+		destdir=$(TARGET_DIR) install)
+endef
+
+
+$(eval $(call GENTARGETS,package/multimedia,disko-demos))
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 1/3] scons: new package
  2011-07-20  5:11 ` [Buildroot] [PATCH 1/3] scons: new package Thomas Petazzoni
@ 2011-07-24 20:32   ` Peter Korsgaard
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2011-07-24 20:32 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Only the host package is supported.
 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 2/3] disko: new package
  2011-07-20  5:11 ` [Buildroot] [PATCH 2/3] disko: " Thomas Petazzoni
@ 2011-07-24 20:38   ` Peter Korsgaard
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2011-07-24 20:38 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Thanks, a few comments:


 Thomas> +++ b/package/multimedia/disko/Config.in
 Thomas> @@ -0,0 +1,41 @@
 Thomas> +config BR2_PACKAGE_DISKO
 Thomas> +	bool "disko"
 Thomas> +	select BR2_PACKAGE_LIBSIGC

libsigc++ is a C++ library, and disko seems to also be written in C++,
so you need the depends on BR2_INSTALL_LIBSTDCPP /
comment-when-no-available thing.

Doing a test build with a basic uClibc config (please test patches with
this) shows that it needs iconv.h, so you need

select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE

and add it to _DEPENDENCIES.

Unfortunately the build still breaks:

src/mmstools/tools.cpp:37:21: error: wordexp.h: No such file or directory
src/mmstools/tools.cpp: In function 'std::string substituteEnvVars(std::string)':
src/mmstools/tools.cpp:64: error: 'wordexp_t' was not declared in this scope

Our default uClibc config (and upstream default) hasn't got
UCLIBC_HAS_WORDEXP enabled. Please take a look if we could remove that
dependency or alternatively adjust the defconfigs.

 Thomas> +++ b/package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
 Thomas> @@ -0,0 +1,22 @@
 Thomas> +Do not prepend pkg-config prefix variable with destdir
 Thomas> +
 Thomas> +The SConstruct script of Disko preprends the destdir to the prefix=
 Thomas> +variable in the .pc file. This is useless and also broken, as
 Thomas> +pkg-config already preprends the destdir to the prefix= variable
 Thomas> +thanks to the PKG_CONFIG_SYSROOT_DIR environment variable.
 Thomas> +
 Thomas> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Has this been sent upstream?

 Thomas> new file mode 100644
 Thomas> index 0000000..0d6d894
 Thomas> --- /dev/null
 Thomas> +++ b/package/multimedia/disko/disko.mk
 Thomas> @@ -0,0 +1,57 @@
 Thomas> +

Please drop this empty line.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 3/3] disko-demos: new package
  2011-07-20  5:11 ` [Buildroot] [PATCH 3/3] disko-demos: " Thomas Petazzoni
@ 2011-07-24 20:39   ` Peter Korsgaard
  0 siblings, 0 replies; 8+ messages in thread
From: Peter Korsgaard @ 2011-07-24 20:39 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Thanks, a few comments:

 Thomas> --- /dev/null
 Thomas> +++ b/package/multimedia/disko-demos/disko-demos-1.8.0-fix-install-paths.patch
 Thomas> @@ -0,0 +1,61 @@
 Thomas> +Allow proper configuration of /etc directory
 Thomas> +
 Thomas> +The disko-demos SConstruct build script forced to install
 Thomas> +configuration files into <prefix>/etc, which means /usr/etc. This
 Thomas> +patch adds a sysconfdir argument, which allows to specify a different
 Thomas> +directory for configuration files.
 Thomas> +
 Thomas> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Has this been sent upstream?

 Thomas> +++ b/package/multimedia/disko-demos/disko-demos.mk
 Thomas> @@ -0,0 +1,27 @@
 Thomas> +

Please drop this empty line.

 Thomas> +DISKO_DEMOS_VERSION = 1.8.0
 Thomas> +DISKO_DEMOS_SOURCE = disko-demos_$(DISKO_DEMOS_VERSION).tar.gz
 Thomas> +DISKO_DEMOS_SITE = http://www.diskohq.com/repository/sources/
 Thomas> +
 Thomas> +DISKO_DEMOS_DEPENDENCIES = disko
 Thomas> +
 Thomas> +DISKO_DEMOS_SCONS_ENV = 	 \
 Thomas> +	$(TARGET_CONFIGURE_OPTS)

No LD=$(TARGET_CC) like for disko?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH 2/3] disko: new package
  2011-07-20  4:43 [Buildroot] [pull request] Pull request for branch disko Thomas Petazzoni
@ 2011-07-20  4:43 ` Thomas Petazzoni
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni @ 2011-07-20  4:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/multimedia/Config.in                       |    1 +
 package/multimedia/disko/Config.in                 |   41 ++++++++++
 .../disko/disko-1.8.0-directfb-fix-errors.patch    |   82 ++++++++++++++++++++
 .../disko/disko-1.8.0-fixup-pkgconfig.patch        |   22 +++++
 package/multimedia/disko/disko.mk                  |   57 ++++++++++++++
 5 files changed, 203 insertions(+), 0 deletions(-)
 create mode 100644 package/multimedia/disko/Config.in
 create mode 100644 package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch
 create mode 100644 package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
 create mode 100644 package/multimedia/disko/disko.mk

diff --git a/package/multimedia/Config.in b/package/multimedia/Config.in
index 79c601c..74885bd 100644
--- a/package/multimedia/Config.in
+++ b/package/multimedia/Config.in
@@ -2,6 +2,7 @@ menu "Audio and video libraries and applications"
 source "package/multimedia/alsa-lib/Config.in"
 source "package/multimedia/alsa-utils/Config.in"
 source "package/multimedia/aumix/Config.in"
+source "package/multimedia/disko/Config.in"
 source "package/multimedia/faad2/Config.in"
 source "package/multimedia/flac/Config.in"
 source "package/multimedia/ffmpeg/Config.in"
diff --git a/package/multimedia/disko/Config.in b/package/multimedia/disko/Config.in
new file mode 100644
index 0000000..8a2fe96
--- /dev/null
+++ b/package/multimedia/disko/Config.in
@@ -0,0 +1,41 @@
+config BR2_PACKAGE_DISKO
+	bool "disko"
+	select BR2_PACKAGE_LIBSIGC
+	select BR2_PACKAGE_LIBXML2
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_SQLITE
+	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_LIBPNG
+	select BR2_PACKAGE_JPEG
+	help
+	  Disko is an LGPL-licensed user interface (UI) application
+	  framework for the fast and simple development of flexible
+	  applications on Embedded Linux systems ? with a particular
+	  focus on interactive user interfaces. It is high-performance
+	  and easy to learn, and due to its architecture is well
+	  suited to creating complex applications. Disko is a product
+	  of BerLinux Solutions GmbH.
+
+	  http://www.diskohq.com/
+
+choice
+	prompt "Disko graphical backend"
+	default BR2_PACKAGE_DISKO_GRAPHIC_FBDEV
+	depends on BR2_PACKAGE_DISKO
+	help
+	  Select the graphical backend for Disko.
+
+config BR2_PACKAGE_DISKO_GRAPHIC_FBDEV
+	bool "framebuffer"
+
+config BR2_PACKAGE_DISKO_GRAPHIC_DIRECTFB
+	bool "directfb"
+	depends on BR2_PACKAGE_DIRECTFB
+
+config BR2_PACKAGE_DISKO_GRAPHIC_X11
+	bool "x11"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBXCOMPOSITE
+	select BR2_PACKAGE_XLIB_LIBXV
+endchoice
diff --git a/package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch b/package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch
new file mode 100644
index 0000000..1cc2a52
--- /dev/null
+++ b/package/multimedia/disko/disko-1.8.0-directfb-fix-errors.patch
@@ -0,0 +1,82 @@
+From: Matthias Hardt <mhardt@berlinux-solutions.de>
+Date: Wed, 8 Jun 2011 18:16:10 +0000 (+0200)
+Subject: mmsgui: -compile errors fixed for DirectFB
+X-Git-Url: http://git.diskohq.com/gitweb/?p=disko.git;a=commitdiff_plain;h=ed0026e853747ed251e438e30643fe29fa42c426
+
+mmsgui: -compile errors fixed for DirectFB
+---
+
+diff --git a/src/mmsgui/fb/mmsfbsurface.cpp b/src/mmsgui/fb/mmsfbsurface.cpp
+index 7cd6d3e..bb7e24b 100755
+--- a/src/mmsgui/fb/mmsfbsurface.cpp
++++ b/src/mmsgui/fb/mmsfbsurface.cpp
+@@ -857,7 +857,7 @@ void MMSFBSurface::initPlanePointers(MMSFBSurfacePlanes *planes, int height) {
+     	planes->ptr2 = ((unsigned char *)planes->ptr) + planes->pitch * height;
+     	planes->pitch2 = planes->pitch / 4;
+     	planes->ptr3 = NULL;
+-    	planes->pitch3 = NULL;
++    	planes->pitch3 = 0;
+     	break;
+     default:
+     	break;
+@@ -4785,7 +4785,7 @@ bool MMSFBSurface::stretchBlit(MMSFBSurface *source, MMSFBRectangle *src_rect, M
+ 					dfbres=((IDirectFBSurface *)tempsuf->getDFBSurface())->StretchBlit((IDirectFBSurface *)tempsuf->getDFBSurface(), (IDirectFBSurface *)source->getDFBSurface(), (DFBRectangle*)&src, (DFBRectangle*)&temp);
+ 					if (dfbres == DFB_OK) {
+ 						if (!this->is_sub_surface) {
+-							if (extendedAccelBlit(tempsuf, &temp, dst.x, dst.y)) {
++							if (extendedAccelBlit(tempsuf, &temp, dst.x, dst.y, this->config.blittingflags)) {
+ 								blit_done = true;
+ 								ret = true;
+ 							}
+@@ -4806,7 +4806,7 @@ bool MMSFBSurface::stretchBlit(MMSFBSurface *source, MMSFBRectangle *src_rect, M
+ 							SETSUBSURFACE_BLITTINGFLAGS;
+ #endif
+ 
+-							if (!extendedAccelBlit(tempsuf, &temp, dst.x, dst.y))
++							if (!extendedAccelBlit(tempsuf, &temp, dst.x, dst.y, this->config.blittingflags))
+ 								this->dfb_surface->Blit(this->dfb_surface, (IDirectFBSurface *)tempsuf->getDFBSurface(), (DFBRectangle*)&temp, dst.x, dst.y);
+ 
+ #ifndef USE_DFB_SUBSURFACE
+@@ -7121,7 +7121,7 @@ bool MMSFBSurface::dump2file(string filename, MMSFBSurfaceDumpMode dumpmode) {
+ 
+ bool dump_fcb(char *buf, int len, void *argp, int *argi) {
+ 	buf[len] = 0;
+-	printf(buf);
++	printf("%s", buf);
+ 	return true;
+ }
+ 
+diff --git a/src/mmsgui/mmsfbmanager.cpp b/src/mmsgui/mmsfbmanager.cpp
+index ab604e8..871000d 100755
+--- a/src/mmsgui/mmsfbmanager.cpp
++++ b/src/mmsgui/mmsfbmanager.cpp
+@@ -73,13 +73,6 @@ bool MMSFBManager::init(int argc, char **argv, string appl_name, string appl_ico
+ 	for(i=0;i<argc;i++)
+ 		myargv[i]=strdup(argv[i]);
+ 
+-#ifdef  __HAVE_DIRECTFB__
+-	if(config.getOutputType() == MMSFB_OT_X11) {
+-		myargv[myargc]=strdup("--dfb:system=x11");
+-		myargc++;
+-	}
+-#endif
+-
+     DEBUGMSG("MMSGUI", "init mmsfb");
+     bool ea = config.getExtendedAccel();
+ #ifdef  __HAVE_DIRECTFB__
+@@ -98,6 +91,15 @@ bool MMSFBManager::init(int argc, char **argv, string appl_name, string appl_ico
+ 	MMSConfigDataLayer videolayer_conf = this->config.getVideoLayer();
+ 	MMSConfigDataLayer graphicslayer_conf = this->config.getGraphicsLayer();
+ 
++#ifdef  __HAVE_DIRECTFB__
++	if(videolayer_conf.outputtype == MMSFB_OT_X11) {
++		myargv[myargc++] = strdup("--dfb:system=x11");
++		char mode[24];
++		snprintf(mode, 24, "--dfb:mode=%dx%d", graphicslayer_conf.rect.w, graphicslayer_conf.rect.h);
++		myargv[myargc++] = strdup(mode);
++	}
++#endif
++
+ 	// init the MMSFB class
+     if (!mmsfb->init(myargc, myargv, config.getBackend(), graphicslayer_conf.rect,
+ 					 ea, config.getFullScreen(), config.getPointer(), appl_name, appl_icon_name, config.getHideApplication())) {
diff --git a/package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch b/package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
new file mode 100644
index 0000000..7e10df9
--- /dev/null
+++ b/package/multimedia/disko/disko-1.8.0-fixup-pkgconfig.patch
@@ -0,0 +1,22 @@
+Do not prepend pkg-config prefix variable with destdir
+
+The SConstruct script of Disko preprends the destdir to the prefix=
+variable in the .pc file. This is useless and also broken, as
+pkg-config already preprends the destdir to the prefix= variable
+thanks to the PKG_CONFIG_SYSROOT_DIR environment variable.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: disko_1.8.0/SConstruct
+===================================================================
+--- disko_1.8.0.orig/SConstruct	2011-07-15 14:23:01.478750933 +0200
++++ disko_1.8.0/SConstruct	2011-07-15 14:23:15.565746631 +0200
+@@ -859,8 +859,6 @@
+ 		disko_pc_libs_private += ' -lswscale -lavutil'
+ 
+ 	disko_pc.write('prefix=')
+-	if env['destdir'] and env['destdir'] != 'none':
+-		disko_pc.write(env['destdir'] + '/')
+ 	disko_pc.write(env['prefix'] + '\n')
+ 	disko_pc.write('exec_prefix=${prefix}\n')
+ 	disko_pc.write('libdir=${exec_prefix}/lib\n')
diff --git a/package/multimedia/disko/disko.mk b/package/multimedia/disko/disko.mk
new file mode 100644
index 0000000..0d6d894
--- /dev/null
+++ b/package/multimedia/disko/disko.mk
@@ -0,0 +1,57 @@
+
+DISKO_VERSION = 1.8.0
+DISKO_SOURCE = disko_$(DISKO_VERSION).tar.gz
+DISKO_SITE = http://www.diskohq.com/repository/sources/
+DISKO_INSTALL_STAGING = YES
+
+DISKO_DEPENDENCIES = \
+	host-scons host-pkg-config libsigc \
+	libxml2 libcurl freetype sqlite zlib \
+	libpng jpeg
+
+# SCons uses directly "ld" as the linker, but the external toolchain
+# wrapper does not wrap ld, so we tell scons to use gcc as the linker.
+DISKO_SCONS_ENV = 	 	 \
+	$(TARGET_CONFIGURE_OPTS) \
+	LD="$(TARGET_CC)"
+
+DISKO_SCONS_OPTS =		\
+	prefix=/usr		\
+	cross=True
+
+ifeq ($(BR2_PACKAGE_DISKO_GRAPHIC_FBDEV),y)
+DISKO_SCONS_OPTS += graphics_backend=fbdev
+else ifeq ($(BR2_PACKAGE_DISKO_GRAPHIC_DIRECTFB),y)
+DISKO_SCONS_OPTS += graphics_backend=dfb
+DISKO_DEPENDENCIES += directfb
+else ifeq ($(BR2_PACKAGE_DISKO_GRAPHIC_X11),y)
+DISKO_SCONS_OPTS += graphics_backend=x11
+DISKO_DEPENDENCIES += xserver_xorg-server xlib_libXv xlib_libXcomposite
+endif
+
+define DISKO_BUILD_CMDS
+	(cd $(@D); \
+		$(DISKO_SCONS_ENV)	 \
+		scons			 \
+		$(DISKO_SCONS_OPTS))
+endef
+
+define DISKO_INSTALL_STAGING_CMDS
+	(cd $(@D); \
+		$(DISKO_SCONS_ENV)	   \
+		scons			   \
+		$(DISKO_SCONS_OPTS)	   \
+		destdir=$(STAGING_DIR) 	   \
+		install)
+endef
+
+define DISKO_INSTALL_TARGET_CMDS
+	(cd $(@D); \
+		$(DISKO_SCONS_ENV)	   \
+		scons			   \
+		$(DISKO_SCONS_OPTS)	   \
+		destdir=$(TARGET_DIR) 	   \
+		install)
+endef
+
+$(eval $(call GENTARGETS,package/multimedia,disko))
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-07-24 20:39 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-20  5:11 [Buildroot] [pull request v2] Pull request for branch disko Thomas Petazzoni
2011-07-20  5:11 ` [Buildroot] [PATCH 1/3] scons: new package Thomas Petazzoni
2011-07-24 20:32   ` Peter Korsgaard
2011-07-20  5:11 ` [Buildroot] [PATCH 2/3] disko: " Thomas Petazzoni
2011-07-24 20:38   ` Peter Korsgaard
2011-07-20  5:11 ` [Buildroot] [PATCH 3/3] disko-demos: " Thomas Petazzoni
2011-07-24 20:39   ` Peter Korsgaard
  -- strict thread matches above, loose matches on Subject: below --
2011-07-20  4:43 [Buildroot] [pull request] Pull request for branch disko Thomas Petazzoni
2011-07-20  4:43 ` [Buildroot] [PATCH 2/3] disko: new package Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.