All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for-3.2 00/41] RFC: slirp: make it again a standalone project
@ 2018-11-14 12:36 Marc-André Lureau
  2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 01/41] slirp: move socket pair creation in helper function Marc-André Lureau
                   ` (43 more replies)
  0 siblings, 44 replies; 137+ messages in thread
From: Marc-André Lureau @ 2018-11-14 12:36 UTC (permalink / raw)
  To: qemu-devel
  Cc: samuel.thibault, rjones, stefanha, renzo, Marc-André Lureau

Hi,

Based-on: https://people.debian.org/~sthibault/qemu.git/ slirp branch

This series goal is to allow building libslirp as an independent library.

While looking at making SLIRP a seperate running process, I thought
that having an independent library from QEMU would be a first step.

There has been some attempts to make slirp a seperate project in the past.
(https://lists.gnu.org/archive/html/qemu-devel/2017-02/msg01092.html)
Unfortunately, they forked from QEMU and didn't provide enough
compatibility for QEMU to make use of it (in particular, vmstate
handling was removed, they lost git history etc). Furthermore, they
are not maintained as far as I can see.

I would propose to make slirp a seperate project, that can initially
be used by QEMU as a submodule, keeping Makefile.objs until a proper
shared library with stability guarantees etc is ready..

The subproject could created by preserving git tags, and cleaning up the code style, this way:

git filter-branch --tree-filter "if ls * 1> /dev/null 2>&1; then clang-format -i * /dev/null; fi " -f --subdirectory-filter "slirp" --prune-empty --tag-name-filter cat -- --all
(my clang-format https://gist.github.com/elmarco/cb20c8d92007df0e2fb8a2404678ac73)

What do you think?

Marc-André Lureau (41):
  slirp: move socket pair creation in helper function
  glib-compat: add g_spawn_async_with_fds() fallback
  slirp: simplify fork_exec()
  slirp: remove unused M_TRAILINGSPACE
  slirp: use a callback structure to interface with qemu
  slirp: add a callback for qemu_chr_fe_write_all()
  slirp: add clock_get_ns() callback
  slirp: add callbacks for timer
  slirp: add a set_nonblock() callback
  slirp: remove PROBE_CONN dead-code
  slirp: remove FULL_BOLT
  slirp: remove the disabled readv()/writev() code path
  slirp: remove HAVE_SYS_SIGNAL_H
  slirp: remove unused HAVE_SYS_BITYPES_H
  slirp: remove NO_UNIX_SOCKETS
  slirp: remove unused HAVE_SYS_STROPTS_H
  slirp: remove unused HAVE_ARPA_INET_H
  slirp: remove unused HAVE_SYS_WAIT_H
  slirp: remove unused HAVE_SYS_SELECT_H
  slirp: remove HAVE_SYS_IOCTL_H
  slirp: remove HAVE_SYS_FILIO_H
  slirp: remove unused DECLARE_IOVEC
  slirp: remove unused HAVE_INET_ATON
  slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent
  slirp: replace SIZEOF_CHAR_P with glib equivalent
  slirp: replace compile time DO_KEEPALIVE
  slirp: remove unused global slirp_instance
  slirp: replace error_report() with g_critical()
  slirp: improve a bit the debug macros
  slirp: replace trace functions with DEBUG calls
  slirp: add a callback to log guest errors
  slirp: remove unused sbflush()
  slirp: replace qemu_notify_event() with a callback
  slirp: remove #if notdef dead code
  slirp: NULL is defined by glib (at least)
  slirp: remove dead TCP_ACK_HACK code
  slirp: replace ARRAY_SIZE with G_N_ELEMENTS
  net: do not depend on slirp internals
  slirp: move QEMU state saving to a separate unit
  slirp: replace remaining QEMU dependency
  build-sys: add a basic meson build

 include/glib-compat.h |  56 ++++++
 net/colo.h            |   3 +-
 net/util.h            |  55 +++++
 slirp/debug.h         |  47 ++++-
 slirp/ip.h            |  24 ++-
 slirp/ip6.h           |   8 +-
 slirp/ip6_icmp.h      |  22 +-
 slirp/libslirp.h      |  35 +++-
 slirp/main.h          |   4 -
 slirp/mbuf.h          |   1 -
 slirp/qtailq.h        | 218 ++++++++++++++++++++
 slirp/sbuf.h          |   3 +-
 slirp/slirp.h         |  58 ++----
 slirp/slirp_config.h  |  86 --------
 slirp/socket.h        |   1 +
 slirp/state.h         |   9 +
 slirp/tcp.h           |   4 +-
 slirp/util.h          | 145 +++++++++++++
 net/colo-compare.c    |   1 +
 net/colo.c            |   1 +
 net/filter-rewriter.c |   1 +
 net/slirp.c           |  65 +++++-
 slirp/arp_table.c     |  13 +-
 slirp/bootp.c         |   4 +-
 slirp/cksum.c         |   5 +-
 slirp/dhcpv6.c        |  19 +-
 slirp/dnssearch.c     |   1 -
 slirp/if.c            |   6 +-
 slirp/ip6_icmp.c      |  34 ++--
 slirp/ip6_input.c     |   1 -
 slirp/ip6_output.c    |   2 -
 slirp/ip_icmp.c       |  25 ++-
 slirp/ip_input.c      | 201 ------------------
 slirp/ip_output.c     |   1 -
 slirp/mbuf.c          |   3 +-
 slirp/misc.c          | 188 +++++++++--------
 slirp/ncsi.c          |   5 +-
 slirp/ndp_table.c     |  20 +-
 slirp/sbuf.c          |   8 +-
 slirp/slirp.c         | 458 +++---------------------------------------
 slirp/socket.c        |  72 +++----
 slirp/state.c         | 394 ++++++++++++++++++++++++++++++++++++
 slirp/tcp_input.c     |  86 ++------
 slirp/tcp_output.c    |   3 +-
 slirp/tcp_subr.c      |  21 +-
 slirp/tcp_timer.c     |   3 +-
 slirp/tftp.c          |  18 +-
 slirp/udp.c           |  13 +-
 slirp/udp6.c          |   8 +-
 slirp/util.c          | 176 ++++++++++++++++
 stubs/slirp.c         |   2 +-
 Makefile.objs         |   1 -
 slirp/Makefile.objs   |   4 +-
 slirp/meson.build     |  48 +++++
 slirp/trace-events    |   5 -
 55 files changed, 1547 insertions(+), 1148 deletions(-)
 create mode 100644 slirp/qtailq.h
 delete mode 100644 slirp/slirp_config.h
 create mode 100644 slirp/state.h
 create mode 100644 slirp/util.h
 create mode 100644 slirp/state.c
 create mode 100644 slirp/util.c
 create mode 100644 slirp/meson.build
 delete mode 100644 slirp/trace-events

-- 
2.19.1.708.g4ede3d42df

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

end of thread, other threads:[~2019-01-15 19:34 UTC | newest]

Thread overview: 137+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-14 12:36 [Qemu-devel] [PATCH for-3.2 00/41] RFC: slirp: make it again a standalone project Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 01/41] slirp: move socket pair creation in helper function Marc-André Lureau
2018-11-19 22:46   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 02/41] glib-compat: add g_spawn_async_with_fds() fallback Marc-André Lureau
2018-11-19 22:50   ` Samuel Thibault
2018-11-20  6:11     ` Thomas Huth
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 03/41] slirp: simplify fork_exec() Marc-André Lureau
2018-11-14 14:22   ` Daniel P. Berrangé
2018-11-19 22:59     ` Samuel Thibault
2018-11-19 23:20       ` Eric Blake
2018-11-19 22:56   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 04/41] slirp: remove unused M_TRAILINGSPACE Marc-André Lureau
2018-11-14 13:32   ` Daniel P. Berrangé
2018-11-19 23:01     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 05/41] slirp: use a callback structure to interface with qemu Marc-André Lureau
2018-11-14 13:10   ` Philippe Mathieu-Daudé
2018-11-19 23:09     ` Samuel Thibault
2018-11-14 14:30   ` Stefan Hajnoczi
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 06/41] slirp: add a callback for qemu_chr_fe_write_all() Marc-André Lureau
2018-11-15 13:12   ` Paolo Bonzini
2019-01-15 19:22     ` Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 07/41] slirp: add clock_get_ns() callback Marc-André Lureau
2018-11-15 12:54   ` Paolo Bonzini
2018-11-19 23:15     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 08/41] slirp: add callbacks for timer Marc-André Lureau
2018-11-15 12:56   ` Paolo Bonzini
2019-01-15 19:21     ` Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 09/41] slirp: add a set_nonblock() callback Marc-André Lureau
2018-11-15 13:03   ` Paolo Bonzini
2018-11-21 21:02     ` Marc-André Lureau
2018-11-22 13:09       ` Paolo Bonzini
2019-01-15 19:22     ` Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 10/41] slirp: remove PROBE_CONN dead-code Marc-André Lureau
2018-11-14 13:12   ` Philippe Mathieu-Daudé
2018-11-19 23:17     ` Samuel Thibault
2018-11-14 13:33   ` Daniel P. Berrangé
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 11/41] slirp: remove FULL_BOLT Marc-André Lureau
2018-11-14 13:46   ` Daniel P. Berrangé
2018-11-19 23:18     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 12/41] slirp: remove the disabled readv()/writev() code path Marc-André Lureau
2018-11-14 13:46   ` Daniel P. Berrangé
2018-11-19 23:19     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 13/41] slirp: remove HAVE_SYS_SIGNAL_H Marc-André Lureau
2018-11-14 13:47   ` Daniel P. Berrangé
2018-11-20  0:58     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 14/41] slirp: remove unused HAVE_SYS_BITYPES_H Marc-André Lureau
2018-11-14 13:47   ` Daniel P. Berrangé
2018-11-20  0:59     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 15/41] slirp: remove NO_UNIX_SOCKETS Marc-André Lureau
2018-11-14 13:48   ` Daniel P. Berrangé
2018-11-20  0:59     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 16/41] slirp: remove unused HAVE_SYS_STROPTS_H Marc-André Lureau
2018-11-14 13:49   ` Daniel P. Berrangé
2018-11-20  1:00     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 17/41] slirp: remove unused HAVE_ARPA_INET_H Marc-André Lureau
2018-11-14 13:50   ` Daniel P. Berrangé
2018-11-20  1:01     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 18/41] slirp: remove unused HAVE_SYS_WAIT_H Marc-André Lureau
2018-11-14 13:50   ` Daniel P. Berrangé
2018-11-20  1:01     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 19/41] slirp: remove unused HAVE_SYS_SELECT_H Marc-André Lureau
2018-11-14 13:51   ` Daniel P. Berrangé
2018-11-20  1:02     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 20/41] slirp: remove HAVE_SYS_IOCTL_H Marc-André Lureau
2018-11-14 13:51   ` Daniel P. Berrangé
2018-11-20  1:03     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 21/41] slirp: remove HAVE_SYS_FILIO_H Marc-André Lureau
2018-11-14 13:52   ` Daniel P. Berrangé
2018-11-20  1:04     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 22/41] slirp: remove unused DECLARE_IOVEC Marc-André Lureau
2018-11-14 13:53   ` Daniel P. Berrangé
2018-11-20  1:05     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 23/41] slirp: remove unused HAVE_INET_ATON Marc-André Lureau
2018-11-14 13:54   ` Daniel P. Berrangé
2018-11-20  1:05     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 24/41] slirp: replace HOST_WORDS_BIGENDIAN with glib equivalent Marc-André Lureau
2018-11-14 13:14   ` Philippe Mathieu-Daudé
2018-11-20  1:07     ` Samuel Thibault
2018-11-14 13:32   ` Daniel P. Berrangé
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 25/41] slirp: replace SIZEOF_CHAR_P " Marc-André Lureau
2018-11-14 13:14   ` Philippe Mathieu-Daudé
2018-11-20  1:08     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 26/41] slirp: replace compile time DO_KEEPALIVE Marc-André Lureau
2018-11-20  1:09   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 27/41] slirp: remove unused global slirp_instance Marc-André Lureau
2018-11-14 13:55   ` Daniel P. Berrangé
2018-11-20  1:10     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 28/41] slirp: replace error_report() with g_critical() Marc-André Lureau
2018-11-20  1:14   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 29/41] slirp: improve a bit the debug macros Marc-André Lureau
2018-11-14 14:04   ` Daniel P. Berrangé
2018-11-14 20:51     ` Marc-André Lureau
2018-11-20  1:19   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 30/41] slirp: replace trace functions with DEBUG calls Marc-André Lureau
2018-11-20  1:21   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 31/41] slirp: add a callback to log guest errors Marc-André Lureau
2018-11-20  1:27   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 32/41] slirp: remove unused sbflush() Marc-André Lureau
2018-11-14 14:05   ` Daniel P. Berrangé
2018-11-20  1:28     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 33/41] slirp: replace qemu_notify_event() with a callback Marc-André Lureau
2018-11-20  1:32   ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 34/41] slirp: remove #if notdef dead code Marc-André Lureau
2018-11-14 14:07   ` Daniel P. Berrangé
2018-11-20  1:28     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 35/41] slirp: NULL is defined by glib (at least) Marc-André Lureau
2018-11-14 14:11   ` Daniel P. Berrangé
2018-11-20  1:33     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 36/41] slirp: remove dead TCP_ACK_HACK code Marc-André Lureau
2018-11-14 14:12   ` Daniel P. Berrangé
2018-11-20  1:34     ` Samuel Thibault
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 37/41] slirp: replace ARRAY_SIZE with G_N_ELEMENTS Marc-André Lureau
2018-11-14 13:17   ` Philippe Mathieu-Daudé
2018-11-20  1:35     ` Samuel Thibault
2018-11-14 14:15   ` Daniel P. Berrangé
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 38/41] net: do not depend on slirp internals Marc-André Lureau
2018-11-14 13:21   ` Philippe Mathieu-Daudé
2018-11-20  1:37     ` Samuel Thibault
2018-11-15 13:19   ` Paolo Bonzini
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 39/41] slirp: move QEMU state saving to a separate unit Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 40/41] slirp: replace remaining QEMU dependency Marc-André Lureau
2018-11-14 12:36 ` [Qemu-devel] [PATCH for-3.2 41/41] build-sys: add a basic meson build Marc-André Lureau
2018-11-14 12:59 ` [Qemu-devel] [PATCH for-3.2 00/41] RFC: slirp: make it again a standalone project Markus Armbruster
2018-11-14 13:20   ` Richard W.M. Jones
2018-11-14 13:33   ` Thomas Huth
2018-11-14 14:46     ` Markus Armbruster
2018-11-14 15:10       ` Dr. David Alan Gilbert
2018-11-14 15:14       ` Richard W.M. Jones
2018-11-14 16:52       ` Thomas Huth
2018-11-14 17:51         ` Markus Armbruster
2018-11-14 18:14           ` Dr. David Alan Gilbert
2018-11-14 13:45 ` Daniel P. Berrangé
2018-11-15 16:49   ` Giuseppe Scrivano
2018-11-16  5:09     ` Akihiro Suda
2018-11-14 14:26 ` Stefan Hajnoczi
2018-11-14 14:30   ` Daniel P. Berrangé
2018-11-14 15:26     ` Philippe Mathieu-Daudé

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