qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-3.2 00/41] RFC: slirp: make it again a stand


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH for-3.2 00/41] RFC: slirp: make it again a standalone project
Date: Wed, 14 Nov 2018 15:46:39 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Thomas Huth <address@hidden> writes:

> On 2018-11-14 13:59, Markus Armbruster wrote:
>> Marc-André Lureau <address@hidden> writes:
>> 
>>> 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?
>> 
>> Has the slirp code been improved to be generally useful?  I still got it
>> filed under "friends don't let friends use that, except for testing"...
>
> The slirp code is already used in a lot of other projects:

The issue I have with SLIRP isn't that it solves a useless problem (au
contraire!), it's that it's a useless solution.  Okay, that's an unfair
exaggeration, it's not useless, I just wouldn't trust it in production,
unless it has improved significantly since I last looked at it.

> - WinUAE
>   (https://github.com/tonioni/WinUAE/tree/master/slirp)
>
> - Previous
>   (https://sourceforge.net/p/previous/code/HEAD/tree/trunk/src/slirp/)
>
> - BasiliskII
>   (https://github.com/cebix/macemu/tree/master/BasiliskII/src/slirp)
>
> - Bochs
>
> (https://sourceforge.net/p/bochs/code/HEAD/tree/trunk/bochs/iodev/network/slirp/)
>
> ... and likely many more. AFAIK they all (or at least most) have been
> forked from the QEMU code at one point in time and diverged, i.e. they
> likely missed the bug fixes and new features that have been added in
> QEMU (like IPv6). So yes, IMHO it makes a lot of sense to try to make a
> separate library out of the slirp code again, especially if we could
> convince the other projects to use it, too, and to collaborate on that
> version.

No objections to spinning it out, as long as it comes with a fair
assessment of its limitations.

Turning it into a proper project might even improve its chances to
get improved towards production quality, compared to its current
existence as a corner of QEMU next to nobody wants to touch.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]