Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [pull request v2] Pull request for branch yem-target-qemu
@ 2013-01-29 22:43 Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 01/29] package/qemu: bump version to 1.3.1 Yann E. MORIN
                   ` (28 more replies)
  0 siblings, 29 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Hello All!

This series is the last part required to build QEMU for the target.

It depends on the previous series that was just sent:
  - http://lists.busybox.net/pipermail/buildroot/2013-January/066369.html

The philosophy behind this long series is to add a basic, non-configurable
QEMU build (which is already complex as it is), then add features one by
one to ease review.

The latest patch, adding DTC, has been a bit controversial, but no final
solution has been identified (as far as I remember), so I've kept it as-is.

Hopefully, we'll have time to review and definitely ack/nack this series
during the DevDay in Brussels. ;-)


Changes v1 -> v2:
  - rebased ontop latest tree
  - fixed wreckage due to bump from QEMU 1.2.2 -> 1.3.0
  - updated to QEMU 1.3.1
  - added option to install QEMU tools on the target


The following changes since commit 24a0d3a9cf23549854ea6830abc9e04a974e9900:

  package/dtc: add option to install programs (2013-01-29 23:21:12 +0100)

are available in the git repository at:
  git://gitorious.org/buildroot/buildroot.git yem-target-qemu

Yann E. MORIN (29):
      package/qemu: bump version to 1.3.1
      package/qemu: build for the target (i386 or x86_64 only)
      package/qemu: add basic target selection
      package/qemu: add fine-grained target selection
      package/qemu: add SDL frontends
      package/qemu: add option to enable/disable the VNC frontend
      package/qemu: add VNC jpeg and png compression
      package/qemu: add VNC TLS-encryption
      package/qemu: add option to not install blobs
      package/qemu: add option to remove unwanted keymaps
      package/qemu: add uuid support
      package/qemu: add support for capabilities
      package/qemu: add attr/xattr option
      package/qemu: add support for virtfs
      package/qemu: add support for cURL
      package/qemu: enable use of the curses frontend
      package/qemu: add BlueZ connectivity
      package/qemu: add AIO support
      package/qemu: add support for VDE switches
      package/qemu: add iSCSI support
      package/qemu: add support for USB redirection
      package/qemu: add support for Spice
      package/qemu: enable sound
      package/qemu: add support for libseccomp
      package/qemu: option to build the docs
      package/qemu: add option to install tools on the target
      package/qemu: move sub-options into a sub-menu
      package/qemu: enable a static build
      package/qemu: add support for FDT

 package/Config.in                   |    1 +
 package/qemu/Config.in              |  334 +++++++++++++++++++++++++++++++++++
 package/qemu/qemu-static-curl.patch |   72 ++++++++
 package/qemu/qemu-static-sdl.patch  |   54 ++++++
 package/qemu/qemu.mk                |  299 +++++++++++++++++++++++++++++++-
 5 files changed, 759 insertions(+), 1 deletions(-)
 create mode 100644 package/qemu/Config.in
 create mode 100644 package/qemu/qemu-static-curl.patch
 create mode 100644 package/qemu/qemu-static-sdl.patch

Regards,
Yann E. MORIN

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 01/29] package/qemu: bump version to 1.3.1
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 02/29] package/qemu: build for the target (i386 or x86_64 only) Yann E. MORIN
                   ` (27 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/qemu.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 65989f4..806ffd8 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -4,7 +4,7 @@
 #
 #############################################################
 
-QEMU_VERSION = 1.3.0
+QEMU_VERSION = 1.3.1
 QEMU_SOURCE = qemu-$(QEMU_VERSION).tar.bz2
 QEMU_SITE = http://wiki.qemu.org/download
 QEMU_LICENSE = GPLv2 LGPLv2.1 MIT BSD-3c BSD-2c Others/BSD-1c
-- 
1.7.2.5

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

* [Buildroot] [PATCH 02/29] package/qemu: build for the target (i386 or x86_64 only)
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 01/29] package/qemu: bump version to 1.3.1 Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-30  8:25   ` Thomas Petazzoni
  2013-01-29 22:43 ` [Buildroot] [PATCH 03/29] package/qemu: add basic target selection Yann E. MORIN
                   ` (26 subsequent siblings)
  28 siblings, 1 reply; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Untested for other architectures, so only enabled for known-working ones.

We explicitly disable all features that depends on other packages,
for now. Such features will be added one by one in the next patches.
Features that do not rely on external packages are explicitly enabled
to catch the dependencies on toolchain features early.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/Config.in      |    1 +
 package/qemu/Config.in |   26 ++++++++++++++++
 package/qemu/qemu.mk   |   75 ++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 102 insertions(+), 0 deletions(-)
 create mode 100644 package/qemu/Config.in

diff --git a/package/Config.in b/package/Config.in
index f4a331c..b04534a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -607,6 +607,7 @@ source "package/empty/Config.in"
 source "package/googlefontdirectory/Config.in"
 source "package/mcrypt/Config.in"
 source "package/mobile-broadband-provider-info/Config.in"
+source "package/qemu/Config.in"
 source "package/shared-mime-info/Config.in"
 source "package/snowball-init/Config.in"
 source "package/sound-theme-borealis/Config.in"
diff --git a/package/qemu/Config.in b/package/qemu/Config.in
new file mode 100644
index 0000000..b0ed279
--- /dev/null
+++ b/package/qemu/Config.in
@@ -0,0 +1,26 @@
+comment "QEMU requires a toolchain with threads"
+	depends on !BR2_i386 && !BR2_x86_64
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_QEMU
+	bool "QEMU"
+	depends on BR2_i386 || BR2_x86_64
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_PIXMAN
+	select BR2_PACKAGE_ZLIB
+	help
+	  QEMU is a generic and open source machine emulator and virtualizer.
+	  
+	  When used as a machine emulator, QEMU can run OSes and programs made
+	  for one machine (e.g. an ARM board) on a different machine (e.g.
+	  your own PC). By using dynamic translation, it achieves very good
+	  performance.
+	  
+	  When used as a virtualizer, QEMU achieves near native performances
+	  by executing the guest code directly on the host CPU. QEMU supports
+	  virtualization when executing under the Xen hypervisor or using the
+	  KVM kernel module in Linux. When using KVM, QEMU can virtualize x86,
+	  server and embedded PowerPC, and S390 guests.
+	  
+	  http://qemu.org/
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 806ffd8..6dfcdd9 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -81,3 +81,78 @@ $(eval $(host-autotools-package))
 
 # variable used by other packages
 QEMU_USER = $(HOST_DIR)/usr/bin/qemu-$(HOST_QEMU_ARCH)
+
+#-------------------------------------------------------------
+# Target-qemu
+
+QEMU_DEPENDENCIES = host-pkgconf host-python libglib2 zlib pixman
+
+# Need the LIBS variable because librt and libm are
+# not automatically pulled. :-(
+QEMU_LIBS = -lrt -lm
+
+QEMU_OPTS =
+
+QEMU_VARS =                                                                         \
+    PYTHON=$(HOST_DIR)/usr/bin/python                                               \
+    PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages    \
+
+# Note: although QEMU uses a ./configure script, it is not compatible with
+#       the traditional autotools options (eg. --target et al.), so we have
+#       to override the default provided by the autotools-package infra, and
+#       provide our own. Sigh... :-/
+
+define QEMU_CONFIGURE_CMDS
+	( cd $(@D);                                 \
+	    LIBS='$(QEMU_LIBS)'                     \
+	    $(TARGET_CONFIGURE_OPTS)                \
+	    $(TARGET_CONFIGURE_ARGS)                \
+	    $(QEMU_VARS)                            \
+	    ./configure                             \
+	        --prefix=/usr                       \
+	        --cross-prefix=$(TARGET_CROSS)      \
+	        --with-system-pixman                \
+	        --audio-drv-list=                   \
+	        --audio-card-list=                  \
+	        --enable-kvm                        \
+	        --enable-nptl                       \
+	        --enable-attr                       \
+	        --enable-vhost-net                  \
+	        --enable-system                     \
+	        --enable-linux-user                 \
+	        --disable-bsd-user                  \
+	        --disable-xen                       \
+	        --disable-slirp                     \
+	        --disable-sdl                       \
+	        --disable-vnc                       \
+	        --disable-virtfs                    \
+	        --disable-brlapi                    \
+	        --disable-curses                    \
+	        --disable-curl                      \
+	        --disable-fdt                       \
+	        --disable-bluez                     \
+	        --disable-guest-base                \
+	        --disable-uuid                      \
+	        --disable-vde                       \
+	        --disable-linux-aio                 \
+	        --disable-cap-ng                    \
+	        --disable-docs                      \
+	        --disable-spice                     \
+	        --disable-rbd                       \
+	        --disable-libiscsi                  \
+	        --disable-usb-redir                 \
+	        --disable-smartcard                 \
+	        --disable-strip                     \
+	        --disable-seccomp                   \
+	        --disable-sparse                    \
+	        --disable-tools                     \
+	        $(QEMU_OPTS)                        \
+	)
+endef
+
+# Need the LIBS_QGA because it does not 'inherit' the LIBS_TOOLS
+# we set at configure time, and there is no conrresponding LIBS_QGA
+# at configure time
+QEMU_MAKE_ENV += LIBS_TOOLS="$(QEMU_LIBS)" LIBS_QGA="$(QEMU_LIBS)" LIBS="$(QEMU_LIBS)"
+
+$(eval $(autotools-package))
-- 
1.7.2.5

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

* [Buildroot] [PATCH 03/29] package/qemu: add basic target selection
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 01/29] package/qemu: bump version to 1.3.1 Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 02/29] package/qemu: build for the target (i386 or x86_64 only) Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-30  8:32   ` Thomas Petazzoni
  2013-01-29 22:43 ` [Buildroot] [PATCH 04/29] package/qemu: add fine-grained " Yann E. MORIN
                   ` (25 subsequent siblings)
  28 siblings, 1 reply; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

