{"action":"created","issue":{"url":"https://api.github.com/repos/coreos/rkt/issues/2952","repository_url":"https://api.github.com/repos/coreos/rkt","labels_url":"https://api.github.com/repos/coreos/rkt/issues/2952/labels{/name}","comments_url":"https://api.github.com/repos/coreos/rkt/issues/2952/comments","events_url":"https://api.github.com/repos/coreos/rkt/issues/2952/events","html_url":"https://github.com/coreos/rkt/pull/2952","id":166563929,"number":2952,"title":"Introduce QEMU support","user":{"login":"jjlakis","id":12859079,"avatar_url":"https://avatars.githubusercontent.com/u/12859079?v=3","gravatar_id":"","url":"https://api.github.com/users/jjlakis","html_url":"https://github.com/jjlakis","followers_url":"https://api.github.com/users/jjlakis/followers","following_url":"https://api.github.com/users/jjlakis/following{/other_user}","gists_url":"https://api.github.com/users/jjlakis/gists{/gist_id}","starred_url":"https://api.github.com/users/jjlakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jjlakis/subscriptions","organizations_url":"https://api.github.com/users/jjlakis/orgs","repos_url":"https://api.github.com/users/jjlakis/repos","events_url":"https://api.github.com/users/jjlakis/events{/privacy}","received_events_url":"https://api.github.com/users/jjlakis/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-20T11:56:38Z","updated_at":"2016-07-20T13:39:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/coreos/rkt/pulls/2952","html_url":"https://github.com/coreos/rkt/pull/2952","diff_url":"https://github.com/coreos/rkt/pull/2952.diff","patch_url":"https://github.com/coreos/rkt/pull/2952.patch"},"body":"Introducing QEMU support in rkt kvm flavor.\r\nPR contains:\r\n * `stage1/usr_from_kvm/qemu.mk` - responsible for cloning sources, building qemu and including its binaries in `stage1-kvm.aci`,\r\n * `stage1/init/kvm/hypervisor/qemu_driver.go` - similar to [lkvm_driver.go](https://github.com/coreos/rkt/blob/master/stage1/init/kvm/hypervisor/lkvm_driver.go) in the form introduced in https://github.com/coreos/rkt/pull/2684,\r\n * few build system changes to provide the choice of hypervisors.\r\n\r\n2.6.0 stable version of qemu is set in `qemu.mk`. lkvm will remain the default hypervisor of kvm stage1.\r\n\r\nTo use qemu instead of lkvm as a hypervisor, type:\r\n`./configure --with-stage1-kvm-hypervisor=qemu`.\r\n\r\n### To be clarified / To do\r\n * @alban [came up with an idea](https://github.com/coreos/rkt/pull/2684#issuecomment-230294681) to treat lkvm-based kvm flavor and qemu-based kvm flavor as a different flavors. The only difference is the hypervisor binary, but on the other hand, something (i.e. performance) seems to be different. IMO, separating flavors is not the good idea. We can, for example, refactor code to select what images (`stage1-kvm-lkvm.aci`, `stage1-kvm-qemu.aci`) we want to build (in `./configure` parameters), and then, during init, check what hypervisor binary is inside the image and select hv driver accordingly. RFC.\r\n * `TestDiagnostics` is failing for QEMU (stdout problem)\r\n * Documentation needs to be changed. If no new flavor is needed, I would extend existing [paper](https://github.com/coreos/rkt/blob/master/Documentation/running-lkvm-stage1.md).\r\n * ...\r\n\r\ncc @coreos/rkt-kvm-maintainers "},"comment":{"url":"https://api.github.com/repos/coreos/rkt/issues/comments/233951603","html_url":"https://github.com/coreos/rkt/pull/2952#issuecomment-233951603","issue_url":"https://api.github.com/repos/coreos/rkt/issues/2952","id":233951603,"user":{"login":"iaguis","id":507354,"avatar_url":"https://avatars.githubusercontent.com/u/507354?v=3","gravatar_id":"","url":"https://api.github.com/users/iaguis","html_url":"https://github.com/iaguis","followers_url":"https://api.github.com/users/iaguis/followers","following_url":"https://api.github.com/users/iaguis/following{/other_user}","gists_url":"https://api.github.com/users/iaguis/gists{/gist_id}","starred_url":"https://api.github.com/users/iaguis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iaguis/subscriptions","organizations_url":"https://api.github.com/users/iaguis/orgs","repos_url":"https://api.github.com/users/iaguis/repos","events_url":"https://api.github.com/users/iaguis/events{/privacy}","received_events_url":"https://api.github.com/users/iaguis/received_events","type":"User","site_admin":false},"created_at":"2016-07-20T13:39:26Z","updated_at":"2016-07-20T13:39:26Z","body":"I can't compile it on my system.\r\n\r\nFirst, my default python is `3.x` so the build didn't work. I added a workaround:\r\n\r\n```diff\r\ndiff --git a/stage1/usr_from_kvm/qemu.mk b/stage1/usr_from_kvm/qemu.mk\r\nindex 0b4a3cd..ac7160b 100644\r\n--- a/stage1/usr_from_kvm/qemu.mk\r\n+++ b/stage1/usr_from_kvm/qemu.mk\r\n@@ -53,7 +53,7 @@ $(call generate-stamp-rule,$(QEMU_BUILD_STAMP),$(QEMU_CONF_STAMP),, \\\r\n \r\n $(call generate-stamp-rule,$(QEMU_CONF_STAMP),$(QEMU_CLONE_STAMP),, \\\r\n        $(call vb,vt,CONFIG EXT,qemu) \\\r\n-       cd $(QEMU_SRCDIR); ./configure $(QEMU_CONFIGURATOR) $(QEMU_CONFIGURATION_OPTS) $(call vl2,>/dev/null))\r\n+       cd $(QEMU_SRCDIR); ./configure --python=/usr/bin/python2 $(QEMU_CONFIGURATOR) $(QEMU_CONFIGURATION_OPTS) $(call vl2,>/dev/null))\r\n \r\n # Generate filelist of qemu directory (this is both srcdir and\r\n # builddir). Can happen after build finished.\r\n```\r\n\r\nAnd then the next failure is:\r\n\r\n```\r\nERROR: sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T.\r\n       You probably need to set PKG_CONFIG_LIBDIR\r\n       to point to the right pkg-config files for your\r\n       build target\r\n```\r\n\r\nI tried setting up `PKG_CONFIG_LIBDIR`, `GLIB_SIZEOF_SIZE_T`, the patch mentioned in https://bugs.launchpad.net/qemu/+bug/1579565, adding `--extra-cflags=\"-m64\"` but I couldn't make it work."}}
{"actor":{"display_login":"iaguis"}}