From nobody Wed Aug 23 06:42:54 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 4RVxVl2dX7z4rBDY; Wed, 23 Aug 2023 06:43:11 +0000 (UTC) (envelope-from marietto2008@gmail.com) Received: from mail-ej1-x633.google.com (mail-ej1-x633.google.com [IPv6:2a00:1450:4864:20::633]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RVxVj6tCkz4QT6; Wed, 23 Aug 2023 06:43:09 +0000 (UTC) (envelope-from marietto2008@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20221208 header.b=irRcf5OU; spf=pass (mx1.freebsd.org: domain of marietto2008@gmail.com designates 2a00:1450:4864:20::633 as permitted sender) smtp.mailfrom=marietto2008@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-99bf8e5ab39so713377466b.2; Tue, 22 Aug 2023 23:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692772987; x=1693377787; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=ngHlPvv2PNDcZSh6tvccG+xf2iApyr5ltXlkCLoPOA4=; b=irRcf5OUNFk+k4CxdXbKUckRtJGMnxAavc8lB4ad2n2iBrlflfis6Ej/+Li/EYQTus dNWsr5qbD7Rv8sHmiEPBcH0Ezsh8/zkUEbrhSos/bifA0G21F+qxeRjStJOG4kO7tcb4 M+yy72NbgcxCSEDr6KTpwYGrj/XbyYSzPB/bcjLRQ75JiLACEC3j9gPt9lSQJYbf9e3J lc6q/mlLlCmoft3AyoK4dOilaNQ0SpxjILjqjXXAkAn3OH24cb52kOPeYkz4R4UNNWkO Fam6lTIBUlidNjlsFccebvwC9b0V1iBqfucQEi7o+fwexCI6Qp6jbY1L8TFlEc2Dg+m+ Qyzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692772987; x=1693377787; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ngHlPvv2PNDcZSh6tvccG+xf2iApyr5ltXlkCLoPOA4=; b=VQJhzqB2QFj2P8IoF8yWnHzQHURBC/Op1C2DE1/qPs9tbv1/EHTnZ8kEqjBkjHiANa Ryewu26KB8EsxxfPWQMJAKrGDUgzwbP6Swcs6JKUDX0e9YkXCOFxVjkrpZ1MYEg5zvJp a7n2DdU9IkUfSdleviVr8kLtdNxZGzuz5NPNe5gOArM9uv1DgvlVXXEILrfQVl8Y6wKQ IuQ/NanhZTs5vsqrcVqHfC1PMeCUxkOK70RZHhz71N4SNoCiNoCPyH0RzmTUOPCp97wN BBZ7xcVMQGpTOTdprAowwJ7zEn+KGFEneyMfJ3kO9/MDK9NbmofF3nx5s+4s5xRrzlPy zdug== X-Gm-Message-State: AOJu0YwfRwedNZ7h4eWMPIiY7sFlqCY0hQDbsMFildcJaxUdBvTuQlru 0kIkG/z/8m1rsMb+StxXSDpkwbUIba5pDf2U+zMudjJO3l3X8g== X-Google-Smtp-Source: AGHT+IEeTONLlJVFaprnYgbv1GUVr11ANITKpg6MjCjKA/B63aewJR5YjM+CZLDZzo0AfizmSJVZf6pzIhd8rTGEIec= X-Received: by 2002:a17:906:3003:b0:99b:e464:bf49 with SMTP id 3-20020a170906300300b0099be464bf49mr9565844ejz.51.1692772986788; Tue, 22 Aug 2023 23:43:06 -0700 (PDT) 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 References: <20230822173454.458DB237@slippy.cwsent.com> In-Reply-To: From: Mario Marietto Date: Wed, 23 Aug 2023 08:42:54 +0200 Message-ID: Subject: Re: Building a Linuxulator userland from source To: ports , emulation@freebsd.org Content-Type: multipart/alternative; boundary="000000000000901dd30603916c50" X-Spamd-Result: default: False [-3.86 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.86)[-0.856]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20221208]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_COUNT_ONE(0.00)[1]; MLMMJ_DEST(0.00)[ports@freebsd.org,emulation@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; ARC_NA(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; RCPT_COUNT_TWO(0.00)[2]; TO_DN_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::633:from]; FREEMAIL_FROM(0.00)[gmail.com]; MID_RHS_MATCH_FROMTLD(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] X-Spamd-Bar: --- X-Rspamd-Queue-Id: 4RVxVj6tCkz4QT6 --000000000000901dd30603916c50 Content-Type: text/plain; charset="UTF-8" It would be nice to try that tool that can hack / convert ./ add another layer (another linux distro inside the first one. I dont remember the name now. Il mer 23 ago 2023, 08:21 Felix Palmen ha scritto: > * Cy Schubert [20230822 10:34]: > > Basically this would become another Linux distro, albeit a virtual one > > that runs under our Linuxulator. > > And also a pretty minimal one. Right now, I'm just building a truly > minimal userland (the GNU toolchain, openssl, GNU make/grep/sed/awk, GNU > coreutils and man-db) and working on putting together some sane USES for > that. > > > Avoiding discussion about packaging -- we can package this any way we > > wish -- how will this support software written for distro A, B, or C. > > For example, Red Hat software doesn't neccesarily run on SuSE or > > Ubuntu because shared library dependencies may be different. > > > > Building our own "distro" to run under the Linuxulator may require a > > complete set of packages and end-user applications because existing > > Linux software may require a Fedora, Debian or Red Hat library. > > Wouldn't this negate the need for a Linuxulator because a person can > > build most Linux software to run on native FreeBSD. > > Well first, when I ask why "Linuxulator" is needed, the answer in my > head is: Mostly for closed-source Linux software. Because exactly as you > say, anything else should better be ported and built to run natively on > FreeBSD, if possible. > > Now, maybe I'm looking at the wrong software? In my experience with > closed-source Linux Software, sure, it *might* offer > distribution-specific packages, but almost always offers a plain binary > tarball as well. The latter could easily be used to create a port (like > was done in the past as well in our tree), and then it's just a question > of adding ports for the (hopefully few) shared libraries needed by this > software. > > > I think a better path might be to support multiple Linux userlands in > > parallel. Thus a user could simply copy or install vendor software for > > a Red Hat in one environment and a SuSE vendor software in another. > > This would be the consequence if you really want to support > distribution-specific software packages. I don't think it's feasible in > practice, at least it would make it very hard to still have ports of > Linux software (like my makemkv port), these would need to build and run > with any of these userlands. > > To challenge my source-based approach, I'm looking for "proof of > concept" closed-source software to try get running with it, I'll > probably start with makemkv because I already maintain that port. Open > to suggestions what else to test there. In the end, getting to run e.g. > Google Chrome would be perfect, but I imagine this requires creating a > lot of ports for shared libs first. > > Cheers, Felix > > -- > 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 > --000000000000901dd30603916c50 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
It would be nice to try that tool that can hack / convert= ./ add another layer (another linux distro inside the first one. I dont re= member the name now.

Il mer 23 ago 2023, 08:21 Felix Palmen <zirias@freebsd.org> ha scritto:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">* Cy Schubert <Cy.Schubert@cschuber= t.com> [20230822 10:34]:
> Basically this would become another Linux distro, albeit a virtual one=
> that runs under our Linuxulator.

And also a pretty minimal one. Right now, I'm just building a truly
minimal userland (the GNU toolchain, openssl, GNU make/grep/sed/awk, GNU coreutils and man-db) and working on putting together some sane USES for that.

> Avoiding discussion about packaging -- we can package this any way we<= br> > wish -- how will this support software written for distro A, B, or C.<= br> > For example, Red Hat software doesn't neccesarily run on SuSE or > Ubuntu because shared library dependencies may be different.
>
> Building our own "distro" to run under the Linuxulator may r= equire a
> complete set of packages and end-user applications because existing > Linux software may require a Fedora, Debian or Red Hat library.
> Wouldn't this negate the need for a Linuxulator because a person c= an
> build most Linux software to run on native FreeBSD.

Well first, when I ask why "Linuxulator" is needed, the answer in= my
head is: Mostly for closed-source Linux software. Because exactly as you say, anything else should better be ported and built to run natively on
FreeBSD, if possible.

Now, maybe I'm looking at the wrong software? In my experience with
closed-source Linux Software, sure, it *might* offer
distribution-specific packages, but almost always offers a plain binary
tarball as well. The latter could easily be used to create a port (like
was done in the past as well in our tree), and then it's just a questio= n
of adding ports for the (hopefully few) shared libraries needed by this
software.

> I think a better path might be to support multiple Linux userlands in<= br> > parallel. Thus a user could simply copy or install vendor software for=
> a Red Hat in one environment and a SuSE vendor software in another.
This would be the consequence if you really want to support
distribution-specific software packages. I don't think it's feasibl= e in
practice, at least it would make it very hard to still have ports of
Linux software (like my makemkv port), these would need to build and run with any of these userlands.

To challenge my source-based approach, I'm looking for "proof of concept" closed-source software to try get running with it, I'll probably start with makemkv because I already maintain that port. Open
to suggestions what else to test there. In the end, getting to run e.g.
Google Chrome would be perfect, but I imagine this requires creating a
lot of ports for shared libs first.

Cheers, Felix

--
=C2=A0Felix Palmen <zirias@FreeBSD.org>=C2=A0 =C2=A0 =C2=A0{private}= =C2=A0 =C2=A0felix@palmen-it.de
=C2=A0-- ports committer --=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0{web}=C2=A0 http://palmen-it.de
=C2=A0{pgp public key}=C2=A0 http://palmen-it.de/pub.txt =C2=A0{pgp fingerprint} 6936 13D5 5BBF 4837 B212=C2=A0 3ACC 54AD E006 9879 = F231
--000000000000901dd30603916c50--