From nobody Sun Aug 20 10:35:41 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 4RTBpX2WtHz4r3Nr; Sun, 20 Aug 2023 10:35:48 +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 4RTBpV41shz3Tj0; Sun, 20 Aug 2023 10:35:46 +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=qHe7jWts; 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=gqV8oA0pGA62h3H5eYeiAaDN/xuKhzMVccgcQMB6DO0=; b=qHe7jWtsDjYYN3K8XoYSslYF/r PMNGtpENsa+Ce/irEy5WBc9rPNzkb2HSLoaPkvBIPKsA9yd395ES69IRi/oR3Jj/5RH/hl/xxRF9W ep5x7zbUFQF6o+Gz3c4h9KYkOPVI4xi6c4WvnCzvQL6uI3ajxxTKnxbFM01tjs2yImhhj0c4EFp8H q/74m5XzrvvnV/KCS0H8hGk88q5fJZo9OtPvgAAdyGR4rv2EkJzx1AiKFNMy2KrhfViUjEFOmxB1O VOCNmGhfzjNohKVfjPOXU8XIFN0kTMVlYnDTjNUpLIHL0qQXNa1XeBvMdXGYvjzlx4DNFXxvxQR2/ 5I9xLBlQ==; 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 1qXfmX-00ACGW-Q0; Sun, 20 Aug 2023 12:35:41 +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 1qXfmX-000Kw5-1c; Sun, 20 Aug 2023 10:35:41 +0000 Date: Sun, 20 Aug 2023 12:35:41 +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="tbpcagcbr4fpg652" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20230517 X-Spamd-Result: default: False [-7.49 / 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.99)[-0.992]; 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-Spamd-Bar: ------- X-Rspamd-Queue-Id: 4RTBpV41shz3Tj0 --tbpcagcbr4fpg652 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Felix Palmen [20230818 08:23]: > I just reached a state where I can build a working Linux-native GNU > toolchain (binutils, glibc, gcc) for C and C++ on aarch64, amd64 and > i386. From here on, it should be simpler, there are already two ports in > my branch (archivers/linux-bzip2 and archivers/linux-xz) using that > native toolchain for building. Just a little update on this, I *did* start building some "base" userland now. What seems to work so far is GNU bash and coreutils, including quite some libs used (gmp, acl, attr, libcap, openssl, ncurses, readline). I already had two metaports in my branch, linux_base-dirs (which will just create and own the absolute minimum directory structure in ${LINUXBASE}) and linux-toolchain (which pulls in everything needed to compile C and C++). Now, I added a third metaport: "linux_base". This is incomplete of course, it's where I want to collect all the bits and pieces for a "base" Linuxulator userland as RUN_DEPENDS. If anyone would like to already do some testing at this stage, please be aware that I not only rebase my feature branch, but also rewrite it while rebasing (to fix issues I encounter), and of course there won't be any PORTREVISION bumps. Therefore, the safest thing to do is to remove all linux*.pkg files from your poudriere repositories before trying a newer version of the branch. The lxcross*.pkg packages can probably be kept, I don't expect having to fix anything there. Finally, I managed to sort out at least one of the open issues: > - Building the final linux-gcc ports, I get weird error messages > directly to poudriere's terminal (they do NOT appear in the build > log!) like this: > ELF interpreter /usr/lib/ld-linux.so.2 not found, error 2 > I have no idea where this comes from, so far I couldn't identify any > negative effect though. I still don't know how/why it happened, but I now did what most Linux distributions seem to do nowadays ... add symlinks in linux_base-dirs: | /bin -> usr/bin | /sbin -> usr/sbin | /lib -> usr/lib | /lib64 -> usr/lib64 There's just some "convincing" needed for glibc to install *all* files below /usr, but all other packages now seem to "just work". So I assume it's the only sane approach packaging some GNU/Linux userland. It certainly makes sure the program interpreter is now also found below /usr. 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 --tbpcagcbr4fpg652 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iNUEABYKAH0WIQRpNhPVW79IN7ISOsxUreAGmHnyMQUCZOHsdF8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0Njkz NjEzRDU1QkJGNDgzN0IyMTIzQUNDNTRBREUwMDY5ODc5RjIzMQAKCRBUreAGmHny MfqwAPwJ1TJ5nwTjX4f467kKF8c4XgxfY9mPcPCsAQyqBoNsJAD/XSC1LfiIPRdt df1iLihUp5NdQ0FLBhqKBxujW0n4dgs= =QQcc -----END PGP SIGNATURE----- --tbpcagcbr4fpg652--