qemu-1.2.1 requires that at least one target emulation be enabled, so
we use some kconfig-tricks to force at least the systems emulations to
be enabled if user emulation is not selected.

This limitation will be lifted in the upcoming qemu-1.3.x

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   32 ++++++++++++++++++++++++++++++++
 package/qemu/qemu.mk   |   14 ++++++++++++--
 2 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index b0ed279..9bfe37d 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -24,3 +24,35 @@ config BR2_PACKAGE_QEMU
 	  server and embedded PowerPC, and S390 guests.
 	  
 	  http://qemu.org/
+
+if BR2_PACKAGE_QEMU
+
+comment "Emulators selection"
+
+# QEMU 1.2.x requires that at least one target emulation be selected, so
+# we use the following two symbols to force systems emulation if user
+# emulation is not selected. This limitation will be lifted when qemu-1.3.0
+# is out.
+config BR2_PACKAGE_QEMU_EMUL_SET
+	bool
+
+config BR2_PACKAGE_QEMU_FORCE_SYSTEM
+	bool
+	default n if BR2_PACKAGE_QEMU_EMUL_SET
+	default y if ! BR2_PACKAGE_QEMU_EMUL_SET
+	select BR2_PACKAGE_QEMU_SYSTEM
+
+config BR2_PACKAGE_QEMU_SYSTEM
+	bool "Enable all systems emulation"
+	help
+	  Say 'y' to build all system emulators/virtualisers that QEMU supports.
+
+config BR2_PACKAGE_QEMU_LINUX_USER
+	bool "Enable all Linux user-land emulation"
+	select BR2_PACKAGE_QEMU_EMUL_SET
+	help
+	  Say 'y' to build all Linux user-land emulators that QEMU supports.
+
+# Note: bsd-user can not be build on Linux
+
+endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 6dfcdd9..c2302fa 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -97,6 +97,18 @@ QEMU_VARS =
     PYTHON=$(HOST_DIR)/usr/bin/python                                               \
     PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages    \
 
+ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y)
+QEMU_OPTS += --enable-system
+else
+QEMU_OPTS += --disable-system
+endif
+
+ifeq ($(BR2_PACKAGE_QEMU_LINUX_USER),y)
+QEMU_OPTS += --enable-linux-user
+else
+QEMU_OPTS += --disable-linux-user
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
@@ -118,8 +130,6 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-nptl                       \
 	        --enable-attr                       \
 	        --enable-vhost-net                  \
-	        --enable-system                     \
-	        --enable-linux-user                 \
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 04/29] package/qemu: add fine-grained target selection
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (2 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 03/29] package/qemu: add basic target selection Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 05/29] package/qemu: add SDL frontends Yann E. MORIN
                   ` (24 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   21 +++++++++++++++++++++
 package/qemu/qemu.mk   |    4 ++++
 2 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 9bfe37d..4f1576b 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -29,6 +29,25 @@ if BR2_PACKAGE_QEMU
 
 comment "Emulators selection"
 
+config BR2_PACKAGE_QEMU_CUSTOM_TARGETS
+	string "Enable specific targets"
+	help
+	  Enter here the list of QEMU targets you want to build. For example:
+
+	    System emulation      | User-land emulation
+	    ----------------------+-----------------------
+	    i386-softmmu          | i386-linux-user
+	    arm-softmmu           | ppc-linux-user
+	    x86_64-softmmu        | sparc-bsd-user
+	    ...                   | ...
+
+config QEMU_FOO
+	bool # To break the indentation
+
+if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = ""
+
+comment "... or you can select emulator families to enable, below:"
+
 # QEMU 1.2.x requires that at least one target emulation be selected, so
 # we use the following two symbols to force systems emulation if user
 # emulation is not selected. This limitation will be lifted when qemu-1.3.0
@@ -55,4 +74,6 @@ config BR2_PACKAGE_QEMU_LINUX_USER
 
 # Note: bsd-user can not be build on Linux
 
+endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index c2302fa..c91c79b 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -109,6 +109,10 @@ else
 QEMU_OPTS += --disable-linux-user
 endif
 
+ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
+QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
-- 
1.7.2.5

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

* [Buildroot] [PATCH 05/29] package/qemu: add SDL frontends
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (3 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 04/29] package/qemu: add fine-grained " Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 06/29] package/qemu: add option to enable/disable the VNC frontend Yann E. MORIN
                   ` (23 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |   10 +++++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 4f1576b..ad934ae 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -76,4 +76,13 @@ config BR2_PACKAGE_QEMU_LINUX_USER
 
 endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
 
+comment "Frontends"
+
+config BR2_PACKAGE_QEMU_SDL
+	bool "Enable SDL frontend"
+	select BR2_PACKAGE_SDL
+	help
+	  Say 'y' to enable the SDL frontend, that is, a graphical window
+	  presenting the VM's display.
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index c91c79b..1dd0c98 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -96,6 +96,7 @@ QEMU_OPTS =
 QEMU_VARS =                                                                         \
     PYTHON=$(HOST_DIR)/usr/bin/python                                               \
     PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages    \
+    SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl-config                                    \
 
 ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y)
 QEMU_OPTS += --enable-system
@@ -113,6 +114,14 @@ ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
 QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
+QEMU_OPTS += --enable-sdl
+QEMU_DEPENDENCIES += sdl
+QEMU_VARS += SDL_CONFIG=$(BR2_STAGING_DIR)/usr/bin/sdl-config
+else
+QEMU_OPTS += --disable-sdl
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
@@ -137,7 +146,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-sdl                       \
 	        --disable-vnc                       \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 06/29] package/qemu: add option to enable/disable the VNC frontend
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (4 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 05/29] package/qemu: add SDL frontends Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 07/29] package/qemu: add VNC jpeg and png compression Yann E. MORIN
                   ` (22 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |   11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index ad934ae..d904566 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -78,6 +78,13 @@ endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == ""
 
 comment "Frontends"
 
+config BR2_PACKAGE_QEMU_VNC
+	bool "Enable VNC frontend"
+	select BR2_PACKAGE_VNC
+	help
+	  Say 'y' to enable the VNC frontend, that is, QEMU will act as a
+	  VNC server presenting the VM's display.
+
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
 	select BR2_PACKAGE_SDL
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 1dd0c98..c122be7 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -114,6 +114,12 @@ ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),)
 QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))"
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VNC),y)
+QEMU_OPTS += --enable-vnc
+else
+QEMU_OPTS += --disable-vnc
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
 QEMU_OPTS += --enable-sdl
 QEMU_DEPENDENCIES += sdl
@@ -146,7 +152,10 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc                       \
+	        --disable-vnc-jpeg                  \
+	        --disable-vnc-png                   \
+	        --disable-vnc-tls                   \
+	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 07/29] package/qemu: add VNC jpeg and png compression
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (5 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 06/29] package/qemu: add option to enable/disable the VNC frontend Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 08/29] package/qemu: add VNC TLS-encryption Yann E. MORIN
                   ` (21 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |   16 ++++++++++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index d904566..82546a6 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -85,6 +85,16 @@ config BR2_PACKAGE_QEMU_VNC
 	  Say 'y' to enable the VNC frontend, that is, QEMU will act as a
 	  VNC server presenting the VM's display.
 
+config BR2_PACKAGE_QEMU_VNC_PNG
+	bool "PNG compression"
+	depends on BR2_PACKAGE_QEMU_VNC
+	select BR2_PACKAGE_LIBPNG
+
+config BR2_PACKAGE_QEMU_VNC_JPEG
+	bool "JPEG compression"
+	depends on BR2_PACKAGE_QEMU_VNC
+	select BR2_PACKAGE_JPEG
+
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
 	select BR2_PACKAGE_SDL
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index c122be7..7563e24 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -120,6 +120,20 @@ else
 QEMU_OPTS += --disable-vnc
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VNC_PNG),y)
+QEMU_OPTS += --enable-vnc-png
+QEMU_DEPENDENCIES += libpng
+else
+QEMU_OPTS += --disable-vnc-png
+endif
+
+ifeq ($(BR2_PACKAGE_QEMU_VNC_JPEG),y)
+QEMU_OPTS += --enable-vnc-jpeg
+QEMU_DEPENDENCIES += jpeg
+else
+QEMU_OPTS += --disable-vnc-jpeg
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
 QEMU_OPTS += --enable-sdl
 QEMU_DEPENDENCIES += sdl
