From nobody Fri Sep 1 14:55:46 2023 X-Original-To: ports@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 4Rch146Mk7z4rN42; Fri, 1 Sep 2023 14:55:52 +0000 (UTC) (envelope-from felix@palmen-it.de) Received: from stef.palmen-it.de (stef.palmen-it.de [IPv6:2001:470:1f0b:bbb:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rch140Bm4z4bg7; Fri, 1 Sep 2023 14:55:52 +0000 (UTC) (envelope-from felix@palmen-it.de) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=palmen-it.de header.s=20200414 header.b=ihQatPev; spf=pass (mx1.freebsd.org: domain of felix@palmen-it.de designates 2001:470:1f0b:bbb:1::1 as permitted sender) smtp.mailfrom=felix@palmen-it.de; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=palmen-it.de; s=20200414; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:To:From:Date:Sender:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=PYwqyym9tEOYBfoNVr+r0B1HtS1yFRHUVGH5whaLhlQ=; b=ihQatPevPbZXux7sdE1kvngq3h PPNPO4rrFijaMEjmGDvLSeX/qTsjBgJDjtkjtgBsLiJvcj1qzGLXsMrh8tLgMkojoguder9i4rCZT sAzElgrVcJThhTkKd+PAVNj7jbzoMYXJP5XKcURlv00wos9MiM+3raYi4coU9a8PcE2YZ5sM1tAgh n0vUucjUtHbN1iLxp5wq6pa3Li+TKyRuG14f9t7tK7eT8lsGxY8ftwPtPkHcVU9KebSE6L3pMxe/X A+1Gc/d4xx+98aL3b+aWCHNxstwnBcoXYI58H2XCZLjqXV0+pcmdxUUIKT7CgBi3bOu+A8ntHFxHn d9AgTbsQ==; Received: from [192.168.71.101] (helo=mail.home.palmen-it.de) by stef.palmen-it.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qc5Yq-00BJNf-2R; Fri, 01 Sep 2023 16:55:48 +0200 Received: from nexus.home.palmen-it.de ([192.168.99.2]) by mail.home.palmen-it.de with esmtpsa (TLS1.3) tls TLS_CHACHA20_POLY1305_SHA256 (Exim 4.96 (FreeBSD)) (envelope-from ) id 1qc5Yp-0003nr-1e; Fri, 01 Sep 2023 14:55:47 +0000 Date: Fri, 1 Sep 2023 16:55:46 +0200 From: Felix Palmen To: ports@freebsd.org, emulation@freebsd.org Subject: Re: Building a Linuxulator userland from source Message-ID: Mail-Followup-To: ports@freebsd.org, emulation@freebsd.org X-Face: /1K@t"h.}e~pR@]c7HorQ!T`F^RJCa'BCr#e>IKA{>C/9OTGB4|xh"y2{?1Z5M i2w"AH^pN_LlHR^{+f',_Np~;.B;!M/bL}*qk]p5*r7F5vW};{:@4u5S?T&f0$7BJ-71Q5SV]:v$`5 A0[DZ:=?S52x8HJ~5@^P_\T@MsjG{R( Organization: FreeBSD.org References: List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="3va5lxz6bz3eknqi" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20230517 X-Spamd-Bar: ------- X-Spamd-Result: default: False [-7.46 / 15.00]; SIGNED_PGP(-2.00)[]; DWL_DNSWL_MED(-2.00)[palmen-it.de:dkim]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.96)[-0.959]; MID_RHS_NOT_FQDN(0.50)[]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; FORGED_SENDER(0.30)[zirias@freebsd.org,felix@palmen-it.de]; R_DKIM_ALLOW(-0.20)[palmen-it.de:s=20200414]; R_SPF_ALLOW(-0.20)[+ip6:2001:470:1f0b:bbb:1::1]; RCVD_IN_DNSWL_MED(-0.20)[2001:470:1f0b:bbb:1::1:from]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; FROM_HAS_DN(0.00)[]; DMARC_NA(0.00)[freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MLMMJ_DEST(0.00)[ports@freebsd.org,emulation@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_NEQ_ENVFROM(0.00)[zirias@freebsd.org,felix@palmen-it.de]; RCVD_COUNT_TWO(0.00)[2]; HAS_ORG_HEADER(0.00)[]; TO_DN_NONE(0.00)[]; ARC_NA(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+,1:+,2:~]; DKIM_TRACE(0.00)[palmen-it.de:+]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; RCVD_TLS_ALL(0.00)[] X-Rspamd-Queue-Id: 4Rch140Bm4z4bg7 --3va5lxz6bz3eknqi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * 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, ... 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. On the plus side, a lot of ports could be created by just copying the original port and doing adjustments, and most of the time, the result was simpler than the original (e.g. almost all patches could be dropped). I also removed all port options, still unsure whether they *might* make sense later, but for a first PoC, they just add unnecessary complexity. 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. Cheers, Felix --=20 Felix Palmen {private} felix@palmen-it.de -- ports committer -- {web} http://palmen-it.de {pgp public key} http://palmen-it.de/pub.txt {pgp fingerprint} 6936 13D5 5BBF 4837 B212 3ACC 54AD E006 9879 F231 --3va5lxz6bz3eknqi Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iNUEABYKAH0WIQRpNhPVW79IN7ISOsxUreAGmHnyMQUCZPH7Y18UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0Njkz NjEzRDU1QkJGNDgzN0IyMTIzQUNDNTRBREUwMDY5ODc5RjIzMQAKCRBUreAGmHny MTFaAP0W+CHxUWTa6j4LGsuHo5xSj6PS0uQhTX1OpVmvALRingEAmb0rSQ05++ig 1dF6SHKXGRRh1vqNKbxc3IclKGqCnQ0= =GOlO -----END PGP SIGNATURE----- --3va5lxz6bz3eknqi--