From nobody Fri Sep 01 17:11:58 2023 X-Original-To: emulation@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Rcl2y2Wxzz4rnmk; Fri, 1 Sep 2023 17:12:42 +0000 (UTC) (envelope-from Alexander@Leidinger.net) Received: from mailgate.Leidinger.net (mailgate.leidinger.net [IPv6:2a00:1828:2000:313::1:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (P-256) client-digest SHA256) (Client CN "mailgate.leidinger.net", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rcl2x3VYrz3ZlJ; Fri, 1 Sep 2023 17:12:41 +0000 (UTC) (envelope-from Alexander@Leidinger.net) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=leidinger.net header.s=outgoing-alex header.b=HjO8aU79; spf=pass (mx1.freebsd.org: domain of Alexander@Leidinger.net designates 2a00:1828:2000:313::1:5 as permitted sender) smtp.mailfrom=Alexander@Leidinger.net; dmarc=pass (policy=quarantine) header.from=leidinger.net Received: from webmail2.leidinger.net (roundcube.Leidinger.net [192.168.1.123]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: Alexander@Leidinger.net) by outgoing.leidinger.net (Postfix) with ESMTPSA id DD27EC156; Fri, 1 Sep 2023 19:11:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leidinger.net; s=outgoing-alex; t=1693588351; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yYDXlua3XSM7UoVU29wGagwcf9i2+mN1IeeB/uDVkz4=; b=HjO8aU79YoDaIh1q9kL1yXp4mVJbou0YuO5Drbj3twLr89x1O43XZeTN/1SM5YExgIeCPP NdrdMMR/KsPNkdu5/KvfPdnfenzEnFOE5T0NdZePxfIQr2FfaXmWX3EsUsLS7smjSSGh3G DbyLOPRt5ZSkb/QAiTysmo805rt9Dd4oCb9taijrGzW7FccSvihi5DXK7G7IkUbcF3bHU3 jNsEIjqX/f8kZa7COBYk2SZtCRpFIEo02EszwwZh6dweMKdsDXiET2MYGIkMm26gdApOZY 9MxtpBtBV2u+3mo3He+GQsG9zVMpPh5HVEVfOD5irWaSAaTOS2wle4Y5zdBDCw== List-Id: Development of Emulators of other operating systems List-Archive: https://lists.freebsd.org/archives/freebsd-emulation List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-emulation@freebsd.org MIME-Version: 1.0 Date: Fri, 01 Sep 2023 19:11:58 +0200 From: Alexander Leidinger To: ports@freebsd.org, emulation@freebsd.org Subject: Re: Building a Linuxulator userland from source In-Reply-To: References: Message-ID: <03b7f828f3fbc3c203fc885baf6b9db1@Leidinger.net> X-Sender: Alexander@Leidinger.net Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: --- X-Spamd-Result: default: False [-4.00 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[leidinger.net,quarantine]; R_SPF_ALLOW(-0.20)[+mx]; R_DKIM_ALLOW(-0.20)[leidinger.net:s=outgoing-alex]; MIME_GOOD(-0.10)[text/plain]; MLMMJ_DEST(0.00)[emulation@freebsd.org,ports@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:34240, ipnet:2a00:1828::/32, country:DE]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; DKIM_TRACE(0.00)[leidinger.net:+]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; FROM_HAS_DN(0.00)[]; TO_DN_NONE(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Queue-Id: 4Rcl2x3VYrz3ZlJ Am 2023-09-01 16:55, schrieb Felix Palmen: > * Felix Palmen [20230820 12:35]: >> Just a little update on this [...] > > Posting yet another status update because I'm about to reach a > "milestone": I just had the first successful build of ffmpeg. I focused > on ffmpeg because that's a requirement for MakeMKV which I now intend > to > use as a first PoC for the new userland. Before proceeding there, doing > test builds now on all supported architectures and FreeBSD versions, so > I'll have to wait quite a while ;) > > The new Linux ffmpeg port has almost everything enabled that's in the > default options of the FreeBSD ffmpeg port. I just left out very few > things that seemed *too* complex right now, like e.g. Vulkan. > > To get there, I created a total of 150 ports now. Still, test-building > this ffmpeg "only" wants to build 124 ports, probably because of Xorg > libraries, once I noticed I need them, I created ports for *all* of > them. > > A selection of what I added: > > * Languages: TCL, Python, Perl > * Build systems: autoreconf, cmake, meson, ninja (all usable with their > standard USES, my new USES adjusts what's needed to do Linux builds) > * Lots of "codec" libs: lame, opus, ogg/vorbis, vpx, x264, x265, ... > * Infrastructure libs like libdrm, libglvnd, alsa, v4l, ... Infrastructure ports are what we provide in the linux base ports. So I'm not surprised... :) > A first takeaway could be that indeed, this will be kind of yet another > Linux distribution, as mentioned in sceptical responses so far. I still > hope it will be possible to limit the scope, we'd only need ports > providing shared libraries that (closed-source or otherwise not > portable) Linux software would need to run in Linuxulator. That said, > there's probably still a lot missing, like e.g mesa-dri (for games and > similar), gtk3/gtk4/qt5 (for GUI apps that aren't statically linked), > and so on. Are you already taking into account the fall-through of config files to FreeBSD native config files? This is the main difference between a linux distribution (linux_dist ports) and a linux base for FreeBSD. Another difference may be to only compile the libs instead of the binaries (e.g. the linux libmp3lame.so would be needed by software, but the FreeBSD lame executable could be used). > There were almost no surprising build issues so far (so, I guess > accidentally pulling in things from FreeBSD base really isn't a thing, > at least not when building in poudriere), except for one: It seems a > "relative" rpath (using $ORIGIN) doesn't work. To work around this with > one port using that during build, I had to add some explicit > LD_LIBRARY_PATH. Only for the build, or also for running/executing afterwards? Bye, Alexander. -- http://www.Leidinger.net Alexander@Leidinger.net: PGP 0x8F31830F9F2772BF http://www.FreeBSD.org netchild@FreeBSD.org : PGP 0x8F31830F9F2772BF