@@ -152,8 +166,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc-jpeg                  \
-	        --disable-vnc-png                   \
 	        --disable-vnc-tls                   \
 	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 08/29] package/qemu: add VNC TLS-encryption
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (6 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 07/29] package/qemu: add VNC jpeg and png compression Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 09/29] package/qemu: add option to not install blobs Yann E. MORIN
                   ` (20 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Only TLS is supported, as buildroot has no package for the SASL library.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 82546a6..1e80f6a 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -95,6 +95,17 @@ config BR2_PACKAGE_QEMU_VNC_JPEG
 	depends on BR2_PACKAGE_QEMU_VNC
 	select BR2_PACKAGE_JPEG
 
+# TLS does not work with static link, because the gnutls .pc is missing a
+# dependency on libintl... :-(
+config BR2_PACKAGE_QEMU_VNC_TLS
+	bool "TLS encryption"
+	depends on BR2_PACKAGE_QEMU_VNC
+	depends on !BR2_PREFER_STATIC_LIB
+	select BR2_PACKAGE_GNUTLS
+
+comment "VNC TLS encryption does not work for static link"
+    depends on BR2_PACKAGE_QEMU_VNC && BR2_PREFER_STATIC_LIB
+
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
 	select BR2_PACKAGE_SDL
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 7563e24..fbf08fc 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -134,6 +134,13 @@ else
 QEMU_OPTS += --disable-vnc-jpeg
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VNC_TLS),y)
+QEMU_OPTS += --enable-vnc-tls
+QEMU_DEPENDENCIES += gnutls
+else
+QEMU_OPTS += --disable-vnc-tls
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_SDL),y)
 QEMU_OPTS += --enable-sdl
 QEMU_DEPENDENCIES += sdl
@@ -166,7 +173,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-	        --disable-vnc-tls                   \
 	        --disable-vnc-sasl                  \
 	        --disable-virtfs                    \
 	        --disable-brlapi                    \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 09/29] package/qemu: add option to not install blobs
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (7 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 08/29] package/qemu: add VNC TLS-encryption Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 10/29] package/qemu: add option to remove unwanted keymaps Yann E. MORIN
                   ` (19 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   16 ++++++++++++++++
 package/qemu/qemu.mk   |    4 ++++
 2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 1e80f6a..54f49ff 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -113,4 +113,20 @@ config BR2_PACKAGE_QEMU_SDL
 	  Say 'y' to enable the SDL frontend, that is, a graphical window
 	  presenting the VM's display.
 
+comment "Misc. features"
+
+config BR2_PACKAGE_QEMU_BLOBS
+	bool "Install binary blobs"
+	default y
+	help
+	  Say 'y' here (the default) to install binary blobs (such as BIOS
+	  or firmwares for the different machines simulated by QEMU).
+	  Say 'n' to not install those blobs.
+	  
+	  Note: Some machines may be unbootable without those blobs.
+	        If unsure, say 'y'.
+	  
+	  Note2: This has nothing to do with the licensing of the blobs;
+	         some (most?) even have a free and/or open source license.
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index fbf08fc..49e2f35 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,10 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
+QEMU_OPTS += --disable-blobs
+endif
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
-- 
1.7.2.5

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

* [Buildroot] [PATCH 10/29] package/qemu: add option to remove unwanted keymaps
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (8 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 09/29] package/qemu: add option to not install blobs Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 11/29] package/qemu: add uuid support Yann E. MORIN
                   ` (18 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   12 ++++++++++
 package/qemu/qemu.mk   |   55 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 54f49ff..41c4cf2 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -129,4 +129,16 @@ config BR2_PACKAGE_QEMU_BLOBS
 	  Note2: This has nothing to do with the licensing of the blobs;
 	         some (most?) even have a free and/or open source license.
 
+config BR2_PACKAGE_QEMU_KEYMAPS
+	string "Keymaps to keep"
+	default "all"
+	help
+	  Enter the list of keymap(s) to keep. To keep many keymaps, you can
+	  use shell globs, or you can enter a space-separated list of keymaps:
+	    - empty to remove all keymaps
+	    - 'all' to keep all keymaps
+	    - 'fr*' to keep all french keymaps
+	    - 'de fr* en-*' for german, french and english keymaps
+	    - and so on (see the QEMU source for all supported keymaps)
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 49e2f35..ea1487a 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -153,6 +153,61 @@ ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
 
+# Post-install removal of unwanted keymaps:
+# - if we want 'all', we do nothing;
+# - if we want none, we completely remove the keymap dir
+# - otherwise:
+#   - we completely remove the keymap dir; and recreate it empty
+#   - we recursively copy only those keymaps we want (as keymaps may include
+#     some common files)
+#
+# NOTE-1: we need the un-quoted list of keymaps, so it is interpreted as a glob
+#         by the shell.
+# NOTE-2: yes, all (current!) keymaps do include the 'common' keymap, which in
+#         turn includes the 'modifiers' keymap, so we could unconditionally
+#         copy those two, for a much simpler code. Doing it the way it's done
+#         is more generic, and will adapt to any future keymaps which has
+#         multiple includes, or none.
+# NOTE-3: we can't use $(SED), because it expands to include the '-i' option,
+#         which we do *not* want here, because we are not munging a file, but
+#         using sed as a enhanced grep.
+#
+QEMU_KEYMAPS = $(call qstrip,$(BR2_PACKAGE_QEMU_KEYMAPS))
+
+ifeq ($(QEMU_KEYMAPS),all)      #--- Keep all keymaps ---#
+define QEMU_POST_INSTALL_KEYMAPS
+	@: Nothing
+endef
+
+else ifeq ($(QEMU_KEYMAPS),)    #--- Remove all keymaps ---#
+define QEMU_POST_INSTALL_KEYMAPS
+	rm -rf "$(TARGET_DIR)/usr/share/qemu/keymaps"
+endef
+
+else                            #--- Keep selected keymaps ---#
+define QEMU_POST_INSTALL_KEYMAPS
+	rm -rf "$(TARGET_DIR)/usr/share/qemu/keymaps"
+	mkdir -p "$(TARGET_DIR)/usr/share/qemu/keymaps"
+	add_keymap() {                                                  \
+	    local k="$${1}"; local dest="$${2}";                        \
+	    if [ -n "$${k}" -a ! -f "$${dest}/$${k}" ]; then            \
+	        cp -v "$${k}" "$${dest}";                               \
+	        for k in $$(sed -r -e '/^include[[:space:]]+(.*)$$/!d;' \
+	                           -e 's//\1/;' "$${k}" ); do           \
+	            add_keymap "$${k}" "$${dest}";                      \
+	        done;                                                   \
+	    fi;                                                         \
+	};                                                              \
+	cd $(@D)/pc-bios/keymaps;                                       \
+	for k in $(QEMU_KEYMAPS); do                                    \
+	    add_keymap "$${k}" "$(TARGET_DIR)/usr/share/qemu/keymaps";  \
+	done
+endef
+
+endif # Keymaps to keep
+
+QEMU_POST_INSTALL_TARGET_HOOKS += QEMU_POST_INSTALL_KEYMAPS
+
 # Note: although QEMU uses a ./configure script, it is not compatible with
 #       the traditional autotools options (eg. --target et al.), so we have
 #       to override the default provided by the autotools-package infra, and
-- 
1.7.2.5

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

* [Buildroot] [PATCH 11/29] package/qemu: add uuid support
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (9 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 10/29] package/qemu: add option to remove unwanted keymaps Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 12/29] package/qemu: add support for capabilities Yann E. MORIN
                   ` (17 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 41c4cf2..4952c34 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -115,6 +115,16 @@ config BR2_PACKAGE_QEMU_SDL
 
 comment "Misc. features"
 
+config BR2_PACKAGE_QEMU_UUID
+	bool "Enable VMs UUID"
+	depends on BR2_PACKAGE_UTIL_LINUX
+	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
+	help
+	  Say 'y' here to have QEMU support UUIDs for VMs.
+
+comment "UUID support requires util-linux (for libuuid)"
+	depends on !BR2_PACKAGE_UTIL_LINUX
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index ea1487a..bdccbf5 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,13 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
+QEMU_OPTS += --enable-uuid
+QEMU_DEPENDENCIES += util-linux
+else
+QEMU_OPTS += --disable-uuid
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -240,7 +247,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
-	        --disable-uuid                      \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
 	        --disable-cap-ng                    \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 12/29] package/qemu: add support for capabilities
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (10 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 11/29] package/qemu: add uuid support Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 13/29] package/qemu: add attr/xattr option Yann E. MORIN
                   ` (16 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |   11 ++++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 4952c34..2c46937 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -125,6 +125,13 @@ config BR2_PACKAGE_QEMU_UUID
 comment "UUID support requires util-linux (for libuuid)"
 	depends on !BR2_PACKAGE_UTIL_LINUX
 
+config BR2_PACKAGE_QEMU_CAP
+	bool "Enable capabilities"
+	select BR2_PACKAGE_LIBCAP
+	select BR2_PACKAGE_LIBCAP_NG
+	help
+	  Say 'y' here if you want QEMU to support capabilities.
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index bdccbf5..7e704b9 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -156,6 +156,16 @@ else
 QEMU_OPTS += --disable-uuid
 endif
 
+# There's no configure flag to disable use of libcap
+# so we must use an environment variable
+ifeq ($(BR2_PACKAGE_QEMU_CAP),y)
+QEMU_OPTS += --enable-cap-ng
+QEMU_DEPENDENCIES += libcap libcap-ng
+else
+QEMU_OPTS += --disable-cap-ng
+QEMU_VARS += cap=no
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -249,7 +259,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-guest-base                \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
-	        --disable-cap-ng                    \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 13/29] package/qemu: add attr/xattr option
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (11 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 12/29] package/qemu: add support for capabilities Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 14/29] package/qemu: add support for virtfs Yann E. MORIN
                   ` (15 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    6 ++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 2c46937..8719bde 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -132,6 +132,12 @@ config BR2_PACKAGE_QEMU_CAP
 	help
 	  Say 'y' here if you want QEMU to support capabilities.
 
+config BR2_PACKAGE_QEMU_ATTR
+	bool "Enable attr and xattr"
+	help
+	  Say 'y' here to have QEMU support attributes (attr) and eXtended
+	  attibutes (xattr).
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 7e704b9..c5861f0 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -166,6 +166,12 @@ QEMU_OPTS += --disable-cap-ng
 QEMU_VARS += cap=no
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_ATTR),y)
+QEMU_OPTS += --enable-attr
+else
+QEMU_OPTS += --disable-attr
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -244,7 +250,6 @@ define QEMU_CONFIGURE_CMDS
 	        --audio-card-list=                  \
 	        --enable-kvm                        \
 	        --enable-nptl                       \
