Page MenuHomeFreeBSD

emulators/qemu: Enable user networking by default
Needs RevisionPublic

Authored by adrian on Dec 26 2020, 10:58 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Apr 21, 7:33 PM
Unknown Object (File)
Mar 8 2024, 11:35 AM
Unknown Object (File)
Feb 3 2024, 10:53 PM
Unknown Object (File)
Jan 22 2024, 1:30 AM
Unknown Object (File)
Jan 17 2024, 6:01 PM
Unknown Object (File)
Jan 10 2024, 7:50 PM
Unknown Object (File)
Dec 9 2023, 11:47 PM
Unknown Object (File)
Nov 22 2023, 3:56 PM
Subscribers

Details

Reviewers
bofh
koobs
Summary
emulators/qemu: Enable user networking by default

The current build system doesn't build slirp/user networking
by default, but a LOT of guides on the internet to get started
with qemu uses it.

This modifies the configure script to add a new option to
explicitly enable it.

Reviewed_by: koobs (ports)
Approved by: ???
Differential_Revision: D27778
MFH: <branch|no> <reason>
Test Plan
  • portlint: ?? (<summary output)
  • testport: ?? (poudriere: <versions>, <archs> tested)

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 35699
Build 32588: arc lint + arc unit

Event Timeline

koobs retitled this revision from [qemu] add user networking by default to emulators/qemu: Enable user networking by default.Dec 27 2020, 2:03 AM
koobs edited the summary of this revision. (Show Details)
koobs edited the test plan for this revision. (Show Details)
koobs added a reviewer: koobs.

@adrian Can you confirm QA passes (portlint/poudriere, filling out TEST PLAN section) and add MFH: value <branch|no> <reason> in commit log message

koobs edited the summary of this revision. (Show Details)EditedDec 27 2020, 2:05 AM

Also Question: do any of the other qemu-* ports need to have this change made too, or do they all inherit/child port off the main one (I haven't looked)

For future reference sake: Ports compliance/recommendations require ports to 'unbundle' any bundled libraries (in this case slirp) except in cases where that is creates an unnecessary or inappropriate support or maintenance burden (such as go / node modules). We'll land this change in the short term until a slirp port can be produced

emulators/qemu/files/patch-configure
30–31

Probably best to set =internal in CONFIGURE_ARGS (so its explicitly defined/set in Makefile), rather than here, unless upstreams configure is missing a default and this is going to go upstream?

Also Question: do any of the other qemu-* ports need to have this change made too, or do they all inherit/child port off the main one (I haven't looked)

All qemu-* ports needs to be updated.

koobs requested changes to this revision.Dec 28 2020, 9:15 AM
This revision now requires changes to proceed.Dec 28 2020, 9:15 AM

hi!

In D27778#620891, @bofh wrote:

Also Question: do any of the other qemu-* ports need to have this change made too, or do they all inherit/child port off the main one (I haven't looked)

All qemu-* ports needs to be updated.

Can I just try to land this one first, and worry about the others later? I'd at least like to see a working qemu port with user networking available for other freebsd users to test with.

emulators/qemu/files/patch-configure
30–31

I'm not sure what to send upstream yet; so I'm just making --enable-slirp do a default thing. Otherwise I also have to add a bunch of other sanity checking :-)

Portlint output:

adrian@gertrude:~/work/freebsd/ports/head/emulators/qemu % env PORTSDIR=/home/adrian/work/freebsd/ports/head portlint
WARN: Makefile: [75]: NOPORTDOCS found. Consider using PORT_OPTIONS:MDOCS.
WARN: Makefile: Consider adding support for a NLS knob to conditionally disable gettext support.
WARN: Makefile: unless this is a master port, MAINTAINER has to be set by "=", not by "?=".
WARN: Makefile: unless this is a master port, COMMENT has to be set by "=", not by "?=".
WARN: Makefile: you may want directory for dependency sphinx-build to be textproc/py-sphinx@${PY_FLAVOR}
WARN: Makefile: "ONLY_FOR_ARCHS" has to appear earlier.
WARN: Makefile: "USES" has to appear earlier.
0 fatal errors and 7 warnings found.

hi!

In D27778#620891, @bofh wrote:

Also Question: do any of the other qemu-* ports need to have this change made too, or do they all inherit/child port off the main one (I haven't looked)

All qemu-* ports needs to be updated.

Can I just try to land this one first, and worry about the others later? I'd at least like to see a working qemu port with user networking available for other freebsd users to test with.

Sure, let's just follow this changeset up in a timely manner so all ports are consistent

Re PORTLINT output, these ones at least should be addressed:

WARN: Makefile: you may want directory for dependency sphinx-build to be textproc/py-sphinx@${PY_FLAVOR}
WARN: Makefile: "ONLY_FOR_ARCHS" has to appear earlier.
WARN: Makefile: "USES" has to appear earlier.

Does poudriere testport pass?

hi!

In D27778#620891, @bofh wrote:

Also Question: do any of the other qemu-* ports need to have this change made too, or do they all inherit/child port off the main one (I haven't looked)

All qemu-* ports needs to be updated.

Can I just try to land this one first, and worry about the others later? I'd at least like to see a working qemu port with user networking available for other freebsd users to test with.

Sure, let's just follow this changeset up in a timely manner so all ports are consistent

Re PORTLINT output, these ones at least should be addressed:

WARN: Makefile: you may want directory for dependency sphinx-build to be textproc/py-sphinx@${PY_FLAVOR}
WARN: Makefile: "ONLY_FOR_ARCHS" has to appear earlier.
WARN: Makefile: "USES" has to appear earlier.

Shouldn't that be done via another commit? I'm not trying to take ownership of the port, I'm just trying to fix a glaringly missing feature. :-)

Does poudriere testport pass?

I dunno! I don't have a full poudriere setup here! I build them one at a time.

In the absence of poudriere (one should set it up), you can run the set of commands outlined here:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-testing.html

The delta between this set of commands and poudriere is the isolation of the build environment from the local system (which can pickup several additional classes of issues)