system/init: add option for no init system
PATCH 1/36 system/init: add option for no init system
Can be usefull if a local package provides an init procedure.
--- target/generic/Config.in | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
target/generic/Config.in +3 -0
@@ -64,6 +64,9 @@ comment 'systemd requires largefile, wchar, IPv6, threads and udev support' BR2_INET_IPV6 && BR2_TOOLCHAIN_HAS_THREADS && \ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV) +config BR2_INIT_NONE + bool "None" + endchoice config BR2_ROOTFS_DEVICE_TABLE
Signature · 1 line
1.7.2.5
PATCH 1/36 system/init: add option for no init system
Thomas, All,
Sorry, I forgot an intro mail... Here it is:
This series is an attempt to add QEMU as a package.
It first tries to fix a few short-comings I encounterd:
patches 1 & 2
It then adds a few new packages that are dependencies of QEMU, some optional:
patches 3 to 10
Then it adds QEMU as a new package, with everything disabled:
patch 11
Then it adds a few config options to QEMU, to enable/disable some features:
patches 12 to 34
And finally it moves QEMU options to a sub-menu:
patch 35
A last patch, which I'd like feedback on, enables building static QEMU executables:
patch 36
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 2/36 package/sdl: add symlink to sdl-config
In reply to Yann E. MORINSDL installs a script-based sdl-config in the sysroot, but some packages (eg. QEMU) needs it to be either:
- prefixed with the cross-prefix
- in the PATH
So, as sdl-config is a script, and although it is installed in the sysroot, it can be run on the host.
--- package/sdl/sdl.mk | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
package/sdl/sdl.mk +2 -0
@@ -66,6 +66,8 @@ define SDL_FIXUP_SDL_CONFIG $(STAGING_DIR)/usr/bin/sdl-config $(SED) 's%-Wl,-rpath,\$${libdir}%%' \ $(STAGING_DIR)/usr/bin/sdl-config + $(HOSTLN) -s $(STAGING_DIR)/usr/bin/sdl-config \ + $(HOST_DIR)/usr/bin/sdl-config endef SDL_POST_INSTALL_STAGING_HOOKS+=SDL_FIXUP_SDL_CONFIG
Signature · 1 line
1.7.2.5
PATCH 2/36 package/sdl: add symlink to sdl-config
Le Mon, 13 Aug 2012 01:53:50 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
Quoted 7 lines
SDL installs a script-based sdl-config in the sysroot, but some packages (eg. QEMU) needs it to be either:
- prefixed with the cross-prefix
- in the PATHSo, as sdl-config is a script, and although it is installed in the sysroot, it can be run on the host.
Well, that's typically not how we handle this problem. In general, we pass the complete location of the <foo>-config script to the ./configure script of the package that needs it. I would prefer if we could use this solution everywhere instead of having a different solution in different places for the same problem. Do you know if it would be possible with Qemu?
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 2/36 package/sdl: add symlink to sdl-config
Thomas, All,
Quoted 8 lines · On Monday 13 August 2012 12:57:10 Thomas Petazzoni wrote:
Le Mon, 13 Aug 2012 01:53:50 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :Quoted 5 lines
SDL installs a script-based sdl-config in the sysroot, but some packages (eg. QEMU) needs it to be either:
- prefixed with the cross-prefix
- in the PATH
Quoted 6 lines
Quoted 2 lines
So, as sdl-config is a script, and although it is installed in the sysroot, it can be run on the host.
Well, that's typically not how we handle this problem. In general, we pass the complete location of the <foo>-config script to the ./configure script of the package that needs it.
Yep, I knew this one would raise eyebrows. ;-)
Quoted 3 lines
I would prefer if
we could use this solution everywhere instead of having a different solution in different places for the same problem.
But still, is it the right solution to use the sdl-config, although it is installed in staging?
Quoted 2 lines
Do you know if it
would be possible with Qemu?
Ah, looking further, there's SDL_CONFIG we can set (I missed it...) Will fix.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ | | --==< O_o >==-- '------------.-------: X AGAINST | /e\ There is no | | http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL | """ conspiracy. | '------------------------------'-------'------------------'--------------------'
PATCH 2/36 package/sdl: add symlink to sdl-config
In reply to Thomas PetazzoniQuoted 8 lines · Thomas Petazzoni
Le Mon, 13 Aug 2012 01:53:50 +0200,
"Yann E. MORIN"<[email protected]> a ?crit :Quoted 5 lines
Quoted 5 lines
SDL installs a script-based sdl-config in the sysroot, but some packages (eg. QEMU) needs it to be either:
- prefixed with the cross-prefix
- in the PATH
Quoted 7 lines
Quoted 2 lines
Quoted 2 lines
So, as sdl-config is a script, and although it is installed in the sysroot, it can be run on the host.
Well, that's typically not how we handle this problem. In general, we pass the complete location of the<foo>-config script to
the ./configure script of the package that needs it. I would prefer if we could use this solution everywhere instead of having a different solution in different places for the same problem.
Although I fully agree with using the same pattern everywhere, I think the
pattern is wrong here. Having a xxx-config script is supposed to make it easy to discover a package; if you have to point to it explicitly in the package.mk using it, that kind of defeats the purpose.
Of course, even so it is still shaky. If the xxx-config has to be looked up
from the PATH, we risk picking up /usr/bin/xxx-config... In an ideal world, they'd all be using pkg-config... But in an ideal work we probably wouldn't even need buildroot :-)
Regards,
Arnout
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 3/36 package/libfdt: new package
In reply to Yann E. MORINlibfdt allows one to manipulate a Flat Device Tree.
--- package/Config.in | 1 + package/libfdt/Config.in | 6 ++ .../libfdt/libfdt-install-missing-headers.patch | 22 ++++++++ package/libfdt/libfdt-separate-lib-install.patch | 22 ++++++++ package/libfdt/libfdt.mk | 56 ++++++++++++++++++++ 5 files changed, 107 insertions(+), 0 deletions(-) create mode 100644 package/libfdt/Config.in create mode 100644 package/libfdt/libfdt-install-missing-headers.patch create mode 100644 package/libfdt/libfdt-separate-lib-install.patch create mode 100644 package/libfdt/libfdt.mk
package/Config.in +1 -0
@@ -375,6 +375,7 @@ source "package/libaio/Config.in" source "package/libraw1394/Config.in" source "package/tslib/Config.in" source "package/libfreefare/Config.in" +source "package/libfdt/Config.in" source "package/libftdi/Config.in" source "package/libhid/Config.in" source "package/libiqrf/Config.in"
package/libfdt/Config.in new file +6 -0
@@ -0,0 +1,6 @@ +config BR2_PACKAGE_LIBFDT + bool "libfdt" + help + libfdt if a library to manipulate Flat Device Trees. + + http://git.jdl.com/gitweb/?p=dtc.git (no home page)
package/libfdt/libfdt-install-missing-headers.patch new file +22 -0
@@ -0,0 +1,22 @@ +libfdt: install missing header + +Previously, only two headers were installed: libfdt.h and fdt.h. +But libfdt.h also #includes libfdt_env.h, which was not installed. + +Install this missing header too. + +Signed-off-by: "Yann E. MORIN" <[email protected]> + +diff --git a/libfdt/Makefile.libfdt b/libfdt/Makefile.libfdt +index d55a6f8..94c1e35 100644 +--- a/libfdt/Makefile.libfdt ++++ b/libfdt/Makefile.libfdt +@@ -4,7 +4,7 @@ + # be easily embeddable into other systems of Makefiles. + # + LIBFDT_soname = libfdt.$(SHAREDLIB_EXT).1 +-LIBFDT_INCLUDES = fdt.h libfdt.h ++LIBFDT_INCLUDES = fdt.h libfdt.h libfdt_env.h + LIBFDT_VERSION = version.lds + LIBFDT_SRCS = fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c + LIBFDT_OBJS = $(LIBFDT_SRCS:%.c=%.o)
package/libfdt/libfdt-separate-lib-install.patch new file +22 -0
@@ -0,0 +1,22 @@ +Makefile: add a rule to only install libfdt + +Signed-off-by: "Yann E. MORIN" <[email protected]> + +diff --git a/Makefile b/Makefile +index 1169e6c..39e7190 100644 +--- a/Makefile ++++ b/Makefile +@@ -156,10 +156,12 @@ endif + # intermediate target and building them again "for real" + .SECONDARY: $(DTC_GEN_SRCS) $(CONVERT_GEN_SRCS) + +-install: all $(SCRIPTS) ++install: all $(SCRIPTS) libfdt_install + @$(VECHO) INSTALL + $(INSTALL) -d $(DESTDIR)$(BINDIR) + $(INSTALL) $(BIN) $(SCRIPTS) $(DESTDIR)$(BINDIR) ++ ++libfdt_install: libfdt + $(INSTALL) -d $(DESTDIR)$(LIBDIR) + $(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR) + ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)
package/libfdt/libfdt.mk new file +56 -0
56 lines not on this page · raw message
Signature · 1 line
1.7.2.5
PATCH 3/36 package/libfdt: new package
Hello,
Le Mon, 13 Aug 2012 01:53:51 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
Quoted 10 lines
libfdt allows one to manipulate a Flat Device Tree.
Signed-off-by "Yann E. MORIN" <[email protected]>--- package/Config.in | 1 + package/libfdt/Config.in | 6 ++ .../libfdt/libfdt-install-missing-headers.patch | 22 ++++++++ package/libfdt/libfdt-separate-lib-install.patch | 22 ++++++++ package/libfdt/libfdt.mk | 56 ++++++++++++++++++++ 5 files changed, 107 insertions(+), 0 deletions(-)
The upstream package is called "dtc", shouldn't we be calling this package "dtc" as well even though it only installs libfdt for now?
package/libfdt/libfdt.mk line 2
Quoted 8 lines
package/libfdt/libfdt.mk new file +2
-0@@ -0,0 +1,56 @@ +#----------------------------------------------------------------------------- +# Package description
While this headers are nice, they are not consistent with all other packages in Buildroot. Do we want to move all packages in this direction?
package/libfdt/libfdt.mk line 9
Quoted 6 lines
package/libfdt/libfdt.mk new file +6
-0+LIBFDT_VERSION = v1.3.0 +LIBFDT_SITE = git://git.jdl.com/software/dtc.git +LIBFDT_LICENSE = GPLv2+/BSD-2c +LIBFDT_LICENSE_FILES = README.license GPL +# Note: the dual-license only applies to the library. +# The DT compiler (dtc) is GPLv2+, but we do not install it (yet?).
Argh, this is getting complicated, and shows again that our lack of separation between "source package" and "binary package" is a bit problematic.
package/libfdt/libfdt.mk line 17
Quoted 8 lines
package/libfdt/libfdt.mk new file +8
-0+LIBFDT_INSTALL_STAGING = YES + +#---------------------------------------------------------------------------- +# Package build process + +define LIBFDT_BUILD_CMDS + $(MAKE) -C $(@D) CC="$(TARGET_CC)" \ + AR="$(TARGET_AR)" \
What about using $(TARGET_CONFIGURE_OPTS) instead?
package/libfdt/libfdt.mk line 24
Quoted 7 lines
package/libfdt/libfdt.mk new file +7
-0+ PREFIX=/usr \ + libfdt +endef + +#?libfdt_install is our own install rule added by our patch +define LIBFDT_INSTALL_STAGING_CMDS + $(MAKE) CC="$(TARGET_CC)" AR="$(TARGET_AR)" -C $(@D) \
Do you really need to repeat CC and AR for the installation?
Quoted 12 lines
package/libfdt/libfdt.mk new file +12
-0+ DESTDIR=$(STAGING_DIR) PREFIX=/usr \ + libfdt_install +endef + +# libfdt does not have any uninstall rule +define LIBFDT_UNINSTALL_STAGING_CMDS + rm -f $(STAGING_DIR)/usr/lib/libfdt.a + rm -f $(STAGING_DIR)/usr/lib/libfdt*.so* + rm -f $(STAGING_DIR)/usr/include/libfdt*.h + rm -f $(STAGING_DIR)/usr/include/fdt.h +endef +
package/libfdt/libfdt.mk line 46
Quoted 10 lines
package/libfdt/libfdt.mk new file +10
-0+# Usually, mode 0644 is enough for libraries (shared or static), but the +# buildroot documentation dsays 0755, so be dumb and follow the docs. ;-p +# And on target, we only require the SONAME-named library, not all the +# symlinks, but: +# - libfdt's Makefile does not offer such a rule, +# - other buildroot packages do install lib symlinks, +# so do as all others do. +define LIBFDT_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/libfdt/libfdt*.so* $(TARGET_DIR)/usr/lib +endef
Not possible to use 'make libfdt_install' here? Remember that Buildroot automatically .a files, header files and other documentation, so you don't have to do this "filtered" installation yourself. And worse than
that: if you have BR2_HAVE_DEVFILES enabled, your INSTALL_TARGET_CMDS is incorrect.
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 3/36 package/libfdt: new package
Thomas, All,
Quoted 14 lines · On Tuesday 14 August 2012 15:23:40 Thomas Petazzoni wrote:
Le Mon, 13 Aug 2012 01:53:51 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :Quoted 10 lines
libfdt allows one to manipulate a Flat Device Tree.
Signed-off-by "Yann E. MORIN" <[email protected]>--- package/Config.in | 1 + package/libfdt/Config.in | 6 ++ .../libfdt/libfdt-install-missing-headers.patch | 22 ++++++++ package/libfdt/libfdt-separate-lib-install.patch | 22 ++++++++ package/libfdt/libfdt.mk | 56 ++++++++++++++++++++ 5 files changed, 107 insertions(+), 0 deletions(-)
Quoted 2 lines
The upstream package is called "dtc", shouldn't we be calling this package "dtc" as well even though it only installs libfdt for now?
OK.
Quoted 4 lines
Quoted 4 lines
package/libfdt/libfdt.mk new file +0
-1--- /dev/null
Quoted 8 lines
package/libfdt/libfdt.mk line 2
Quoted 4 lines
+++
b/package/libfdt/libfdt.mkpackage/libfdt/libfdt.mk new file +2
-0@@ -0,0 +1,56 @@ +#----------------------------------------------------------------------------- +# Package descriptionWhile this headers are nice, they are not consistent with all other packages in Buildroot. Do we want to move all packages in this direction?
I'll remove them.
That's just that I like to preperly lay things out.
Quoted 10 lines
package/libfdt/libfdt.mk line 9
Quoted 6 lines
package/libfdt/libfdt.mk new file +6
-0+LIBFDT_VERSION = v1.3.0 +LIBFDT_SITE = git://git.jdl.com/software/dtc.git +LIBFDT_LICENSE = GPLv2+/BSD-2c +LIBFDT_LICENSE_FILES = README.license GPL +# Note: the dual-license only applies to the library. +# The DT compiler (dtc) is GPLv2+, but we do not install it (yet?).Argh, this is getting complicated, and shows again that our lack of separation between "source package" and "binary package" is a bit problematic.
So, what should I do here:
1- list all licenses, even those not used, or
2- only list licenses actually used?
1 is easy, while it is not exact, and 2 is relatively easy, but does not guarantee exactitude. So, probably 1 is better in this case.
After all, the licensing report is not supposed to be ultimately trusted, but is supposed to be reviewed by a human being for correctness.
Quoted 10 lines
package/libfdt/libfdt.mk line 17
Quoted 8 lines
package/libfdt/libfdt.mk new file +8
-0+LIBFDT_INSTALL_STAGING = YES + +#---------------------------------------------------------------------------- +# Package build process + +define LIBFDT_BUILD_CMDS + $(MAKE) -C $(@D) CC="$(TARGET_CC)" \ + AR="$(TARGET_AR)" \What about using $(TARGET_CONFIGURE_OPTS) instead?
IIRC, I tried, and it did not work.
I'll doiuble-check before resubnitting (and add a comment saying why it's not possible in this case).
Quoted 9 lines
package/libfdt/libfdt.mk line 24
Quoted 7 lines
package/libfdt/libfdt.mk new file +7
-0+ PREFIX=/usr \ + libfdt +endef + +# libfdt_install is our own install rule added by our patch +define LIBFDT_INSTALL_STAGING_CMDS + $(MAKE) CC="$(TARGET_CC)" AR="$(TARGET_AR)" -C $(@D) \Do you really need to repeat CC and AR for the installation?
Probably not. It worked as is, so I went on with the next task on my TODO list.
I'll double-check too (and comment).
Quoted 16 lines
Quoted 16 lines
package/libfdt/libfdt.mk new file +16
-0+ DESTDIR=$(STAGING_DIR) PREFIX=/usr \ + libfdt_install +endef + +# libfdt does not have any uninstall rule +define LIBFDT_UNINSTALL_STAGING_CMDS + rm -f $(STAGING_DIR)/usr/lib/libfdt.a + rm -f $(STAGING_DIR)/usr/lib/libfdt*.so* + rm -f $(STAGING_DIR)/usr/include/libfdt*.h + rm -f $(STAGING_DIR)/usr/include/fdt.h +endef + +# Usually, mode 0644 is enough for libraries (shared or static), but the +# buildroot documentation dsays 0755, so be dumb and follow the docs. ;-p +# And on target, we only require the SONAME-named library, not all the +# symlinks, but:
Quoted 8 lines
package/libfdt/libfdt.mk line 46
Quoted 6 lines
package/libfdt/libfdt.mk new file +6
-0+# - libfdt's Makefile does not offer such a rule, +# - other buildroot packages do install lib symlinks, +# so do as all others do. +define LIBFDT_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/libfdt/libfdt*.so* $(TARGET_DIR)/usr/lib +endefNot possible to use 'make
libfdt_install' here?
Hmm. And I added a patch to that effect... Sigh... Yes, will do.
Quoted 1 line
Remember that Buildroot automatically .a files, header files and other
I guess you meant 'remove' here ---^^^ ;-)
Quoted 3 lines
documentation, so you don't have to do this "filtered" installation yourself. And worse than that: if you have
BR2_HAVE_DEVFILESenabled, yourINSTALL_TARGET_CMDSis incorrect.
Gah!... :-(
Thanks for the review!
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 4/36 package/vde2: new package
In reply to Yann E. MORINVDE is an ethernet compliant virtual network that can be spawned over a set of physical computer over the Internet.
--- package/Config.in | 1 + package/vde2/Config.in | 10 +++++++++ package/vde2/vde2.mk | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 0 deletions(-) create mode 100644 package/vde2/Config.in create mode 100644 package/vde2/vde2.mk
package/Config.in +1 -0
@@ -611,6 +611,7 @@ source "package/transmission/Config.in" source "package/ttcp/Config.in" source "package/udpcast/Config.in" source "package/ushare/Config.in" +source "package/vde2/Config.in" source "package/vpnc/Config.in" source "package/vsftpd/Config.in" source "package/vtun/Config.in"
package/vde2/Config.in new file +10 -0
@@ -0,0 +1,10 @@ +config BR2_PACKAGE_VDE2 + bool "vde2" + help + VDE is an ethernet compliant virtual network that can be + spawned over a set of physical computer over the Internet. + VDE is part of virtualsquare project. + + http://vde.sourceforge.net/ + + Note: only the libraries are installed.
package/vde2/vde2.mk new file +51 -0
51 lines not on this page · raw message
Signature · 1 line
1.7.2.5
PATCH 4/36 package/vde2: new package
Le Mon, 13 Aug 2012 01:53:52 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
package/vde2/vde2.mk line 49
Quoted 10 lines
package/vde2/vde2.mk new file +10
-0+# For now, we install only the libraries +# Installing the complete VDE suite can come in a later patch +#?In that case, do not forget to update the license! +define VDE2_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(STAGING_DIR)/usr/lib/libvde*.so* \ + $(TARGET_DIR)/usr/lib + $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/vde2/vde_l3 + $(INSTALL) -D -m 0755 $(STAGING_DIR)/usr/lib/vde2/vde_l3/*.so \ + $(TARGET_DIR)/usr/lib/vde2/vde_l3 +endef
Again, "make install" ?
Best regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 4/36 package/vde2: new package
Thomas, All,
Quoted 15 lines · On Tuesday 14 August 2012 15:24:25 Thomas Petazzoni wrote:
Le Mon, 13 Aug 2012 01:53:52 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :package/vde2/vde2.mk line 49
Quoted 10 lines
package/vde2/vde2.mk new file +10
-0+# For now, we install only the libraries +# Installing the complete VDE suite can come in a later patch +# In that case, do not forget to update the license! +define VDE2_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(STAGING_DIR)/usr/lib/libvde*.so* \ + $(TARGET_DIR)/usr/lib + $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/lib/vde2/vde_l3 + $(INSTALL) -D -m 0755 $(STAGING_DIR)/usr/lib/vde2/vde_l3/*.so \ + $(TARGET_DIR)/usr/lib/vde2/vde_l3 +endefAgain, "make install" ?
As I only want to install the libs, I know of no rule to install only libs. But, I can upgrade the package to perform a full install, that would probably be easy.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 5/36 package/libiscsi: new package
In reply to Yann E. MORIN--- package/Config.in | 1 + package/libiscsi/Config.in | 12 ++++++++++++ package/libiscsi/libiscsi.mk | 23 +++++++++++++++++++++++ 3 files changed, 36 insertions(+), 0 deletions(-) create mode 100644 package/libiscsi/Config.in create mode 100644 package/libiscsi/libiscsi.mk
package/Config.in +1 -0
@@ -417,6 +417,7 @@ source "package/libesmtp/Config.in" source "package/libeXosip2/Config.in" source "package/libfcgi/Config.in" source "package/libidn/Config.in" +source "package/libiscsi/Config.in" source "package/liboauth/Config.in" source "package/libmicrohttpd/Config.in" source "package/neon/Config.in"
package/libiscsi/Config.in new file +12 -0
@@ -0,0 +1,12 @@ +config BR2_PACKAGE_LIBISCSI + bool "libiscsi" + select BR2_PACKAGE_POPT + help + Libiscsi is a client-side library to implement the iSCSI protocol + that can be used to access resource of an iSCSI Target. + + The library is fully async with regards to iscsi commands and scsi + tasks, but a sync layer is also provided for ease of use for simpler + applications. + + https://github.com/sahlberg/libiscsi (no proper homepage)
package/libiscsi/libiscsi.mk new file +23 -0
@@ -0,0 +1,23 @@ +#----------------------------------------------------------------------------- +# Package description + +LIBISCSI_VERSION = 1.5.0 +LIBISCSI_SITE = git://github.com/sahlberg/libiscsi.git +LIBISCSI_LICENSE = LGPLv2.1+ +LIBISCSI_LICENSE_FILES = COPYING LICENCE-LGPL-2.1.txt +#?Note: the binaries are GPLv2+, but we do not use them +LIBISCSI_INSTALL_STAGING = YES +LIBISCSI_DEPENDENCIES = popt + +#---------------------------------------------------------------------------- +# Package build process + +# As we use the git repository, we need to generate the configure script +# Using the standard autoreconf does not work (missing m4/ dir) +define LIBISCSI_CREATE_CONFIGURE + cd $(@D); ./autogen.sh +endef +LIBISCSI_PRE_CONFIGURE_HOOKS += LIBISCSI_CREATE_CONFIGURE +LIBISCSI_DEPENDENCIES += host-autoconf + +$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
PATCH 5/36 package/libiscsi: new package
Le Mon, 13 Aug 2012 01:53:53 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
package/libiscsi/libiscsi.mk line 5
Quoted 2 lines
package/libiscsi/libiscsi.mk new file +2
-0+LIBISCSI_VERSION = 1.5.0 +LIBISCSI_SITE = git://github.com/sahlberg/libiscsi.git
You can instead use
https://github.com/sahlberg/libiscsi/zipball/$(LIBISCI_VERSION)
which will download a zip file of the project.
Quoted 6 lines
package/libiscsi/libiscsi.mk new file +6
-0+LIBISCSI_LICENSE = LGPLv2.1+ +LIBISCSI_LICENSE_FILES = COPYING LICENCE-LGPL-2.1.txt +#?Note: the binaries are GPLv2+, but we do not use them +LIBISCSI_INSTALL_STAGING = YES +LIBISCSI_DEPENDENCIES = popt +
package/libiscsi/libiscsi.mk line 21
Quoted 10 lines
package/libiscsi/libiscsi.mk new file +10
-0+#---------------------------------------------------------------------------- +# Package build process + +# As we use the git repository, we need to generate the configure script +# Using the standard autoreconf does not work (missing m4/ dir) +define LIBISCSI_CREATE_CONFIGURE + cd $(@D); ./autogen.sh +endef +LIBISCSI_PRE_CONFIGURE_HOOKS += LIBISCSI_CREATE_CONFIGURE +LIBISCSI_DEPENDENCIES += host-autoconf
host-autoconf will not bring host-automake, so I think you should either depend on host-automake (which itself depends on host-autoconf), or you should do like the autotools package infrastructure does:FOO_DEPENDENCIES += host-automake host-autoconf host-libtool.
Or, you can do something like:
LIBISCSI_AUTORECONF = YES
# Having a m4/ directory is mandatory for autoreconf to work define LIBISCSI_CREATE_M4_DIR
mkdir -p $(@D)/m4
endefLIBISCSI_PRE_CONFIGURE_HOOKS += LIBISCSI_CREATE_M4_DIR
I don't have a strong opinion between those two solutions.
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 5/36 package/libiscsi: new package
2012/8/17 Thomas Petazzoni <[email protected]>:
Quoted 11 lines
Le Mon, 13 Aug 2012 01:53:53 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :package/libiscsi/libiscsi.mk line 5
Quoted 2 lines
package/libiscsi/libiscsi.mk new file +2
-0+LIBISCSI_VERSION = 1.5.0 +LIBISCSI_SITE = git://github.com/sahlberg/libiscsi.gitYou can instead use
https://github.com/sahlberg/libiscsi/zipball/$(LIBISCI_VERSION)
which will download a zip file of the project.
I think the right url is:
https://github.com/downloads/sahlberg/libiscsi/libiscsi-1.5.0.tar.gz
Though the zipball/tarball url is valid as soon as a tag is pushed in the repository, it will require some more plumbing in the download infrastructure since the downloaded file name is $(FOO_VERSION) with no extension. What a pity!
BTW, to get a source archive available on
https://github.com/downloads/*, the maintainers of the projects have to upload it.
Quoted 14 lines
Quoted 14 lines
package/libiscsi/libiscsi.mk new file +13
-0+LIBISCSI_LICENSE = LGPLv2.1+ +LIBISCSI_LICENSE_FILES = COPYING LICENCE-LGPL-2.1.txt +# Note: the binaries are GPLv2+, but we do not use them +LIBISCSI_INSTALL_STAGING = YES +LIBISCSI_DEPENDENCIES = popt + +#---------------------------------------------------------------------------- +# Package build process + +# As we use the git repository, we need to generate the configure script +# Using the standard autoreconf does not work (missing m4/ dir) +define LIBISCSI_CREATE_CONFIGURE + cd $(@D); ./autogen.sh
Quoted 8 lines
package/libiscsi/libiscsi.mk line 21
Quoted 3 lines
package/libiscsi/libiscsi.mk new file +3
-0+endef +LIBISCSI_PRE_CONFIGURE_HOOKS += LIBISCSI_CREATE_CONFIGURE +LIBISCSI_DEPENDENCIES += host-autoconfhost-autoconf will not bring host-automake, so I think you should either depend on host-automake (which itself depends on host-autoconf), or you should do like the autotools package infrastructure does:
FOO_DEPENDENCIES+= host-automake host-autoconf host-libtool.
I would assume that the autotools-package infrastructure automatically pulled these host dependencies...
Signature · 1 line
Sam
PATCH 5/36 package/libiscsi: new package
Le Fri, 17 Aug 2012 14:29:53 +0200,
Samuel Martin <[email protected]> a ?crit :
Quoted 8 lines
Quoted 5 lines
You can instead use
https://github.com/sahlberg/libiscsi/zipball/$(LIBISCI_VERSION)
which will download a zip file of the project.
I think the right url is:
https://github.com/downloads/sahlberg/libiscsi/libiscsi-1.5.0.tar.gz
Well, the above URL worked for me as well :)
Quoted 4 lines
Though the zipball/tarball url is valid as soon as a tag is pushed in the repository, it will require some more plumbing in the download infrastructure since the downloaded file name is $(FOO_VERSION) with no extension. What a pity!
We have done changes to allow that for external toolchains (i.e download a funky Git URL into a reasonably named tarball file), should we do this for packages?
Quoted 7 lines
Quoted 4 lines
host-autoconf will not bring host-automake, so I think you should either depend on host-automake (which itself depends on host-autoconf), or you should do like the autotools package infrastructure does:
FOO_DEPENDENCIES+= host-automake host-autoconf host-libtool.I would assume that the autotools-package infrastructure automatically pulled these host dependencies...
It does if you do FOO_AUTORECONF=YES. But in this case, the FOO_AUTORECONF mechanism doesn't work because the source tree lacks a m4/ directory, needed for autoreconf. Usually, the packages come with some ./autogen or ./autogen.sh or ./bootstrap script doing the necessary preparation + autoreconf call, but there is no really commonly adopted best practice here.
Best regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 6/36 package/usbredir: new package
In reply to Yann E. MORIN--- package/Config.in | 1 + package/usbredir/Config.in | 15 +++++++++++++++ package/usbredir/usbredir.mk | 26 ++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 0 deletions(-) create mode 100644 package/usbredir/Config.in create mode 100644 package/usbredir/usbredir.mk
package/Config.in +1 -0
@@ -438,6 +438,7 @@ source "package/libupnp/Config.in" source "package/libvncserver/Config.in" source "package/nss-mdns/Config.in" source "package/ortp/Config.in" +source "package/usbredir/Config.in" source "package/zeromq/Config.in" endmenu
package/usbredir/Config.in new file +15 -0
@@ -0,0 +1,15 @@ +config BR2_PACKAGE_USBREDIR + bool "usbredir" + depends on BR2_PACKAGE_LIBUSB + help + usbredir is the name of a network protocol for sending usb device + traffic over a network connection. It is also the name of the + software package offering a parsing library, a usbredirhost library + and several utilities implementing this protocol. + + Note: currently, only the library is installed, not the utilities. + + http://www.spice-space.org/page/UsbRedir + +comment "usbredir requires libusb" + depends on !BR2_PACKAGE_LIBUSB
package/usbredir/usbredir.mk new file +26 -0
@@ -0,0 +1,26 @@ +#----------------------------------------------------------------------------- +# Package description + +USBREDIR_VERSION = 0.4.3 +USBREDIR_SOURCE = usbredir-$(USBREDIR_VERSION).tar.bz2 +USBREDIR_SITE = http://spice-space.org/download/usbredir +USBREDIR_LICENSE = LGPLv2.1+ +USBREDIR_LICENSE_FILES = COPYING.LIB +# Note: the executables are GPLv2+, but we do not use them +USBREDIR_INSTALL_STAGING = YES +USBREDIR_DEPENDENCIES = libusb + +#---------------------------------------------------------------------------- +# Package build process + +USBREDIR_DEPENDENCIES += host-pkg-config + +# It's much easier to remove unwanted files after-the-fact, rather than trying +# to install only what we want. Sad-and-dull life, but life nonetheless... +# Note: do not ofrget to update the license, above, if you keep the server. +define USBREDIR_POST_INSTALL_TARGET_RM_SERVER + rm -f $(TARGET_DIR)/usr/sbin/usbredirserver +endef +USBREDIR_POST_INSTALL_TARGET_HOOKS += USBREDIR_POST_INSTALL_TARGET_RM_SERVER + +$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
PATCH 6/36 package/usbredir: new package
Le Mon, 13 Aug 2012 01:53:54 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
Quoted 1 line
+# Note: do not ofrget to update the license, above, if you keep the server.
forget
Otherwise, looks good.
Another note: have you looked at the uClibc compatibility of all these new packages, regarding things like wchar, locale, largefile, ipv6 and al. ?
Best regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 6/36 package/usbredir: new package
Thomas, All,
Quoted 6 lines · On Friday 17 August 2012 13:15:58 Thomas Petazzoni wrote:
Le Mon, 13 Aug 2012 01:53:54 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :Quoted 1 line
+# Note: do not ofrget to update the license, above, if you keep the server.
forget
Hehe! :-)
Quoted 5 lines
Otherwise, looks good.
Another note: have you looked at the uClibc compatibility of all these new packages, regarding things like wchar, locale, largefile, ipv6 and al. ?
I'm building with uClibc, but granted, that's a full-featured config.
I'll test further with a stripped-down config to see what's missing.
I at least know of one of the packages that requires SSP in the libc, but I think there's no such knob in BR for now.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 6/36 package/usbredir: new package
Le Fri, 17 Aug 2012 15:37:53 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
Quoted 7 lines
Quoted 3 lines
Another note: have you looked at the uClibc compatibility of all these new packages, regarding things like wchar, locale, largefile, ipv6 and al. ?
I'm building with uClibc, but granted, that's a full-featured config.
I'll test further with a stripped-down config to see what's missing.
Ok, thanks!
Quoted 2 lines
I at least know of one of the packages that requires SSP in the libc, but I think there's no such knob in BR for now.
We have BR2_TOOLCHAIN_BUILDROOT_USE_SSP in the internal backend.
If one package requires SSP support, it's going to be a pain with external toolchains that may not have enabled this feature. How is it possible that a package requires such mechanism?
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 7/36 package/celt051: new package
In reply to Yann E. MORIN--- package/multimedia/Config.in | 1 + package/multimedia/celt051/Config.in | 15 +++++++++++++++ package/multimedia/celt051/celt.mk | 26 ++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 0 deletions(-) create mode 100644 package/multimedia/celt051/Config.in create mode 100644 package/multimedia/celt051/celt.mk
package/multimedia/Config.in +1 -0
@@ -2,6 +2,7 @@ menu "Audio and video applications" source "package/multimedia/alsa-utils/Config.in" source "package/multimedia/aumix/Config.in" source "package/multimedia/bellagio/Config.in" +source "package/multimedia/celt051/Config.in" source "package/multimedia/faad2/Config.in" source "package/multimedia/flac/Config.in" source "package/multimedia/ffmpeg/Config.in"
package/multimedia/celt051/Config.in new file +15 -0
@@ -0,0 +1,15 @@ +config BR2_PACKAGE_CELT051 + bool "celt051" + select BR2_PACKAGE_LIBOGG + help + The CELT ultra-low delay audio codec + + The CELT codec is a compression algorithm for audio. Like MP3, + Vorbis, and AAC it is suitable for transmitting music with high + quality. Unlike these formats CELT imposes very little delay on + the signal, even less than is typical for speech centric formats + like Speex, GSM, or G.729. + + Note: this is version 0.5.1.3 of celt. + + http://www.celt-codec.org/
package/multimedia/celt051/celt.mk new file +26 -0
@@ -0,0 +1,26 @@ +#----------------------------------------------------------------------------- +# Package description + +# Although version newer than 0.5.1.3 exists, we're +# stuck with 0.5.1.3 for use by Spice (coming later) +CELT051_VERSION = 0.5.1.3 +CELT051_SOURCE = celt-$(CELT051_VERSION).tar.gz +CELT051_SITE = http://downloads.xiph.org/releases/celt +CELT051_LICENSE = BSD-2c +CELT051_LICENSE_FILES = COPYING +CELT051_INSTALL_STAGING = YES +CELT051_DEPENDENCIES = libogg + +#---------------------------------------------------------------------------- +# Package build process + + +CELT051_CONF_OPT = \ + --enable-fixed-point \ + --disable-fixed-point-debug \ + --disable-experimental-postfilter \ + --disable-static-modes \ + --disable-assertions \ + --disable-oggtest \ + +$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
PATCH 7/36 package/celt051: new package
Le Mon, 13 Aug 2012 01:53:55 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
package/multimedia/celt051/Config.in line 5
Quoted 8 lines
package/multimedia/celt051/Config.in new file +5
-0@@ -0,0 +1,15 @@ +config BR2_PACKAGE_CELT051 + bool "celt051" + select BR2_PACKAGE_LIBOGG + help + The CELT ultra-low delay audio codec
Just curious, for what reason an audio codec is needed as a dependency of a virtual machine thing? How does it fit in the stack?
package/multimedia/celt051/Config.in line 7
Quoted 2 lines
package/multimedia/celt051/Config.in new file +2
-0+# Although version newer than 0.5.1.3 exists, we're +# stuck with 0.5.1.3 for use by Spice (coming later)
Do you predict this version requirement to be kept for a long period of time?
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 7/36 package/celt051: new package
Thomas, All,
Quoted 14 lines · On Friday 17 August 2012 13:18:18 Thomas Petazzoni wrote:
Le Mon, 13 Aug 2012 01:53:55 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :package/multimedia/celt051/Config.in line 5
Quoted 8 lines
package/multimedia/celt051/Config.in new file +5
-0@@ -0,0 +1,15 @@ +config BR2_PACKAGE_CELT051 + bool "celt051" + select BR2_PACKAGE_LIBOGG + help + The CELT ultra-low delay audio codecJust curious, for what reason an audio codec is needed as a dependency of a virtual machine thing? How does it fit in the stack?
celt-0.51 is a hard-depdency for Spice to encode the audio. It's select-ed by BR2_PACKAGE_SPICE in a later patch.
Note that I added all new packages in a row, rather than add them just prior to the requiring qemu feature. Should I re-order the series to make the depedencies clearer?
Quoted 5 lines
package/multimedia/celt051/Config.in line 7
Quoted 2 lines
package/multimedia/celt051/Config.in new file +2
-0+# Although version newer than 0.5.1.3 exists, we're +# stuck with 0.5.1.3 for use by Spice (coming later)Do you predict this version requirement to be kept for a long period of time?
Spice advertises that celt-051 is the only supported version because later versions have changed too much and are thus not compatible.
I have absolutely no idea whther Spice will upgrade one day... :-/
Quoted 1 line
Reviewed-by Thomas Petazzoni <[email protected]>
Thanks!
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 7/36 package/celt051: new package
Le Fri, 17 Aug 2012 15:27:29 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
Quoted 9 lines
Quoted 2 lines
Just curious, for what reason an audio codec is needed as a dependency of a virtual machine thing? How does it fit in the stack?
celt-0.51 is a hard-depdency for Spice to encode the audio. It's select-ed by
BR2_PACKAGE_SPICEin a later patch.Note that I added all new packages in a row, rather than add them just prior to the requiring qemu feature. Should I re-order the series to make the depedencies clearer?
No, I understood perfectly that celt was a dependency of spice. My question was not Buildroot-specific: I was trying to understand what Qemu/Spice had to do with an audio encoder.
Quoted 7 lines
Quoted 2 lines
Do you predict this version requirement to be kept for a long period of time?
Spice advertises that celt-051 is the only supported version because later versions have changed too much and are thus not compatible.
I have absolutely no idea whther Spice will upgrade one day... :-/
Ah, ok, I just realized you named the package celt051 and not celt just because of that. Ok, good.
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 7/36 package/celt051: new package
Thomas, All,
Quoted 9 lines · On Friday 17 August 2012 15:50:47 Thomas Petazzoni wrote:
Le Fri, 17 Aug 2012 15:27:29 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :Quoted 6 lines
Quoted 2 lines
Just curious, for what reason an audio codec is needed as a dependency of a virtual machine thing? How does it fit in the stack?
celt-0.51 is a hard-depdency for Spice to encode the audio. It's select-ed by
BR2_PACKAGE_SPICEin a later patch.
Quoted 7 lines
Quoted 3 lines
Note that I added all new packages in a row, rather than add them just prior to the requiring qemu feature. Should I re-order the series to make the depedencies clearer?
No, I understood perfectly that celt was a dependency of spice. My question was not Buildroot-specific: I was trying to understand what Qemu/Spice had to do with an audio encoder.
Spice is a VNC-like solution, but specificaly designed for use by virtual machine hypervisors. It can transport video and audio alike, and uses celt to encode/decode the audio for sending over-the-wire.
I don't know why they choose celt instead of ogg or anything else, except maybe that celt is developped to be really patent-unencumbered.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 8/36 package/python-pyparsing: new package
In reply to Yann E. MORIN--- package/Config.in | 1 + package/python-pyparsing/Config.in | 11 +++++++ package/python-pyparsing/python-pyparsing.mk | 38 ++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 0 deletions(-) create mode 100644 package/python-pyparsing/Config.in create mode 100644 package/python-pyparsing/python-pyparsing.mk
package/Config.in +1 -0
@@ -273,6 +273,7 @@ source "package/python-mad/Config.in" source "package/python-netifaces/Config.in" source "package/python-nfc/Config.in" source "package/python-pygame/Config.in" +source "package/python-pyparsing/Config.in" source "package/python-serial/Config.in" source "package/python-setuptools/Config.in" endmenu
package/python-pyparsing/Config.in new file +11 -0
@@ -0,0 +1,11 @@ +config BR2_PACKAGE_PYTHON_PYPARSING + bool "pyparsing" + depends on BR2_PACKAGE_PYTHON + help + The pyparsing module is an alternative approach to creating and + executing simple grammars, vs. the traditional lex/yacc approach, + or the use of regular expressions. The pyparsing module provides + a library of classes that client code uses to construct the grammar + directly in Python code. + + http://pyparsing.wikispaces.com/
package/python-pyparsing/python-pyparsing.mk new file +38 -0
@@ -0,0 +1,38 @@ +#----------------------------------------------------------------------------- +# Package description + +PYTHON_PYPARSING_VERSION = 1.5.6 +PYTHON_PYPARSING_SOURCE = pyparsing-$(PYTHON_PYPARSING_VERSION).tar.gz +PYTHON_PYPARSING_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/pyparsing/pyparsing/pyparsing-$(PYTHON_PYPARSING_VERSION) +PYTHON_PYPARSING_LICENSE = MIT +PYTHON_PYPARSING_LICENSE_FILES = LICENSE +PYTHON_PYPARSING_INSTALL_STAGING = YES +PYTHON_PYPARSING_DEPENDENCIES = python + +#---------------------------------------------------------------------------- +# Package build process + +# Shamelessly vampirised from python-pygame ;-) +define PYTHON_PYPARSING_BUILD_CMDS + (cd $(@D); \ + CC="$(TARGET_CC)" \ + CFLAGS="$(TARGET_CFLAGS)" \ + LDSHARED="$(TARGET_CROSS)gcc -shared" \ + CROSS_COMPILING=yes \ + _python_sysroot=$(STAGING_DIR) \ + _python_srcdir=$(BUILD_DIR)/python$(PYTHON_VERSION) \ + _python_prefix=/usr \ + _python_exec_prefix=/usr \ + $(HOST_DIR)/usr/bin/python setup.py build \ + ) +endef + +# Shamelessly vampirised from python-pygame ;-) +define PYTHON_PYPARSING_INSTALL_TARGET_CMDS + (cd $(@D); \ + $(HOST_DIR)/usr/bin/python setup.py install \ + --prefix=$(TARGET_DIR)/usr \ + ) +endef + +$(eval $(generic-package))
Signature · 1 line
1.7.2.5
PATCH 8/36 package/python-pyparsing: new package
Le Mon, 13 Aug 2012 01:53:56 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
Quoted 8 lines
Signed-off-by "Yann E. MORIN" <[email protected]>--- package/Config.in | 1 + package/python-pyparsing/Config.in | 11 +++++++ package/python-pyparsing/python-pyparsing.mk | 38 ++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 0 deletions(-) create mode 100644 package/python-pyparsing/Config.in create mode 100644 package/python-pyparsing/python-pyparsing.mk
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 9/36 package/spice-protocol: new package
In reply to Yann E. MORIN--- package/Config.in | 1 + package/spice-protocol/Config.in | 12 ++++++++++++ package/spice-protocol/spice-protocol.mk | 14 ++++++++++++++ 3 files changed, 27 insertions(+), 0 deletions(-) create mode 100644 package/spice-protocol/Config.in create mode 100644 package/spice-protocol/spice-protocol.mk
package/Config.in +1 -0
@@ -600,6 +600,7 @@ source "package/ser2net/Config.in" source "package/socat/Config.in" source "package/socketcand/Config.in" source "package/spawn-fcgi/Config.in" +source "package/spice-protocol/Config.in" source "package/squid/Config.in" source "package/stunnel/Config.in" source "package/tcpdump/Config.in"
package/spice-protocol/Config.in new file +12 -0
@@ -0,0 +1,12 @@ +config BR2_PACKAGE_SPICE_PROTOCOL + bool "spice protocol" + help + The Spice project aims to provide a complete open source + solution for interaction with virtualized desktop devices. + The Spice project deals with both the virtualized devices + and the front-end. Interaction between front-end and + back-end is done using VD-Interfaces. + + This package implements the ptotocol-part of Spice. + + http://www.spice-space.org/
package/spice-protocol/spice-protocol.mk new file +14 -0
@@ -0,0 +1,14 @@ +#----------------------------------------------------------------------------- +# Package description + +SPICE_PROTOCOL_VERSION = 0.12.0 +SPICE_PROTOCOL_SOURCE = spice-protocol-$(SPICE_PROTOCOL_VERSION).tar.bz2 +SPICE_PROTOCOL_SITE = http://www.spice-space.org/download/releases/ +SPICE_PROTOCOL_LICENSE = BSD-3c +SPICE_PROTOCOL_LICENSE_FILES = COPYING +SPICE_PROTOCOL_INSTALL_STAGING = YES + +#---------------------------------------------------------------------------- +# Package build process + +$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
PATCH 9/36 package/spice-protocol: new package
Le Mon, 13 Aug 2012 01:53:57 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
package/spice-protocol/Config.in line 10
Quoted 1 line
package/spice-protocol/Config.in new file +1
-0+ This package implements the ptotocol-part of Spice.
protocol
Once fixed:
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 10/36 package/spice-server: new package
In reply to Yann E. MORIN--- package/Config.in | 1 + package/spice/Config.in | 22 ++++++++++++++++++++++ package/spice/spice.mk | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 0 deletions(-) create mode 100644 package/spice/Config.in create mode 100644 package/spice/spice.mk
package/Config.in +1 -0
@@ -601,6 +601,7 @@ source "package/socat/Config.in" source "package/socketcand/Config.in" source "package/spawn-fcgi/Config.in" source "package/spice-protocol/Config.in" +source "package/spice/Config.in" source "package/squid/Config.in" source "package/stunnel/Config.in" source "package/tcpdump/Config.in"
package/spice/Config.in new file +22 -0
@@ -0,0 +1,22 @@ +config BR2_PACKAGE_SPICE + bool "spice server" + depends on BR2_PACKAGE_PYTHON_PYPARSING + select BR2_PACKAGE_SPICE_PROTOCOL + select BR2_PACKAGE_PIXMAN + select BR2_PACKAGE_CELT051 + select BR2_PACKAGE_ALSA_LIB + select BR2_PACKAGE_OPENSSL + select BR2_PACKAGE_JPEG + help + The Spice project aims to provide a complete open source + solution for interaction with virtualized desktop devices. + The Spice project deals with both the virtualized devices + and the front-end. Interaction between front-end and + back-end is done using VD-Interfaces. + + This package implements the server-part of Spice. + + http://www.spice-space.org/ + +comment "spice server depends on python-pyparsing" + depends on !BR2_PACKAGE_PYTHON_PYPARSING
package/spice/spice.mk new file +39 -0
@@ -0,0 +1,39 @@ +#----------------------------------------------------------------------------- +# Package description + +SPICE_VERSION = 0.11.0 +SPICE_SOURCE = spice-$(SPICE_VERSION).tar.bz2 +SPICE_SITE = http://www.spice-space.org/download/releases/ +SPICE_LICENSE = LGPLv2.1+ +SPICE_LICENSE_FILES = COPYING +SPICE_INSTALL_STAGING = YES +SPICE_DEPENDENCIES = \ + spice-protocol \ + pixman \ + celt051 \ + python-pyparsing \ + alsa-lib \ + openssl \ + jpeg \ + +#---------------------------------------------------------------------------- +# Package build process + +# We disable everything for now, because the dependency tree can become +# quite deep if we try to enable some features, and I have not tested that. +SPICE_CONF_OPT = \ + --disable-tunnel \ + --disable-gui \ + --disable-opengl \ + --disable-smartcard \ + --disable-client \ + --disable-automated-tests \ + --without-sasl \ + --without-x \ + +SPICE_DEPENDENCIES += host-pkg-config + +SPICE_CONF_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages +SPICE_MAKE_ENV = PYTHONPATH=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages + +$(eval $(autotools-package))
Signature · 1 line
1.7.2.5
PATCH 10/36 package/spice-server: new package
Le Mon, 13 Aug 2012 01:53:58 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
package/spice/Config.in line 3
Quoted 6 lines
package/spice/Config.in new file +3
-0@@ -0,0 +1,22 @@ +config BR2_PACKAGE_SPICE + bool "spice server" + depends on BR2_PACKAGE_PYTHON_PYPARSING
This should probably be:
depends on BR2_PACKAGE_PYTHON
select BR2_PACKAGE_PYTHON_PYPARSING
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 10/36 package/spice-server: new package
Thomas, All,
Quoted 12 lines · On Friday 17 August 2012 13:22:18 Thomas Petazzoni wrote:
Le Mon, 13 Aug 2012 01:53:58 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :package/spice/Config.in line 3
Quoted 6 lines
package/spice/Config.in new file +3
-0@@ -0,0 +1,22 @@ +config BR2_PACKAGE_SPICE + bool "spice server" + depends on BR2_PACKAGE_PYTHON_PYPARSINGThis should probably be:
Quoted 2 lines
depends on
BR2_PACKAGE_PYTHON
selectBR2_PACKAGE_PYTHON_PYPARSING
Ok, will do.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 11/36 package/qemu: new package
In reply to Yann E. MORIN--- package/Config.in | 1 + package/qemu/Config.in | 24 ++++++++++++ package/qemu/qemu.mk | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 0 deletions(-) create mode 100644 package/qemu/Config.in create mode 100644 package/qemu/qemu.mk
package/Config.in +1 -0
@@ -504,6 +504,7 @@ menu "Miscellaneous" source "package/collectd/Config.in" source "package/empty/Config.in" source "package/mobile-broadband-provider-info/Config.in" +source "package/qemu/Config.in" source "package/shared-mime-info/Config.in" source "package/sound-theme-borealis/Config.in" source "package/sound-theme-freedesktop/Config.in"
package/qemu/Config.in new file +24 -0
@@ -0,0 +1,24 @@ +config BR2_PACKAGE_QEMU + bool "QEMU" + depends on BR2_PACKAGE_PYTHON # We only need host-python, + # but there's no way to say so. + select BR2_PACKAGE_ZLIB + select BR2_PACKAGE_LIBGLIB2 + 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/ + +comment "QEMU requires python" + depends on !BR2_PACKAGE_PYTHON
package/qemu/qemu.mk new file +98 -0
98 lines not on this page · raw message
Signature · 1 line
1.7.2.5
PATCH 11/36 package/qemu: new package
Thomas, All,
Quoted 27 lines · On Monday 13 August 2012 01:53:59 Yann E. MORIN wrote:
Signed-off-by "Yann E. MORIN" <[email protected]>--- package/Config.in | 1 + package/qemu/Config.in | 24 ++++++++++++ package/qemu/qemu.mk | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 0 deletions(-) create mode 100644 package/qemu/Config.in create mode 100644 package/qemu/qemu.mkpackage/Config.in +1
-0@@ -504,6 +504,7 @@ menu "Miscellaneous" source "package/collectd/Config.in" source "package/empty/Config.in" source "package/mobile-broadband-provider-info/Config.in" +source "package/qemu/Config.in" source "package/shared-mime-info/Config.in" source "package/sound-theme-borealis/Config.in" source "package/sound-theme-freedesktop/Config.in"package/qemu/Config.in new file +0
-0
package/qemu/Config.in line 4
Quoted 4 lines
package/qemu/Config.in new file +4
-0@@ -0,0 +1,24 @@ +config BR2_PACKAGE_QEMU + bool "QEMU" + depends on BR2_PACKAGE_PYTHON # We only need host-python, + # but there's no way to say so.
And I forgot to add this dependency in the .mk. I'll repush this series later with this change.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ | | --==< O_o >==-- '------------.-------: X AGAINST | /e\ There is no | | http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL | """ conspiracy. | '------------------------------'-------'------------------'--------------------'
PATCH 11/36 package/qemu: new package
In reply to Yann E. MORINLet me understand this: you are trying to build QEMU for the host ?
If you can also hook up some magic woodo to execute the image as well ("make qemu-run" for example) that would really be great.
I was thinking of adding this my self, by setting some new vars depending on the CPU arch chosen, and other tricks. I am still unsure about the details, as this is an idea I toyed with late night.
Quoted 170 lines · Yann E. MORIN
Signed-off-by "Yann E. MORIN" <[email protected]>--- package/Config.in | 1 + package/qemu/Config.in | 24 ++++++++++++ package/qemu/qemu.mk | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 0 deletions(-) create mode 100644 package/qemu/Config.in create mode 100644 package/qemu/qemu.mkpackage/Config.in +1
-0@@ -504,6 +504,7 @@ menu "Miscellaneous" source "package/collectd/Config.in" source "package/empty/Config.in" source "package/mobile-broadband-provider-info/Config.in" +source "package/qemu/Config.in" source "package/shared-mime-info/Config.in" source "package/sound-theme-borealis/Config.in" source "package/sound-theme-freedesktop/Config.in"package/qemu/Config.in new file +8
-0@@ -0,0 +1,24 @@ +config BR2_PACKAGE_QEMU + bool "QEMU" + depends on BR2_PACKAGE_PYTHON # We only need host-python, + # but there's no way to say so. + select BR2_PACKAGE_ZLIB + select BR2_PACKAGE_LIBGLIB2 + help + QEMU is a generic and open source machine emulator andvirtualizer.
package/qemu/Config.in new file +2
-0+ + When used as a machine emulator, QEMU can run OSes and programsmade
package/qemu/Config.in new file +5
-0+ 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 nativeperformances
+ 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,package/qemu/Config.in new file +6
-0+ server and embedded PowerPC, and S390 guests. + + http://qemu.org/ + +comment "QEMU requires python" + depends on !BR2_PACKAGE_PYTHONpackage/qemu/qemu.mk new file +33
-0@@ -0,0 +1,98 @@ +#----------------------------------------------------------------------------- +# Package description + +QEMU_VERSION = 1.1.1-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 +QEMU_LICENSE_FILES = COPYING COPYING.LIB +# NOTE: there is no top-level license file for non-(L)GPL licenses; +# the non-(L)GPL license texts are specified in the affected +# individual source files. + +#----------------------------------------------------------------------------- +# Package unconditional configuration + +QEMU_DEPENDENCIES = zlib libglib2 + +#----------------------------------------------------------------------------- +# Package conditional configuration + +# Need the LIBS variable because librt and libm are +# not automatically pulled. :-( +QEMU_LIBS = -lrt -lm + +QEMU_OPTS = +QEMU_VARS = + +#---------------------------------------------------------------------------- +# Package build process + +# Note: although QEMU uses a ./configure script, it is not compatible with +# the traditional autotools options (eg. --target et al.), so we can +# not use the autotools-package infrastructure. So we have to usethe
package/qemu/qemu.mk new file +65
-1+# generic-package infra instead. 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) \ + --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-guest-agent \ + --disable-smartcard \ + --disable-strip \ + $(QEMU_OPTS) \ + ) +endef + +define QEMU_BUILD_CMDS + $(MAKE) -C $(@D) +endef + +define QEMU_INSTALL_TARGET_CMDS + $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install +endef + +define QEMU_UNINSTALL_TARGET_CMDS + @echo 'QEMU has no uninstall rule.' + @false +endef + +define QEMU_CLEAN_CMDS + $(MAKE) -C $(@D) clean +endef + +$(eval $(generic-package)) --1.7.2.5
Quoted 4 lines
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120813/e3e63448/attachment-0001.html>
PATCH 11/36 package/qemu: new package
Diego, All,
Quoted 1 line · On Monday 13 August 2012 09:22:32 Diego Iastrubni wrote:
Let me understand this: you are trying to build QEMU for the host ?
Nope, it's meant to run on the target.
A long-term goal of this is to try to build a libvirt-based system to run a "VM-farm" rather than use a complete distro. Most probably, it will be a proof-of-concept rather than a real solution, but hey, one never knows before trying.
Of course, the QEMu package could be extended to run on host, so you can run your images, but that would mean that a lot of packages would need their host- counterparts, which is currently not the case.
Besides, it does not really make sense. Just create a new BR config which targets your host, chroot into that (or build static). That's actually what I'm doing, in fact! ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ | | --==< O_o >==-- '------------.-------: X AGAINST | /e\ There is no | | http://ymorin.is-a-geek.org/ | (*_*) | / \ HTML MAIL | """ conspiracy. | '------------------------------'-------'------------------'--------------------'
PATCH 11/36 package/qemu: new package
In reply to Yann E. MORINLe Mon, 13 Aug 2012 01:53:59 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
package/qemu/Config.in line 2
Quoted 7 lines
new file mode 100644
index 0000000..a77d863package/qemu/Config.in new file +2
-0@@ -0,0 +1,24 @@ +config BR2_PACKAGE_QEMU + bool "QEMU"
Just curious, what's the use case for Qemu on the target? I would have seen Qemu as something useful on the host, but on the target?
package/qemu/Config.in line 4
Quoted 2 lines
package/qemu/Config.in new file +2
-0+ depends on BR2_PACKAGE_PYTHON # We only need host-python, + # but there's no way to say so.
Doh? You just need to do:
QEMU_DEPENDENCIES += host-python
and that's it.
Quoted 10 lines
package/qemu/Config.in new file +10
-0+ select BR2_PACKAGE_ZLIB + select BR2_PACKAGE_LIBGLIB2 + 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. +
package/qemu/Config.in line 24
Quoted 10 lines
package/qemu/Config.in new file +10
-0+ 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/ + +comment "QEMU requires python" + depends on !BR2_PACKAGE_PYTHON
You can drop this.
Quoted 88 lines
package/qemu/qemu.mk new file +82
-0@@ -0,0 +1,98 @@ +#----------------------------------------------------------------------------- +# Package description + +QEMU_VERSION = 1.1.1-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 +QEMU_LICENSE_FILES = COPYING COPYING.LIB +#?NOTE: there is no top-level license file for non-(L)GPL licenses; +# the non-(L)GPL license texts are specified in the affected +# individual source files. + +#----------------------------------------------------------------------------- +# Package unconditional configuration + +QEMU_DEPENDENCIES = zlib libglib2 + +#----------------------------------------------------------------------------- +# Package conditional configuration + +# Need the LIBS variable because librt and libm are +# not automatically pulled. :-( +QEMU_LIBS = -lrt -lm + +QEMU_OPTS = +QEMU_VARS = + +#---------------------------------------------------------------------------- +# Package build process + +# Note: although QEMU uses a ./configure script, it is not compatible with +# the traditional autotools options (eg. --target et al.), so we can +# not use the autotools-package infrastructure. So we have to use the +# generic-package infra instead. 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) \ + --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-guest-agent \ + --disable-smartcard \ + --disable-strip \ + $(QEMU_OPTS) \ + ) +endef + +define QEMU_BUILD_CMDS + $(MAKE) -C $(@D)
package/qemu/qemu.mk line 92
Quoted 10 lines
package/qemu/qemu.mk new file +10
-0+endef + +define QEMU_INSTALL_TARGET_CMDS + $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install +endef + +define QEMU_UNINSTALL_TARGET_CMDS + @echo 'QEMU has no uninstall rule.' + @false +endef
Just don't implement the UNINSTALL_TARGET_CMDS in this case.
Since quite some time, we're considering dropping the UNINSTALL_TARGET_CMDS and CLEAN_CMDS altogether.
Best regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 11/36 package/qemu: new package
Thomas, All,
Quoted 13 lines · On Tuesday 14 August 2012 15:34:03 Thomas Petazzoni wrote:
Le Mon, 13 Aug 2012 01:53:59 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :package/qemu/Config.in line 2
Quoted 7 lines
new file mode 100644
index 0000000..a77d863package/qemu/Config.in new file +2
-0@@ -0,0 +1,24 @@ +config BR2_PACKAGE_QEMU + bool "QEMU"Just curious, what's the use case for Qemu on the target? I would have seen Qemu as something useful on the host, but on the target?
I want to build a libvirt-based system to host VMs, and I do not want to use a complete distro for that : I do not care about the handy-dandy init stuff, I don't care about networking auto-managing stuff, no fscking desktop stuff... I just want a basic system that just runs a libvirt daemon, and manages the VMs.
I want to build a completly-static QEMU, and that's not possible on a desktop/server distro that uses glibc, because static linking still pulls the NSS libs. So, rather than creating a new 'framework', I just decided to reuse something. ;-)
I want to play! ;-)
Quoted 6 lines
package/qemu/Config.in line 4
Quoted 2 lines
package/qemu/Config.in new file +2
-0+ depends on BR2_PACKAGE_PYTHON # We only need host-python, + # but there's no way to say so.Doh? You just need to do:
QEMU_DEPENDENCIES+= host-python
and that's it.
Doh... :/
/me hides...
Quoted 14 lines
Quoted 14 lines
package/qemu/Config.in new file +14
-0+ select BR2_PACKAGE_ZLIB + select BR2_PACKAGE_LIBGLIB2 + 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,
Quoted 8 lines
package/qemu/Config.in line 24
Quoted 6 lines
package/qemu/Config.in new file +6
-0+ server and embedded PowerPC, and S390 guests. + + http://qemu.org/ + +comment "QEMU requires python" + depends on !BR2_PACKAGE_PYTHONYou can drop this.
Of course! :-)
Quoted 92 lines
Quoted 92 lines
package/qemu/qemu.mk new file +86
-0@@ -0,0 +1,98 @@ +#----------------------------------------------------------------------------- +# Package description + +QEMU_VERSION = 1.1.1-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 +QEMU_LICENSE_FILES = COPYING COPYING.LIB +# NOTE: there is no top-level license file for non-(L)GPL licenses; +# the non-(L)GPL license texts are specified in the affected +# individual source files. + +#----------------------------------------------------------------------------- +# Package unconditional configuration + +QEMU_DEPENDENCIES = zlib libglib2 + +#----------------------------------------------------------------------------- +# Package conditional configuration + +# Need the LIBS variable because librt and libm are +# not automatically pulled. :-( +QEMU_LIBS = -lrt -lm + +QEMU_OPTS = +QEMU_VARS = + +#---------------------------------------------------------------------------- +# Package build process + +# Note: although QEMU uses a ./configure script, it is not compatible with +# the traditional autotools options (eg. --target et al.), so we can +# not use the autotools-package infrastructure. So we have to use the +# generic-package infra instead. 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) \ + --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-guest-agent \ + --disable-smartcard \ + --disable-strip \ + $(QEMU_OPTS) \ + ) +endef + +define QEMU_BUILD_CMDS + $(MAKE) -C $(@D) +endef + +define QEMU_INSTALL_TARGET_CMDS + $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
Quoted 8 lines
package/qemu/qemu.mk line 92
Quoted 6 lines
package/qemu/qemu.mk new file +6
-0+endef + +define QEMU_UNINSTALL_TARGET_CMDS + @echo 'QEMU has no uninstall rule.' + @false +endefJust don't implement the
UNINSTALL_TARGET_CMDSin this case.
Okydoky.
Thank you!
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 11/36 package/qemu: new package
Le Tue, 14 Aug 2012 19:03:45 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :
Quoted 9 lines
Quoted 2 lines
Just curious, what's the use case for Qemu on the target? I would have seen Qemu as something useful on the host, but on the target?
I want to build a libvirt-based system to host VMs, and I do not want to use a complete distro for that : I do not care about the handy-dandy init stuff, I don't care about networking auto-managing stuff, no fscking desktop stuff... I just want a basic system that just runs a libvirt daemon, and manages the VMs.
Quoted 6 lines
I want to build a completly-static QEMU, and that's not possible on a desktop/server distro that uses glibc, because static linking still pulls the NSS libs. So, rather than creating a new 'framework', I just decided to reuse something. ;-)
I want to play! ;-)
Ok, interesting. The only thing I'm a bit worried about is that this brings Buildroot outside of its "environment to cross-compile Linux systems for embedded platforms". Although it initially probably fits the "minimal Linux system for VM hosting" use case, I'm worried that down the road the needs may diverge (for example people using Buildroot for VM hosting environments will want package management, etc.). But maybe I simply shouldn't anticipate too much on this and just see how things move.
However, on this patch set, I'd like to see at least a Ack from Peter on the general idea of merging Qemu for the target and all the required dependencies. If Peter is fine with the general idea, we can together review the implementation details, but the general idea needs to be Acked, me thinks.
Of course, other people in the community are invited to raise their voice here as well.
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 11/36 package/qemu: new package
Thomas, All,
Quoted 28 lines · On Friday 17 August 2012 13:26:06 Thomas Petazzoni wrote:
Le Tue, 14 Aug 2012 19:03:45 +0200,
"Yann E. MORIN" <[email protected]> a ?crit :Quoted 9 lines
Quoted 2 lines
Just curious, what's the use case for Qemu on the target? I would have seen Qemu as something useful on the host, but on the target?
I want to build a libvirt-based system to host VMs, and I do not want to use a complete distro for that : I do not care about the handy-dandy init stuff, I don't care about networking auto-managing stuff, no fscking desktop stuff... I just want a basic system that just runs a libvirt daemon, and manages the VMs.
Quoted 6 lines
I want to build a completly-static QEMU, and that's not possible on a desktop/server distro that uses glibc, because static linking still pulls the NSS libs. So, rather than creating a new 'framework', I just decided to reuse something. ;-)
I want to play! ;-)
Ok, interesting. The only thing I'm a bit worried about is that this brings Buildroot outside of its "environment to cross-compile Linux systems for embedded platforms". Although it initially probably fits the "minimal Linux system for VM hosting" use case, I'm worried that down the road the needs may diverge (for example people using Buildroot for VM hosting environments will want package management, etc.). But maybe I simply shouldn't anticipate too much on this and just see how things move.
Quoted 8 lines
However, on this patch set, I'd like to see at least a Ack from Peter on the general idea of merging Qemu for the target and all the required dependencies. If Peter is fine with the general idea, we can together review the implementation details, but the general idea needs to be Acked, me thinks.
Of course, other people in the community are invited to raise their voice here as well.
Of course, it diverges from the original goal.
But using buildroot for this stuff is really dead-easy (besides all the time it takes to test, and dependencies, re-test and so-on... ;-) ).
I can understand that we may not want qemu upstream, but as I have this stuff here, better post them at least for review, and if people find it interesting, for upstreaming.
And yes, I too want an Ack from Peter before this is pulled.
Which should *not* be done now, I have some changes down the road (fixes from the reviews, plus local sound support (not spice)).
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'
PATCH 12/36 package/qemu: add basic target selection
In reply to Yann E. MORIN--- package/qemu/Config.in | 33 +++++++++++++++++++++++++++++++++ package/qemu/qemu.mk | 21 ++++++++++++++++++--- 2 files changed, 51 insertions(+), 3 deletions(-)
package/qemu/Config.in +33 -0
@@ -20,5 +20,38 @@ config BR2_PACKAGE_QEMU http://qemu.org/ +if BR2_PACKAGE_QEMU + +comment "Emulators selection" + +# We need at least one to be selected +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. + +config BR2_PACKAGE_QEMU_BSD_USER + bool "Enable all BSD user-land emulation" + select BR2_PACKAGE_QEMU_EMUL_SET + help + Say 'y' to build all BSD user-land emulators that QEMU supports. + +endif # BR2_PACKAGE_QEMU + comment "QEMU requires python" depends on !BR2_PACKAGE_PYTHON
package/qemu/qemu.mk +18 -3
@@ -25,6 +25,24 @@ QEMU_LIBS = -lrt -lm QEMU_OPTS = QEMU_VARS = +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 + +ifeq ($(BR2_PACKAGE_QEMU_BSD_USER),y) +QEMU_OPTS += --enable-bsd-user +else +QEMU_OPTS += --disable-bsd-user +endif + #---------------------------------------------------------------------------- # Package build process
@@ -48,9 +66,6 @@ define QEMU_CONFIGURE_CMDS --enable-nptl \ --enable-attr \ --enable-vhost-net \ - --enable-system \ - --enable-linux-user \ - --disable-bsd-user \ --disable-xen \ --disable-slirp \ --disable-sdl \
Signature · 1 line
1.7.2.5
PATCH 13/36 package/qemu: add fine-grained target selection
In reply to Yann E. MORIN--- package/qemu/Config.in | 21 +++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 25 insertions(+), 0 deletions(-)
package/qemu/Config.in +21 -0
@@ -24,6 +24,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:" + # We need at least one to be selected config BR2_PACKAGE_QEMU_EMUL_SET bool
@@ -51,6 +70,8 @@ config BR2_PACKAGE_QEMU_BSD_USER help Say 'y' to build all BSD user-land emulators that QEMU supports. +endif # BR2_PACKAGE_QEMU_CUSTOM_TARGETS == "" + endif # BR2_PACKAGE_QEMU comment "QEMU requires python"
package/qemu/qemu.mk +4 -0
@@ -43,6 +43,10 @@ else QEMU_OPTS += --disable-bsd-user endif +ifneq ($(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS)),) +QEMU_OPTS += --target-list="$(call qstrip,$(BR2_PACKAGE_QEMU_CUSTOM_TARGETS))" +endif + #---------------------------------------------------------------------------- # Package build process
Signature · 1 line
1.7.2.5
PATCH 14/36 package/qemu: add SDL frontends
In reply to Yann E. MORIN--- package/qemu/Config.in | 9 +++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
@@ -72,6 +72,15 @@ config BR2_PACKAGE_QEMU_BSD_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 comment "QEMU requires python"
package/qemu/qemu.mk +7 -1
@@ -47,6 +47,13 @@ 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 +else +QEMU_OPTS += --disable-sdl +endif + #---------------------------------------------------------------------------- # Package build process
@@ -72,7 +79,6 @@ define QEMU_CONFIGURE_CMDS --enable-vhost-net \ --disable-xen \ --disable-slirp \ - --disable-sdl \ --disable-vnc \ --disable-virtfs \ --disable-brlapi \
Signature · 1 line
1.7.2.5
PATCH 15/36 package/qemu: add option to enable/disable the VNC frontend
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -74,6 +74,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
package/qemu/qemu.mk +10 -1
@@ -47,6 +47,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
@@ -79,7 +85,10 @@ define QEMU_CONFIGURE_CMDS --enable-vhost-net \ --disable-xen \ --disable-slirp \ - --disable-vnc \ + --disable-vnc-jpeg \ + --disable-vnc-png \ + --disable-vnc-tls \ + --disable-vnc-sasl \ --disable-virtfs \ --disable-brlapi \ --disable-curses \
Signature · 1 line
1.7.2.5
PATCH 16/36 package/qemu: add VNC jpeg and png compression
In reply to Yann E. MORIN--- package/qemu/Config.in | 10 ++++++++++ package/qemu/qemu.mk | 16 ++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-)
package/qemu/Config.in +10 -0
@@ -81,6 +81,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
package/qemu/qemu.mk +14 -2
@@ -53,6 +53,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
@@ -85,8 +99,6 @@ define QEMU_CONFIGURE_CMDS --enable-vhost-net \ --disable-xen \ --disable-slirp \ - --disable-vnc-jpeg \ - --disable-vnc-png \ --disable-vnc-tls \ --disable-vnc-sasl \ --disable-virtfs \
Signature · 1 line
1.7.2.5
PATCH 17/36 package/qemu: add VNC TLS-encryption
In reply to Yann E. MORINOnly TLS is supported, as buildroot has no package for the SASL library.
--- package/qemu/Config.in | 11 +++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
@@ -91,6 +91,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
package/qemu/qemu.mk +7 -1
@@ -67,6 +67,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
@@ -99,7 +106,6 @@ define QEMU_CONFIGURE_CMDS --enable-vhost-net \ --disable-xen \ --disable-slirp \ - --disable-vnc-tls \ --disable-vnc-sasl \ --disable-virtfs \ --disable-brlapi \
Signature · 1 line
1.7.2.5
PATCH 18/36 package/qemu: add option to not install blobs
In reply to Yann E. MORIN--- package/qemu/Config.in | 16 ++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 2 files changed, 20 insertions(+), 0 deletions(-)
package/qemu/Config.in +16 -0
@@ -109,6 +109,22 @@ 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 comment "QEMU requires python"
package/qemu/qemu.mk +4 -0
@@ -81,6 +81,10 @@ else QEMU_OPTS += --disable-sdl endif +ifeq ($(BR2_PACKAGE_QEMU_BLOBS),) +QEMU_OPTS += --disable-blobs +endif + #---------------------------------------------------------------------------- # Package build process
Signature · 1 line
1.7.2.5
PATCH 19/36 package/qemu: add option to remove unwanted keymaps
In reply to Yann E. MORIN--- package/qemu/Config.in | 12 ++++++++++ package/qemu/qemu.mk | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 0 deletions(-)
package/qemu/Config.in +12 -0
@@ -125,6 +125,18 @@ 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 comment "QEMU requires python"
package/qemu/qemu.mk +58 -0
64 lines not on this page · raw message
Signature · 1 line
1.7.2.5
PATCH 20/36 package/qemu: add uuid support
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -111,6 +111,13 @@ config BR2_PACKAGE_QEMU_SDL comment "Misc. features" +config BR2_PACKAGE_QEMU_UUID + bool "Enable VMs UUID" + select BR2_PACKAGE_UTIL_LINUX + select BR2_PACKAGE_UTIL_LINUX_LIBUUID + help + Say 'y' here to have QEMU support UUIDs for VMs. + config BR2_PACKAGE_QEMU_BLOBS bool "Install binary blobs" default y
package/qemu/qemu.mk +7 -1
@@ -81,6 +81,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
@@ -176,7 +183,6 @@ define QEMU_CONFIGURE_CMDS --disable-fdt \ --disable-bluez \ --disable-guest-base \ - --disable-uuid \ --disable-vde \ --disable-linux-aio \ --disable-cap-ng \
Signature · 1 line
1.7.2.5
PATCH 21/36 package/qemu: add support for capabilities
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 11 ++++++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -118,6 +118,13 @@ config BR2_PACKAGE_QEMU_UUID help Say 'y' here to have QEMU support UUIDs for VMs. +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
package/qemu/qemu.mk +10 -1
@@ -88,6 +88,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
@@ -185,7 +195,6 @@ define QEMU_CONFIGURE_CMDS --disable-guest-base \ --disable-vde \ --disable-linux-aio \ - --disable-cap-ng \ --disable-docs \ --disable-spice \ --disable-rbd \
Signature · 1 line
1.7.2.5
PATCH 22/36 package/qemu: add attr/xattr option
In reply to Yann E. MORIN--- package/qemu/Config.in | 6 ++++++ package/qemu/qemu.mk | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletions(-)
package/qemu/Config.in +6 -0
@@ -125,6 +125,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
package/qemu/qemu.mk +6 -1
@@ -98,6 +98,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
@@ -181,7 +187,6 @@ define QEMU_CONFIGURE_CMDS --audio-card-list= \ --enable-kvm \ --enable-nptl \ - --enable-attr \ --enable-vhost-net \ --disable-xen \ --disable-slirp \
Signature · 1 line
1.7.2.5
PATCH 23/36 package/qemu: add support for virtfs
In reply to Yann E. MORIN--- package/qemu/Config.in | 16 ++++++++++++++++ package/qemu/qemu.mk | 7 ++++++- 2 files changed, 22 insertions(+), 1 deletions(-)
package/qemu/Config.in +16 -0
@@ -109,6 +109,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
package/qemu/qemu.mk +6 -1
@@ -81,6 +81,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
@@ -191,7 +197,6 @@ define QEMU_CONFIGURE_CMDS --disable-xen \ --disable-slirp \ --disable-vnc-sasl \ - --disable-virtfs \ --disable-brlapi \ --disable-curses \ --disable-curl \
Signature · 1 line
1.7.2.5
PATCH 24/36 package/qemu: add support for cURL
In reply to Yann E. MORINQEMU can use libcurl as a block backend, to access remote block devices.
--- package/qemu/Config.in | 10 ++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletions(-)
package/qemu/Config.in +10 -0
@@ -125,6 +125,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
package/qemu/qemu.mk +7 -1
@@ -87,6 +87,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
@@ -199,7 +206,6 @@ define QEMU_CONFIGURE_CMDS --disable-vnc-sasl \ --disable-brlapi \ --disable-curses \ - --disable-curl \ --disable-fdt \ --disable-bluez \ --disable-guest-base \
Signature · 1 line
1.7.2.5
PATCH 25/36 package/qemu: enable use of the curses frontend
In reply to Yann E. MORIN--- package/qemu/Config.in | 11 +++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
@@ -109,6 +109,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
package/qemu/qemu.mk +7 -1
@@ -81,6 +81,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
@@ -205,7 +212,6 @@ define QEMU_CONFIGURE_CMDS --disable-slirp \ --disable-vnc-sasl \ --disable-brlapi \ - --disable-curses \ --disable-fdt \ --disable-bluez \ --disable-guest-base \
Signature · 1 line
1.7.2.5
PATCH 26/36 package/qemu: add BlueZ connectivity
In reply to Yann E. MORIN--- package/qemu/Config.in | 11 +++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletions(-)
package/qemu/Config.in +11 -0
@@ -146,6 +146,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
package/qemu/qemu.mk +7 -1
@@ -101,6 +101,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
@@ -213,7 +220,6 @@ define QEMU_CONFIGURE_CMDS --disable-vnc-sasl \ --disable-brlapi \ --disable-fdt \ - --disable-bluez \ --disable-guest-base \ --disable-vde \ --disable-linux-aio \
Signature · 1 line
1.7.2.5
PATCH 27/36 package/qemu: add AIO support
In reply to Yann E. MORINAdd support for Asynchronous Input/Ouput (AIO).
--- package/qemu/Config.in | 9 +++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
@@ -146,6 +146,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
package/qemu/qemu.mk +7 -1
@@ -101,6 +101,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
@@ -222,7 +229,6 @@ define QEMU_CONFIGURE_CMDS --disable-fdt \ --disable-guest-base \ --disable-vde \ - --disable-linux-aio \ --disable-docs \ --disable-spice \ --disable-rbd \
Signature · 1 line
1.7.2.5
PATCH 28/36 package/qemu: add support for FDT
In reply to Yann E. MORINFDT is the Flat Device Tree, and allows QEMU to pass DTs to the VMs.
--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -168,6 +168,13 @@ comment "BlueZ connectivity depends on bluez-utils" comment "Misc. features" +config BR2_PACKAGE_QEMU_FDT + bool "Enable FDT" + select BR2_PACKAGE_LIBFDT + 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" select BR2_PACKAGE_UTIL_LINUX
package/qemu/qemu.mk +7 -1
@@ -115,6 +115,13 @@ else QEMU_OPTS += --disable-bluez endif +ifeq ($(BR2_PACKAGE_QEMU_FDT),y) +QEMU_OPTS += --enable-fdt +QEMU_DEPENDENCIES += libfdt +else +QEMU_OPTS += --disable-fdt +endif + ifeq ($(BR2_PACKAGE_QEMU_UUID),y) QEMU_OPTS += --enable-uuid QEMU_DEPENDENCIES += util-linux
@@ -226,7 +233,6 @@ define QEMU_CONFIGURE_CMDS --disable-slirp \ --disable-vnc-sasl \ --disable-brlapi \ - --disable-fdt \ --disable-guest-base \ --disable-vde \ --disable-docs \
Signature · 1 line
1.7.2.5
PATCH 29/36 package/qemu: add support for VDE switches
In reply to Yann E. MORIN--- package/qemu/Config.in | 7 +++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletions(-)
package/qemu/Config.in +7 -0
@@ -166,6 +166,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_FDT
package/qemu/qemu.mk +7 -1
@@ -115,6 +115,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_FDT),y) QEMU_OPTS += --enable-fdt QEMU_DEPENDENCIES += libfdt
@@ -234,7 +241,6 @@ define QEMU_CONFIGURE_CMDS --disable-vnc-sasl \ --disable-brlapi \ --disable-guest-base \ - --disable-vde \ --disable-docs \ --disable-spice \ --disable-rbd \
Signature · 1 line
1.7.2.5
PATCH 30/36 package/qemu: add iSCSI support
In reply to Yann E. MORIN--- package/qemu/Config.in | 6 ++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletions(-)
package/qemu/Config.in +6 -0
@@ -146,6 +146,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
package/qemu/qemu.mk +7 -1
@@ -101,6 +101,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
@@ -244,7 +251,6 @@ define QEMU_CONFIGURE_CMDS --disable-docs \ --disable-spice \ --disable-rbd \ - --disable-libiscsi \ --disable-usb-redir \ --disable-guest-agent \ --disable-smartcard \
Signature · 1 line
1.7.2.5
PATCH 31/36 package/qemu: add support for USB redirection
In reply to Yann E. MORIN--- package/qemu/Config.in | 9 +++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletions(-)
package/qemu/Config.in +9 -0
@@ -152,6 +152,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
package/qemu/qemu.mk +7 -1
@@ -108,6 +108,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
@@ -251,7 +258,6 @@ define QEMU_CONFIGURE_CMDS --disable-docs \ --disable-spice \ --disable-rbd \ - --disable-usb-redir \ --disable-guest-agent \ --disable-smartcard \ --disable-strip \
Signature · 1 line
1.7.2.5
PATCH 32/36 package/qemu: add support for Spice
In reply to Yann E. MORIN--- package/qemu/Config.in | 12 ++++++++++++ package/qemu/qemu.mk | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletions(-)
package/qemu/Config.in +12 -0
@@ -120,6 +120,18 @@ 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 + depends on !BR2_PREFER_STATIC_LIB + help + Say 'y' here to have QEMU support Spice as a (VNC-like) frontend. + +if !BR2_PACKAGE_SPICE || BR2_PREFER_STATIC_LIB +comment "Spice support requires spice-server," +comment "and does not work for static linking." +endif + comment "Block backends" config BR2_PACKAGE_QEMU_VIRTFS
package/qemu/qemu.mk +7 -1
@@ -88,6 +88,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
@@ -256,7 +263,6 @@ define QEMU_CONFIGURE_CMDS --disable-brlapi \ --disable-guest-base \ --disable-docs \ - --disable-spice \ --disable-rbd \ --disable-guest-agent \ --disable-smartcard \
Signature · 1 line
1.7.2.5
PATCH 33/36 package/qemu: option to build the docs
In reply to Yann E. MORIN--- package/qemu/qemu.mk | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
package/qemu/qemu.mk +6 -1
@@ -177,6 +177,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 + #---------------------------------------------------------------------------- # Package hooks
@@ -262,7 +268,6 @@ define QEMU_CONFIGURE_CMDS --disable-vnc-sasl \ --disable-brlapi \ --disable-guest-base \ - --disable-docs \ --disable-rbd \ --disable-guest-agent \ --disable-smartcard \
Signature · 1 line
1.7.2.5
PATCH 34/36 package/qemu: enable guest-base
In reply to Yann E. MORINBackport this patch to the initial QEMU patch if it works.
--- package/qemu/qemu.mk | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)
package/qemu/qemu.mk +0 -1
@@ -267,7 +267,6 @@ define QEMU_CONFIGURE_CMDS --disable-slirp \ --disable-vnc-sasl \ --disable-brlapi \ - --disable-guest-base \ --disable-rbd \ --disable-guest-agent \ --disable-smartcard \
Signature · 1 line
1.7.2.5
PATCH 35/36 package/qemu: move sub-options into a sub-menu
In reply to Yann E. MORINAs 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.
--- package/qemu/Config.in | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
package/qemu/Config.in +1 -1
@@ -1,4 +1,4 @@ -config BR2_PACKAGE_QEMU +menuconfig BR2_PACKAGE_QEMU bool "QEMU" depends on BR2_PACKAGE_PYTHON # We only need host-python, # but there's no way to say so.
Signature · 1 line
1.7.2.5
PATCH 36/36 package/qemu: enable a static build
In reply to Yann E. MORIN---
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 | 20 ++++++++++++++------ package/qemu/qemu-static-sdl.patch | 31 +++++++++++++++++++++++++++++++ package/qemu/qemu.mk | 4 ++++ 3 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 package/qemu/qemu-static-sdl.patch
package/qemu/Config.in +14 -6
@@ -96,11 +96,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"
@@ -123,11 +123,11 @@ config BR2_PACKAGE_QEMU_CURSES config BR2_PACKAGE_QEMU_SPICE bool "Enable Spice frontend" depends on BR2_PACKAGE_SPICE - depends on !BR2_PREFER_STATIC_LIB + depends on !BR2_PACKAGE_QEMU_STATIC help Say 'y' here to have QEMU support Spice as a (VNC-like) frontend. -if !BR2_PACKAGE_SPICE || BR2_PREFER_STATIC_LIB +if !BR2_PACKAGE_SPICE || BR2_PACKAGE_QEMU_STATIC comment "Spice support requires spice-server," comment "and does not work for static linking." endif
@@ -150,13 +150,13 @@ config BR2_PACKAGE_QEMU_VIRTFS config BR2_PACKAGE_QEMU_CURL bool "Enable remote block-devices using cURL" - depends on !BR2_PREFER_STATIC_LIB + depends on !BR2_PACKAGE_QEMU_STATIC 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 + depends on BR2_PACKAGE_QEMU_STATIC config BR2_PACKAGE_QEMU_ISCSI bool "Enable remote block-devices using iSCSI"
@@ -255,6 +255,14 @@ 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 comment "QEMU requires python"
package/qemu/qemu-static-sdl.patch new file +31 -0
@@ -0,0 +1,31 @@ +configure: fix detection for SDL libs when static linking + +If using pkg-config, we must use '--static --libs', not '--stati-libs' +which is solely for sdl-config. + +Signed-off-by: "Yann E. MORIN" <[email protected]> + +diff -durN qemu-1.1.1.orig//configure qemu-1.1.1/configure +--- qemu-1.1.1.orig//configure 2012-07-17 20:11:14.000000000 +0200 ++++ qemu-1.1.1/configure 2012-07-30 16:40:21.248942557 +0200 +@@ -1546,9 +1546,11 @@ + + if $pkg_config sdl --modversion >/dev/null 2>&1; then + sdlconfig="$pkg_config sdl" ++ sdlconfig_staticlibs="--static --libs" + _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'` + elif has ${sdl_config}; then + sdlconfig="$sdl_config" ++ sdlconfig_staticlibs="--static-libs" + _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'` + else + if test "$sdl" = "yes" ; then +@@ -1569,7 +1571,7 @@ + EOF + sdl_cflags=`$sdlconfig --cflags 2> /dev/null` + if test "$static" = "yes" ; then +- sdl_libs=`$sdlconfig --static-libs 2>/dev/null` ++ sdl_libs=`$sdlconfig $sdlconfig_staticlibs 2>/dev/null` + else + sdl_libs=`$sdlconfig --libs 2> /dev/null` + fi
package/qemu/qemu.mk +4 -0
@@ -25,6 +25,10 @@ QEMU_LIBS = -lrt -lm QEMU_OPTS = QEMU_VARS = +ifeq ($(BR2_PACKAGE_QEMU_STATIC),y) +QEMU_OPTS += --static +endif + ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y) QEMU_OPTS += --enable-system else
Signature · 1 line
1.7.2.5