-	        --enable-attr                       \
 	        --enable-vhost-net                  \
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 14/29] package/qemu: add support for virtfs
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (12 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 13/29] package/qemu: add attr/xattr option Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:43 ` [Buildroot] [PATCH 15/29] package/qemu: add support for cURL Yann E. MORIN
                   ` (14 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   16 ++++++++++++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 8719bde..75df82b 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -113,6 +113,22 @@ config BR2_PACKAGE_QEMU_SDL
 	  Say 'y' to enable the SDL frontend, that is, a graphical window
 	  presenting the VM's display.
 
+comment "Block backends"
+
+config BR2_PACKAGE_QEMU_VIRTFS
+	bool "Enable plan9 ressources using VirtFS"
+	select BR2_PACKAGE_QEMU_CAP
+	select BR2_PACKAGE_QEMU_ATTR
+	help
+	  Say 'y' here if you want QEMU to provide a plan9 virtual "share"
+	  accessible from the guest OS for relatively fast access to host
+	  files.
+	  
+	  This requires that the guest OS is capable of accessing plan9
+	  ressources (typically, in Linux, this is done by a network
+	  file-system called 9p, and can be accelerated by using the 9p
+	  virtio).
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index c5861f0..39e5c49 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,12 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y)
+QEMU_OPTS += --enable-virtfs
+else
+QEMU_OPTS += --disable-virtfs
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -255,7 +261,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-xen                       \
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
-	        --disable-virtfs                    \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
 	        --disable-curl                      \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 15/29] package/qemu: add support for cURL
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (13 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 14/29] package/qemu: add support for virtfs Yann E. MORIN
@ 2013-01-29 22:43 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 16/29] package/qemu: enable use of the curses frontend Yann E. MORIN
                   ` (13 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:43 UTC (permalink / raw)
  To: buildroot

QEMU can use libcurl as a block backend, to access remote block devices.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   10 ++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 75df82b..4e5b81b 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -129,6 +129,16 @@ config BR2_PACKAGE_QEMU_VIRTFS
 	  file-system called 9p, and can be accelerated by using the 9p
 	  virtio).
 
+config BR2_PACKAGE_QEMU_CURL
+	bool "Enable remote block-devices using cURL"
+	depends on !BR2_PREFER_STATIC_LIB
+	select BR2_PACKAGE_LIBCURL
+	help
+	  Say 'y' to access remote block-devices using libcurl.
+
+comment "cURL support is not possible with static linking"
+    depends on BR2_PREFER_STATIC_LIB
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 39e5c49..6fda51e 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -155,6 +155,13 @@ else
 QEMU_OPTS += --disable-virtfs
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_CURL),y)
+QEMU_OPTS += --enable-curl
+QEMU_DEPENDENCIES += libcurl
+else
+QEMU_OPTS += --disable-curl
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -263,7 +270,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-curses                    \
-	        --disable-curl                      \
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 16/29] package/qemu: enable use of the curses frontend
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (14 preceding siblings ...)
  2013-01-29 22:43 ` [Buildroot] [PATCH 15/29] package/qemu: add support for cURL Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 17/29] package/qemu: add BlueZ connectivity Yann E. MORIN
                   ` (12 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 4e5b81b..dbe7cb9 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -113,6 +113,17 @@ config BR2_PACKAGE_QEMU_SDL
 	  Say 'y' to enable the SDL frontend, that is, a graphical window
 	  presenting the VM's display.
 
+config BR2_PACKAGE_QEMU_CURSES
+	bool "Enable the curses frontend"
+	select BR2_PACKAGE_NCURSES
+	help
+	  Say 'y' to use curses to display the text-mode of VGA outpout.
+	  
+	  If the VM's graphic adapter does not support VGA text-mode, or it
+	  is in graphical mode, then nothing will be displayed with this
+	  frontend (although you can still use the SDL or VNC frontends to
+	  display the graphical output).
+
 comment "Block backends"
 
 config BR2_PACKAGE_QEMU_VIRTFS
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 6fda51e..055c151 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -149,6 +149,13 @@ else
 QEMU_OPTS += --disable-sdl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_CURSES),y)
+QEMU_OPTS += --enable-curses
+QEMU_DEPENDENCIES += ncurses
+else
+QEMU_OPTS += --disable-curses
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y)
 QEMU_OPTS += --enable-virtfs
 else
@@ -269,7 +276,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
-	        --disable-curses                    \
 	        --disable-fdt                       \
 	        --disable-bluez                     \
 	        --disable-guest-base                \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 17/29] package/qemu: add BlueZ connectivity
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (15 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 16/29] package/qemu: enable use of the curses frontend Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 18/29] package/qemu: add AIO support Yann E. MORIN
                   ` (11 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   11 +++++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index dbe7cb9..f22bb19 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -150,6 +150,17 @@ config BR2_PACKAGE_QEMU_CURL
 comment "cURL support is not possible with static linking"
     depends on BR2_PREFER_STATIC_LIB
 
+comment "Networking"
+
+config BR2_PACKAGE_QEMU_BLUEZ
+	bool "Enable BlueZ connectivity"
+	depends on BR2_PACKAGE_BLUEZ_UTILS
+	help
+	  Say 'y' here to enable BlueZ (bluetooth) connectivity in QEMU.
+
+comment "BlueZ connectivity depends on bluez-utils"
+	depends on !BR2_PACKAGE_BLUEZ_UTILS
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 055c151..4377b54 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -169,6 +169,13 @@ else
 QEMU_OPTS += --disable-curl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_BLUEZ),y)
+QEMU_OPTS += --enable-bluez
+QEMU_DEPENDENCIES += bluez_utils
+else
+QEMU_OPTS += --disable-bluez
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -277,7 +284,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
 	        --disable-fdt                       \
-	        --disable-bluez                     \
 	        --disable-guest-base                \
 	        --disable-vde                       \
 	        --disable-linux-aio                 \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 18/29] package/qemu: add AIO support
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (16 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 17/29] package/qemu: add BlueZ connectivity Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 19/29] package/qemu: add support for VDE switches Yann E. MORIN
                   ` (10 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Add support for Asynchronous Input/Ouput (AIO).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index f22bb19..d57d2e9 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -150,6 +150,15 @@ config BR2_PACKAGE_QEMU_CURL
 comment "cURL support is not possible with static linking"
     depends on BR2_PREFER_STATIC_LIB
 
+config BR2_PACKAGE_QEMU_AIO
+	bool "Enable AIO"
+	depends on BR2_PACKAGE_LIBAIO
+	help
+	  Say 'y' here to enable Asynchronous Input/Output (AIO).
+
+comment "AIO support depends on libaio"
+	depends on !BR2_PACKAGE_LIBAIO
+
 comment "Networking"
 
 config BR2_PACKAGE_QEMU_BLUEZ
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 4377b54..31bd2e7 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -169,6 +169,13 @@ else
 QEMU_OPTS += --disable-curl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_AIO),y)
+QEMU_OPTS += --enable-linux-aio
+QEMU_DEPENDENCIES += libaio
+else
+QEMU_OPTS += --disable-linux-aio
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLUEZ),y)
 QEMU_OPTS += --enable-bluez
 QEMU_DEPENDENCIES += bluez_utils
@@ -286,7 +293,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-vde                       \
-	        --disable-linux-aio                 \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 19/29] package/qemu: add support for VDE switches
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (17 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 18/29] package/qemu: add AIO support Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 20/29] package/qemu: add iSCSI support Yann E. MORIN
                   ` (9 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index d57d2e9..123fe6b 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -170,6 +170,13 @@ config BR2_PACKAGE_QEMU_BLUEZ
 comment "BlueZ connectivity depends on bluez-utils"
 	depends on !BR2_PACKAGE_BLUEZ_UTILS
 
+config BR2_PACKAGE_QEMU_VDE
+	bool "Enable VDE"
+	select BR2_PACKAGE_VDE2
+	help
+	  Say 'y' here to have QEMU connect to VDE (Virtual Distributed
+	  Ethernet) switches.
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 31bd2e7..9915155 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -183,6 +183,13 @@ else
 QEMU_OPTS += --disable-bluez
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_VDE),y)
+QEMU_OPTS += --enable-vde
+QEMU_DEPENDENCIES += vde2
+else
+QEMU_OPTS += --disable-vde
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -292,7 +299,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-brlapi                    \
 	        --disable-fdt                       \
 	        --disable-guest-base                \
-	        --disable-vde                       \
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 20/29] package/qemu: add iSCSI support
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (18 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 19/29] package/qemu: add support for VDE switches Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 21/29] package/qemu: add support for USB redirection Yann E. MORIN
                   ` (8 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    6 ++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 123fe6b..9f50533 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -150,6 +150,12 @@ config BR2_PACKAGE_QEMU_CURL
 comment "cURL support is not possible with static linking"
     depends on BR2_PREFER_STATIC_LIB
 
+config BR2_PACKAGE_QEMU_ISCSI
+	bool "Enable remote block-devices using iSCSI"
+	select BR2_PACKAGE_LIBISCSI
+	help
+	  Say 'y' here to have QEMU use iSCSI targets as block-devices.
+
 config BR2_PACKAGE_QEMU_AIO
 	bool "Enable AIO"
 	depends on BR2_PACKAGE_LIBAIO
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 9915155..77ecde4 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -169,6 +169,13 @@ else
 QEMU_OPTS += --disable-curl
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_ISCSI),y)
+QEMU_OPTS += --enable-libiscsi
+QEMU_DEPENDENCIES += libiscsi
+else
+QEMU_OPTS += --disable-libiscsi
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_AIO),y)
 QEMU_OPTS += --enable-linux-aio
 QEMU_DEPENDENCIES += libaio
@@ -302,7 +309,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-	        --disable-libiscsi                  \
 	        --disable-usb-redir                 \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 21/29] package/qemu: add support for USB redirection
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (19 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 20/29] package/qemu: add iSCSI support Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 22/29] package/qemu: add support for Spice Yann E. MORIN
                   ` (7 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 9f50533..3b0221e 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -156,6 +156,15 @@ config BR2_PACKAGE_QEMU_ISCSI
 	help
 	  Say 'y' here to have QEMU use iSCSI targets as block-devices.
 
+config BR2_PACKAGE_QEMU_USBREDIR
+	bool "Enable USB redirection"
+	depends on BR2_PACKAGE_USBREDIR
+	help
+	  Say 'y' here to have QEMU support USB redirection over the network.
+
+comment "USB redirection requires usbredir"
+	depends on !BR2_PACKAGE_USBREDIR
+
 config BR2_PACKAGE_QEMU_AIO
 	bool "Enable AIO"
 	depends on BR2_PACKAGE_LIBAIO
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 77ecde4..195a808 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -176,6 +176,13 @@ else
 QEMU_OPTS += --disable-libiscsi
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_USBREDIR),y)
+QEMU_OPTS += --enable-usb-redir
+QEMU_DEPENDENCIES += usbredir
+else
+QEMU_OPTS += --disable-usb-redir
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_AIO),y)
 QEMU_OPTS += --enable-linux-aio
 QEMU_DEPENDENCIES += libaio
@@ -309,7 +316,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-docs                      \
 	        --disable-spice                     \
 	        --disable-rbd                       \
-	        --disable-usb-redir                 \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
 	        --disable-seccomp                   \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 22/29] package/qemu: add support for Spice
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (20 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 21/29] package/qemu: add support for USB redirection Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 23/29] package/qemu: enable sound Yann E. MORIN
                   ` (6 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    9 +++++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 3b0221e..0e45b18 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -124,6 +124,15 @@ config BR2_PACKAGE_QEMU_CURSES
 	  frontend (although you can still use the SDL or VNC frontends to
 	  display the graphical output).
 
+config BR2_PACKAGE_QEMU_SPICE
+	bool "Enable Spice frontend"
+	depends on BR2_PACKAGE_SPICE
+	help
+	  Say 'y' here to have QEMU support Spice as a (VNC-like) frontend.
+
+comment "Spice support requires spice-server"
+	depends on !BR2_PACKAGE_SPICE
+
 comment "Block backends"
 
 config BR2_PACKAGE_QEMU_VIRTFS
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 195a808..8a082b4 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -156,6 +156,13 @@ else
 QEMU_OPTS += --disable-curses
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_SPICE),y)
+QEMU_OPTS += --enable-spice
+QEMU_DEPENDENCIES += spice
+else
+QEMU_OPTS += --disable-spice
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_VIRTFS),y)
 QEMU_OPTS += --enable-virtfs
 else
@@ -314,7 +321,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-docs                      \
-	        --disable-spice                     \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 23/29] package/qemu: enable sound
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (21 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 22/29] package/qemu: add support for Spice Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 24/29] package/qemu: add support for libseccomp Yann E. MORIN
                   ` (5 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   38 ++++++++++++++++++++++++++++++++++++++
 package/qemu/qemu.mk   |   19 +++++++++++++++++--
 2 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 0e45b18..d6b2f95 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -201,6 +201,44 @@ config BR2_PACKAGE_QEMU_VDE
 	  Say 'y' here to have QEMU connect to VDE (Virtual Distributed
 	  Ethernet) switches.
 
+comment "Sound"
+
+config BR2_PACKAGE_QEMU_SOUND_CARDS
+	string "Enable sound cards"
+	default "ac97 es1370 hda"
+	help
+	  Enter here the list of sound cards you want QEMU to emulate.
+	  The available sound cards are:
+	    ac97 es1370 sb16 cs4231a adlib gus hda
+	  
+	  The default is: ac97 es1370 hda
+	  
+	  Note: even if you say 'n' to both alsa and SDL drivers, below, QEMU
+	  always include the 'wav' driver, which stores the generated sound
+	  into a file, and the 'none' driver, which discards generated sound.
+
+config BR2_PACKAGE_QEMU_MIXEMU
+	bool "Enable mixer emulation"
+	help
+	  Say 'y' here to have QEMU emulate a mixer device.
+
+config BR2_PACKAGE_QEMU_SOUND_ALSA
+	bool "Enable sound via alsa"
+	select BR2_PACKAGE_ALSA_LIB
+	help
+	  Say 'y' here to have QEMU play sound from the VMs via alsa.
+	  
+	  Note: this is only for system emulation, not user emulation.
+
+config BR2_PACKAGE_QEMU_SOUND_SDL
+	bool "Enable sound via SDL"
+	select BR2_PACKAGE_QEMU_SDL # Requires that SDL frontend be selected
+	select BR2_PACKAGE_SDL
+	help
+	  Say 'y' here to have QEMU play sound from the VMs via SDL.
+	  
+	  Note: this is only for system emulation, not user emulation.
+
 comment "Misc. features"
 
 config BR2_PACKAGE_QEMU_UUID
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 8a082b4..0cd1a37 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -211,6 +211,23 @@ else
 QEMU_OPTS += --disable-vde
 endif
 
+QEMU_SND_DRV =
+ifeq ($(BR2_PACKAGE_QEMU_SOUND_ALSA),y)
+QEMU_SND_DRV += alsa
+QEMU_DEPENDENCIES += alsa-lib
+endif
+ifeq ($(BR2_PACKAGE_QEMU_SOUND_SDL),y)
+QEMU_SND_DRV += sdl
+QEMU_DEPENDENCIES += sdl
+endif
+ifneq ($(QEMU_SND_DRV),)
+QEMU_OPTS += --audio-drv-list="$(QEMU_SND_DRV)"
+endif
+QEMU_OPTS += --audio-card-list=$(BR2_PACKAGE_QEMU_SOUND_CARDS)
+ifeq ($(BR2_PACKAGE_QEMU_MIXEMU),y)
+QEMU_OPTS += --enable-mixemu
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -308,8 +325,6 @@ define QEMU_CONFIGURE_CMDS
 	        --prefix=/usr                       \
 	        --cross-prefix=$(TARGET_CROSS)      \
 	        --with-system-pixman                \
-	        --audio-drv-list=                   \
-	        --audio-card-list=                  \
 	        --enable-kvm                        \
 	        --enable-nptl                       \
 	        --enable-vhost-net                  \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 24/29] package/qemu: add support for libseccomp
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (22 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 23/29] package/qemu: enable sound Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 25/29] package/qemu: option to build the docs Yann E. MORIN
                   ` (4 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index d6b2f95..f71311d 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -264,6 +264,13 @@ config BR2_PACKAGE_QEMU_ATTR
 	  Say 'y' here to have QEMU support attributes (attr) and eXtended
 	  attibutes (xattr).
 
+config BR2_PACKAGE_QEMU_SECCOMP
+	bool "Enable seccomp filter"
+	select BR2_PACKAGE_LIBSECCOMP
+	help
+	  Say 'y' here to have QEMU to use the Linux kernel's seccomp filter,
+	  to more tightly confine the VMs.
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 0cd1a37..ddee260 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -251,6 +251,13 @@ else
 QEMU_OPTS += --disable-attr
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_SECCOMP),y)
+QEMU_OPTS += --enable-seccomp
+QEMU_DEPENDENCIES += libseccomp
+else
+QEMU_OPTS += --disable-seccomp
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -339,7 +346,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-	        --disable-seccomp                   \
 	        --disable-sparse                    \
 	        --disable-tools                     \
 	        $(QEMU_OPTS)                        \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 25/29] package/qemu: option to build the docs
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (23 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 24/29] package/qemu: add support for libseccomp Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 26/29] package/qemu: add option to install tools on the target Yann E. MORIN
                   ` (3 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/qemu.mk |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index ddee260..90b1ebf 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -262,6 +262,12 @@ ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
 
+ifeq ($(BR2_HAVE_DOCUMENTATION),y)
+QEMU_OPTS += --enable-docs
+else
+QEMU_OPTS += --disable-docs
+endif
+
 # Post-install removal of unwanted keymaps:
 # - if we want 'all', we do nothing;
 # - if we want none, we completely remove the keymap dir
@@ -342,7 +348,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-brlapi                    \
 	        --disable-fdt                       \
 	        --disable-guest-base                \
-	        --disable-docs                      \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
 	        --disable-strip                     \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 26/29] package/qemu: add option to install tools on the target
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (24 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 25/29] package/qemu: option to build the docs Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 27/29] package/qemu: move sub-options into a sub-menu Yann E. MORIN
                   ` (2 subsequent siblings)
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Usually, tools on the target are not needed, so they are disabled
by default. Add an option to install them on the target.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    6 ++++++
 package/qemu/qemu.mk   |    7 ++++++-
 2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index f71311d..022b07b 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -271,6 +271,12 @@ config BR2_PACKAGE_QEMU_SECCOMP
 	  Say 'y' here to have QEMU to use the Linux kernel's seccomp filter,
 	  to more tightly confine the VMs.
 
+config BR2_PACKAGE_QEMU_TOOLS_ON_TARGET
+	bool "tools on target"
+	help
+	  Say 'y' here to also install QEMU tools (qemu-{img,io,nbd}) on the
+	  target.
+
 config BR2_PACKAGE_QEMU_BLOBS
 	bool "Install binary blobs"
 	default y
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index 90b1ebf..d745e0d 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -258,6 +258,12 @@ else
 QEMU_OPTS += --disable-seccomp
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_TOOLS_ON_TARGET),y)
+QEMU_OPTS += --enable-tools
+else
+QEMU_OPTS += --disable-tools
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_BLOBS),)
 QEMU_OPTS += --disable-blobs
 endif
@@ -352,7 +358,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-smartcard                 \
 	        --disable-strip                     \
 	        --disable-sparse                    \
-	        --disable-tools                     \
 	        $(QEMU_OPTS)                        \
 	)
 endef
-- 
1.7.2.5

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

* [Buildroot] [PATCH 27/29] package/qemu: move sub-options into a sub-menu
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (25 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 26/29] package/qemu: add option to install tools on the target Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 28/29] package/qemu: enable a static build Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 29/29] package/qemu: add support for FDT Yann E. MORIN
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

As there are now quite a few options to QEMU, move them into their own
sub-menu, so it looks a bit less crowded in the 'misc' menu.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 022b07b..64a7e6f 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -2,7 +2,7 @@ comment "QEMU requires a toolchain with threads"
 	depends on !BR2_i386 && !BR2_x86_64
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
 
-config BR2_PACKAGE_QEMU
+menuconfig BR2_PACKAGE_QEMU
 	bool "QEMU"
 	depends on BR2_i386 || BR2_x86_64
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-- 
1.7.2.5

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

* [Buildroot] [PATCH 28/29] package/qemu: enable a static build
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (26 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 27/29] package/qemu: move sub-options into a sub-menu Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  2013-01-29 22:44 ` [Buildroot] [PATCH 29/29] package/qemu: add support for FDT Yann E. MORIN
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
It can be useful to have a statically-linked QEMU (especially the
linux-user and bsd-user emulators) to avoid run-time issues with
dynamically-loaded libraries.

There is an issue where QEMU could not be able to properly (re)map
libraries in memory due to some overlap between its own memory
mappings and the mappings of the user application being translated
(it's a complex issue, so don't count on me to properly explain it,
I did not understood it completely either... :-/ ).
---
 package/qemu/Config.in              |   37 ++++++++++++++----
 package/qemu/qemu-static-curl.patch |   72 +++++++++++++++++++++++++++++++++++
 package/qemu/qemu-static-sdl.patch  |   54 ++++++++++++++++++++++++++
 package/qemu/qemu.mk                |    4 ++
 4 files changed, 159 insertions(+), 8 deletions(-)
 create mode 100644 package/qemu/qemu-static-curl.patch
 create mode 100644 package/qemu/qemu-static-sdl.patch

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index 64a7e6f..e433cc0 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -100,11 +100,11 @@ config BR2_PACKAGE_QEMU_VNC_JPEG
 config BR2_PACKAGE_QEMU_VNC_TLS
 	bool "TLS encryption"
 	depends on BR2_PACKAGE_QEMU_VNC
-	depends on !BR2_PREFER_STATIC_LIB
+	depends on !BR2_PACKAGE_QEMU_STATIC
 	select BR2_PACKAGE_GNUTLS
 
 comment "VNC TLS encryption does not work for static link"
-    depends on BR2_PACKAGE_QEMU_VNC && BR2_PREFER_STATIC_LIB
+    depends on BR2_PACKAGE_QEMU_VNC && BR2_PACKAGE_QEMU_STATIC
 
 config BR2_PACKAGE_QEMU_SDL
 	bool "Enable SDL frontend"
@@ -127,11 +127,21 @@ config BR2_PACKAGE_QEMU_CURSES
 config BR2_PACKAGE_QEMU_SPICE
 	bool "Enable Spice frontend"
 	depends on BR2_PACKAGE_SPICE
+	depends on !BR2_PACKAGE_QEMU_STATIC || BR2_PREFER_STATIC_LIB
 	help
 	  Say 'y' here to have QEMU support Spice as a (VNC-like) frontend.
 
-comment "Spice support requires spice-server"
-	depends on !BR2_PACKAGE_SPICE
+	  Note:
+	    Spice links against alsa-libs, but alsa-libs can't be built both
+	    shared and static at the same time, so we can not link with a
+	    static spice to get a static QEMU (BR2_PACKAGE_QEMU_STATIC) if
+	    buildroot as a whole does not also build only static libraries
+	    (BR2_PREFER_STATIC_LIB).
+
+if !BR2_PACKAGE_SPICE || ( BR2_PACKAGE_QEMU_STATIC && !BR2_PREFER_STATIC_LIB )
+comment "Spice support requires spice-server, and does not work for a static"
+comment "build of QEMU unless BR2_PREFER_STATIC_LIB is set, too"
+endif
 
 comment "Block backends"
 
@@ -151,14 +161,10 @@ config BR2_PACKAGE_QEMU_VIRTFS
 
 config BR2_PACKAGE_QEMU_CURL
 	bool "Enable remote block-devices using cURL"
-	depends on !BR2_PREFER_STATIC_LIB
 	select BR2_PACKAGE_LIBCURL
 	help
 	  Say 'y' to access remote block-devices using libcurl.
 
-comment "cURL support is not possible with static linking"
-    depends on BR2_PREFER_STATIC_LIB
-
 config BR2_PACKAGE_QEMU_ISCSI
 	bool "Enable remote block-devices using iSCSI"
 	select BR2_PACKAGE_LIBISCSI
@@ -222,14 +228,21 @@ config BR2_PACKAGE_QEMU_MIXEMU
 	help
 	  Say 'y' here to have QEMU emulate a mixer device.
 
+# Alsa can not build both shared and static libs at the same time.
+# But we may want to build QEMU staticaly, even though the global
+# BR2_PREFER_STATIC_LIB is not set. Disable that case.
 config BR2_PACKAGE_QEMU_SOUND_ALSA
 	bool "Enable sound via alsa"
+	depends on !BR2_PACKAGE_QEMU_STATIC || BR2_PREFER_STATIC_LIB
 	select BR2_PACKAGE_ALSA_LIB
 	help
 	  Say 'y' here to have QEMU play sound from the VMs via alsa.
 	  
 	  Note: this is only for system emulation, not user emulation.
 
+comment "Alsa sound static link works only if BR2_PREFER_STATIC is set"
+	depends on BR2_PACKAGE_QEMU_STATIC && !BR2_PREFER_STATIC_LIB
+
 config BR2_PACKAGE_QEMU_SOUND_SDL
 	bool "Enable sound via SDL"
 	select BR2_PACKAGE_QEMU_SDL # Requires that SDL frontend be selected
@@ -303,4 +316,12 @@ config BR2_PACKAGE_QEMU_KEYMAPS
 	    - 'de fr* en-*' for german, french and english keymaps
 	    - and so on (see the QEMU source for all supported keymaps)
 
+config BR2_PREFER_STATIC_LIB
+    select BR2_PACKAGE_QEMU_STATIC
+
+config BR2_PACKAGE_QEMU_STATIC
+	bool "Build statically"
+	help
+	  Build static qemu executable(s).
+
 endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu-static-curl.patch b/package/qemu/qemu-static-curl.patch
new file mode 100644
index 0000000..24931bd
--- /dev/null
+++ b/package/qemu/qemu-static-curl.patch
@@ -0,0 +1,72 @@
+configure: fix detection for cURL libs when static linking
+
+Currently, to check for cURL, configure uses either pkg-config (the default),
+or curl-config (as a fallback).
+
+But curl-config and pkg-config do not have the same set of options:
+  - to check for shared libs, both use the option: --libs
+  - to check for static libs:
+    - pkg-config uses: --static --libs
+    - curl-config uses: --static-libs
+
+To add to the complexity, pkg-config is called through the querry_pkg_config
+wrapper, that already passes --static when static linking is required, but
+there is no such wrapper for curl-config, so we miss the occasion to pass
+--static-libs
+
+To fix this:
+  - introduce a new variable QEMU_XXX_CONFIG_LIBS_FLAGS that mirrors the
+    behavior of QEMU_PKG_CONFIG_FLAGS; this variable can be used by all
+    xxx-config scripts (eg. curl-config, but later sdl-config too).
+    Default it to '--libs', which is for shared linking;
+  - properly use either --libs for pkg-config (--static is already takend
+    care of in the wrapper), or $QEMU_XXX_CONFIG_LIBS_FLAGS for
+    curl-config.
+    
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch sent upstream:
+    http://lists.nongnu.org/archive/html/qemu-trivial/2012-08/msg00165.html
+
+diff --git a/configure b/configure
+index d97fd81..e6a7c14 100755
+--- a/configure
++++ b/configure
+@@ -124,7 +124,7 @@
+ cc_i386=i386-pc-linux-gnu-gcc
+ libs_qga=""
+ debug_info="yes"
+-
++QEMU_XXX_CONFIG_LIBS_FLAGS="--libs"
+ # Don't accept a target_list environment variable.
+ unset target_list
+ 
+@@ -614,6 +614,7 @@
+     static="yes"
+     LDFLAGS="-static $LDFLAGS"
+     QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS"
++    QEMU_XXX_CONFIG_LIBS_FLAGS="--static-libs"
+   ;;
+   --mandir=*) mandir="$optarg"
+   ;;
+@@ -2051,8 +2052,10 @@
+ 
+ if $pkg_config libcurl --modversion >/dev/null 2>&1; then
+   curlconfig="$pkg_config libcurl"
++  curlconfiglibs="--libs"
+ else
+   curlconfig=curl-config
++  curlconfiglibs="$QEMU_XXX_CONFIG_LIBS_FLAGS"
+ fi
+ 
+ if test "$curl" != "no" ; then
+@@ -2061,7 +2064,7 @@
+ int main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; }
+ EOF
+   curl_cflags=`$curlconfig --cflags 2>/dev/null`
+-  curl_libs=`$curlconfig --libs 2>/dev/null`
++  curl_libs=`$curlconfig $curlconfiglibs 2>/dev/null`
+   if compile_prog "$curl_cflags" "$curl_libs" ; then
+     curl=yes
+     libs_tools="$curl_libs $libs_tools"
diff --git a/package/qemu/qemu-static-sdl.patch b/package/qemu/qemu-static-sdl.patch
new file mode 100644
index 0000000..c14513c
--- /dev/null
+++ b/package/qemu/qemu-static-sdl.patch
@@ -0,0 +1,54 @@
+configure: fix detection for SDL libs when static linking
+
+Currently, configure checks for SDL libs with either pkg-config (the
+default), or with sdl-config (as a fallback).
+
+As for cURL (previous patch), sdl-config does not have the same set of
+options as pkg-config:
+  - to check for shared libs, both use the option: --libs
+  - to check for static libs:
+    - pkg-config uses: --static --libs
+    - curl-config uses: --static-libs
+
+Fix that by using the previously introduced $QEMU_XXX_CONFIG_LIBS_FLAGS
+variable, the way ot was done previously for cURL.
+
+Also, simplify the code-path for checking for SDL libs with a single,
+non-conditional call to $sdlconfig, which is either pkg-config or
+sdl-config, as checked just above.
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+---
+Patch sent upstream:
+    http://lists.nongnu.org/archive/html/qemu-trivial/2012-08/msg00166.html
+
+diff --git a/configure b/configure
+index e6a7c14..6bfedc7 100755
+--- a/configure
++++ b/configure
+@@ -1620,9 +1620,11 @@
+ 
+ if $pkg_config sdl --modversion >/dev/null 2>&1; then
+   sdlconfig="$pkg_config sdl"
++  sdlconfiglibs="--libs"
+   _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
+ elif has ${sdl_config}; then
+   sdlconfig="$sdl_config"
++  sdlconfiglibs="$QEMU_XXX_CONFIG_LIBS_FLAGS"
+   _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
+ else
+   if test "$sdl" = "yes" ; then
+@@ -1642,11 +1644,7 @@
+ int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
+ EOF
+   sdl_cflags=`$sdlconfig --cflags 2> /dev/null`
+-  if test "$static" = "yes" ; then
+-    sdl_libs=`$sdlconfig --static-libs 2>/dev/null`
+-  else
+-    sdl_libs=`$sdlconfig --libs 2> /dev/null`
+-  fi
++  sdl_libs=`$sdlconfig $sdlconfiglibs 2> /dev/null`
+   if compile_prog "$sdl_cflags" "$sdl_libs" ; then
+     if test "$_sdlversion" -lt 121 ; then
+       sdl_too_old=yes
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index d745e0d..f4705cc 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -274,6 +274,10 @@ else
 QEMU_OPTS += --disable-docs
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_STATIC),y)
+QEMU_OPTS += --static
+endif
+
 # Post-install removal of unwanted keymaps:
 # - if we want 'all', we do nothing;
 # - if we want none, we completely remove the keymap dir
-- 
1.7.2.5

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

* [Buildroot] [PATCH 29/29] package/qemu: add support for FDT
  2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
                   ` (27 preceding siblings ...)
  2013-01-29 22:44 ` [Buildroot] [PATCH 28/29] package/qemu: enable a static build Yann E. MORIN
@ 2013-01-29 22:44 ` Yann E. MORIN
  28 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-29 22:44 UTC (permalink / raw)
  To: buildroot

FDT is the Flat Device Tree, and allows QEMU to pass DTs to the VMs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |    7 +++++++
 package/qemu/qemu.mk   |    8 +++++++-
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index e433cc0..e5bf7c0 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -254,6 +254,13 @@ config BR2_PACKAGE_QEMU_SOUND_SDL
 
 comment "Misc. features"
 
+config BR2_PACKAGE_QEMU_FDT
+        bool "Enable FDT"
+        select BR2_PACKAGE_DTC
+        help
+          Say 'y' here to have QEMU capable of constructing Device Trees,
+          and passing them to the VMs.
+
 config BR2_PACKAGE_QEMU_UUID
 	bool "Enable VMs UUID"
 	depends on BR2_PACKAGE_UTIL_LINUX
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index f4705cc..37f81bf 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -228,6 +228,13 @@ ifeq ($(BR2_PACKAGE_QEMU_MIXEMU),y)
 QEMU_OPTS += --enable-mixemu
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_FDT),y)
+QEMU_OPTS += --enable-fdt
+QEMU_DEPENDENCIES += dtc
+else
+QEMU_OPTS += --disable-fdt
+endif
+
 ifeq ($(BR2_PACKAGE_QEMU_UUID),y)
 QEMU_OPTS += --enable-uuid
 QEMU_DEPENDENCIES += util-linux
@@ -356,7 +363,6 @@ define QEMU_CONFIGURE_CMDS
 	        --disable-slirp                     \
 	        --disable-vnc-sasl                  \
 	        --disable-brlapi                    \
-	        --disable-fdt                       \
 	        --disable-guest-base                \
 	        --disable-rbd                       \
 	        --disable-smartcard                 \
-- 
1.7.2.5

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

* [Buildroot] [PATCH 02/29] package/qemu: build for the target (i386 or x86_64 only)
  2013-01-29 22:43 ` [Buildroot] [PATCH 02/29] package/qemu: build for the target (i386 or x86_64 only) Yann E. MORIN
@ 2013-01-30  8:25   ` Thomas Petazzoni
  2013-01-30 18:47     ` Yann E. MORIN
  0 siblings, 1 reply; 35+ messages in thread
From: Thomas Petazzoni @ 2013-01-30  8:25 UTC (permalink / raw)
  To: buildroot

Dear Yann E. MORIN,

On Tue, 29 Jan 2013 23:43:46 +0100, Yann E. MORIN wrote:

> +# Note: although QEMU uses a ./configure script, it is not compatible with
> +#       the traditional autotools options (eg. --target et al.), so we have
> +#       to override the default provided by the autotools-package infra, and
> +#       provide our own. Sigh... :-/

Then please do not use the autotools-package infrastructure for this
package. It doesn't use autoconf, it doesn't automake, it is *NOT*
autotools.

It is not because it happens to work *today* by just overriding the
QEMU_CONFIGURE_CMDS that it will continue to work tomorrow. For
example, look at the out-of-tree stuff I was working on: for autotools
packages, we will assume that out of tree build is supported, and that
it works in a certain way. Wouldn't this break the qemu package, which
pretends to be an autotools package, but in fact is not?

So, I've said this several times already: do not misuse package
infrastructures, even if it happens to "work" today. Do the right
thing, instead: qemu should use the generic-package infrastructure.

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

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

* [Buildroot] [PATCH 03/29] package/qemu: add basic target selection
  2013-01-29 22:43 ` [Buildroot] [PATCH 03/29] package/qemu: add basic target selection Yann E. MORIN
@ 2013-01-30  8:32   ` Thomas Petazzoni
  2013-01-30 18:48     ` Yann E. MORIN
  0 siblings, 1 reply; 35+ messages in thread
From: Thomas Petazzoni @ 2013-01-30  8:32 UTC (permalink / raw)
  To: buildroot

Dear Yann E. MORIN,

On Tue, 29 Jan 2013 23:43:47 +0100, Yann E. MORIN wrote:
> qemu-1.2.1 requires that at least one target emulation be enabled, so
> we use some kconfig-tricks to force at least the systems emulations to
> be enabled if user emulation is not selected.
> 
> This limitation will be lifted in the upcoming qemu-1.3.x

Humm, the qemu package actually uses version 1.3.1, as per "[PATCH
01/29] package/qemu: bump version to 1.3.1" :-)

You also have the comment related to 1.2.x in the patch itself.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

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

* [Buildroot] [PATCH 02/29] package/qemu: build for the target (i386 or x86_64 only)
  2013-01-30  8:25   ` Thomas Petazzoni
@ 2013-01-30 18:47     ` Yann E. MORIN
  0 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-30 18:47 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On Wednesday 30 January 2013 Thomas Petazzoni wrote:
> On Tue, 29 Jan 2013 23:43:46 +0100, Yann E. MORIN wrote:
> > +# Note: although QEMU uses a ./configure script, it is not compatible with
> > +#       the traditional autotools options (eg. --target et al.), so we have
> > +#       to override the default provided by the autotools-package infra, and
> > +#       provide our own. Sigh... :-/
> 
> Then please do not use the autotools-package infrastructure for this
> package. It doesn't use autoconf, it doesn't automake, it is *NOT*
> autotools.

ACK. :-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 03/29] package/qemu: add basic target selection
  2013-01-30  8:32   ` Thomas Petazzoni
@ 2013-01-30 18:48     ` Yann E. MORIN
  0 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-01-30 18:48 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On Wednesday 30 January 2013 Thomas Petazzoni wrote:
> On Tue, 29 Jan 2013 23:43:47 +0100, Yann E. MORIN wrote:
> > qemu-1.2.1 requires that at least one target emulation be enabled, so
> > we use some kconfig-tricks to force at least the systems emulations to
> > be enabled if user emulation is not selected.
> > 
> > This limitation will be lifted in the upcoming qemu-1.3.x
> 
> Humm, the qemu package actually uses version 1.3.1, as per "[PATCH
> 01/29] package/qemu: bump version to 1.3.1" :-)
> 
> You also have the comment related to 1.2.x in the patch itself.

Arg. I'll fix that. Thanks.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 03/29] package/qemu: add basic target selection
  2013-02-03 14:06 [Buildroot] [pull request v3] Pull request for branch yem-target-qemu Yann E. MORIN
@ 2013-02-03 14:06 ` Yann E. MORIN
  0 siblings, 0 replies; 35+ messages in thread
From: Yann E. MORIN @ 2013-02-03 14:06 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
 package/qemu/Config.in |   18 ++++++++++++++++++
 package/qemu/qemu.mk   |   14 ++++++++++++--
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/package/qemu/Config.in b/package/qemu/Config.in
index b0ed279..5180ef0 100644
--- a/package/qemu/Config.in
+++ b/package/qemu/Config.in
@@ -24,3 +24,21 @@ config BR2_PACKAGE_QEMU
 	  server and embedded PowerPC, and S390 guests.
 	  
 	  http://qemu.org/
+
+if BR2_PACKAGE_QEMU
+
+comment "Emulators selection"
+
+config BR2_PACKAGE_QEMU_SYSTEM
+	bool "Enable all systems emulation"
+	help
+	  Say 'y' to build all system emulators/virtualisers that QEMU supports.
+
+config BR2_PACKAGE_QEMU_LINUX_USER
+	bool "Enable all Linux user-land emulation"
+	help
+	  Say 'y' to build all Linux user-land emulators that QEMU supports.
+
+# Note: bsd-user can not be build on Linux
+
+endif # BR2_PACKAGE_QEMU
diff --git a/package/qemu/qemu.mk b/package/qemu/qemu.mk
index d8c9e6e..19de212 100644
--- a/package/qemu/qemu.mk
+++ b/package/qemu/qemu.mk
@@ -97,6 +97,18 @@ QEMU_VARS =
     PYTHON=$(HOST_DIR)/usr/bin/python                                               \
     PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages    \
 
+ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y)
+QEMU_OPTS += --enable-system
+else
+QEMU_OPTS += --disable-system
+endif
+
+ifeq ($(BR2_PACKAGE_QEMU_LINUX_USER),y)
+QEMU_OPTS += --enable-linux-user
+else
+QEMU_OPTS += --disable-linux-user
+endif
+
 define QEMU_CONFIGURE_CMDS
 	( cd $(@D);                                 \
 	    LIBS='$(QEMU_LIBS)'                     \
@@ -113,8 +125,6 @@ define QEMU_CONFIGURE_CMDS
 	        --enable-nptl                       \
 	        --enable-attr                       \
 	        --enable-vhost-net                  \
-	        --enable-system                     \
-	        --enable-linux-user                 \
 	        --disable-bsd-user                  \
 	        --disable-xen                       \
 	        --disable-slirp                     \
-- 
1.7.2.5

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

end of thread, other threads:[~2013-02-03 14:06 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-29 22:43 [Buildroot] [pull request v2] Pull request for branch yem-target-qemu Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 01/29] package/qemu: bump version to 1.3.1 Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 02/29] package/qemu: build for the target (i386 or x86_64 only) Yann E. MORIN
2013-01-30  8:25   ` Thomas Petazzoni
2013-01-30 18:47     ` Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 03/29] package/qemu: add basic target selection Yann E. MORIN
2013-01-30  8:32   ` Thomas Petazzoni
2013-01-30 18:48     ` Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 04/29] package/qemu: add fine-grained " Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 05/29] package/qemu: add SDL frontends Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 06/29] package/qemu: add option to enable/disable the VNC frontend Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 07/29] package/qemu: add VNC jpeg and png compression Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 08/29] package/qemu: add VNC TLS-encryption Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 09/29] package/qemu: add option to not install blobs Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 10/29] package/qemu: add option to remove unwanted keymaps Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 11/29] package/qemu: add uuid support Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 12/29] package/qemu: add support for capabilities Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 13/29] package/qemu: add attr/xattr option Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 14/29] package/qemu: add support for virtfs Yann E. MORIN
2013-01-29 22:43 ` [Buildroot] [PATCH 15/29] package/qemu: add support for cURL Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 16/29] package/qemu: enable use of the curses frontend Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 17/29] package/qemu: add BlueZ connectivity Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 18/29] package/qemu: add AIO support Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 19/29] package/qemu: add support for VDE switches Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 20/29] package/qemu: add iSCSI support Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 21/29] package/qemu: add support for USB redirection Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 22/29] package/qemu: add support for Spice Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 23/29] package/qemu: enable sound Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 24/29] package/qemu: add support for libseccomp Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 25/29] package/qemu: option to build the docs Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 26/29] package/qemu: add option to install tools on the target Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 27/29] package/qemu: move sub-options into a sub-menu Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 28/29] package/qemu: enable a static build Yann E. MORIN
2013-01-29 22:44 ` [Buildroot] [PATCH 29/29] package/qemu: add support for FDT Yann E. MORIN
  -- strict thread matches above, loose matches on Subject: below --
2013-02-03 14:06 [Buildroot] [pull request v3] Pull request for branch yem-target-qemu Yann E. MORIN
2013-02-03 14:06 ` [Buildroot] [PATCH 03/29] package/qemu: add basic target selection Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox