Date: Sat, 25 Jan 2025 11:53:50 -0700 From: Warner Losh <imp@bsdimp.com> To: Florian Walpen <dev@submerge.ch>, freebsd-current@freebsd.org, Gleb Smirnoff <glebius@freebsd.org>, bob prohaska <fbsd@www.zefox.net>, Warner Losh <imp@bsdimp.com> Subject: Re: /usr/src and /usr/ports not git directories ? Message-ID: <CANCZdfrdjeYRWUuWgMLjK-rp3Nv=4mk-4CMrAecfRv_WjNC0Vw@mail.gmail.com> In-Reply-To: <20250125175049.N9cIkQ__@steffen%sdaoden.eu> References: <Z4vk3009iSwuzG4K@www.zefox.net> <Z5GgSiETH9rwsMT6@cell.glebi.us> <8355934.G18vQ0XA4d@z240> <4081188.p4y8TspHLy@z240> <20250125175049.N9cIkQ__@steffen%sdaoden.eu>
next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000d37408062c8c5ddc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Jan 25, 2025 at 10:50=E2=80=AFAM Steffen Nurpmeso <steffen@sdaoden.= eu> wrote: > Florian Walpen wrote in > <4081188.p4y8TspHLy@z240>: > |On Thursday, January 23, 2025 4:38:16 AM CET Florian Walpen wrote: > |> Installing the src tree as a non-git snapshot is useless for > developers \ > |> and > |> people that update through src builds, I agree with that. My take is > that > |> installing the src tree is optional, giving a hint in the installer \ > |> should > |> be enough. There will be secondary steps anyway in this scenario, lik= e > |> installing the git executable and updating the src tree. As stated, w= e > |> could simplify the post-install repo cloning through a Makefile. > | > |FWIW, I found the /usr/Makefile that is part of DragonflyBSD here: > > I *thought* the thing is also data reduction, you know. > > As in, if the source directory is simply tarballed, you have the > full size but no git repository; if you want to update, you need > to download the full new ball, even if the actual changes are only > a few megabyte or so. (Or bsdiff(1)ed, but no such iirc.) > > If you have the git directory that it is, "fully" garbage > collected, then this increases the size, but you can then simply > update, merge --ff-only. But this is a large tarball. > > If you ship only the .git repository *without* a checkout, with > a depth of 1, you get almost the same size as with the normal > only-sources tarball, but you can use git to update very easily, > with minimal bandwidth, you can use git to populate the complete > history, etc. > However, you need git to perform the initial checkout of the > sources. git is large and git is not BSD/etc licensed. > Thus: if you would have a minimal program that fetches the blob > content out of a shallow, garbage-collected git clone, you have > all the advantages, but none of the disadvantages. > Problem is there is no such program. > pkg add git isn't terrible. pkg add got is even smaller and should work, but I've not double checked. Since moving to git, git has become 'table stakes' to do things with the system. While we don't go out of our way to make 'got' not work for simple things, we don't test it that often either. got has a happy license, but an incompatible CLI and it's quite a bit less capable than git, despite it's better license. Including it in base has a lot of issues beyond the git import (how much of our git instructions do we update to include it in our docs, for example). So it's possible to extract things w/o GPL'd code, it would be very much a niche thing for the relatively few people that care. Everybody else would take 'the paved path' of git and not give it a second thought. I think the projects limited resources would be best spent by doing this and allowing the purists to be able to do it if they wanted, while not saddling everybody else with a tool they aren't familiar with. In a world where we have infinite resources, we could do the training and education needed for got, but pragmatically, I think got or any other git-alternative path is too much of a hassle for too many people to be a viable option any time soon. Warner > --steffen > | > |Der Kragenbaer, The moon bear, > |der holt sich munter he cheerfully and one by one > |einen nach dem anderen runter wa.ks himself off > |(By Robert Gernhardt) > | > |In Fall and Winter, feel "The Dropbear Bard"s pint(er). > | > |The banded bear > |without a care, > |Banged on himself for e'er and e'er > | > |Farewell, dear collar bear > --000000000000d37408062c8c5ddc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g= mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, Jan 25,= 2025 at 10:50=E2=80=AFAM Steffen Nurpmeso <<a href=3D"mailto:steffen@sd= aoden.eu">steffen@sdaoden.eu</a>> wrote:<br></div><blockquote class=3D"g= mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204= ,204,204);padding-left:1ex">Florian Walpen wrote in<br> =C2=A0<4081188.p4y8TspHLy@z240>:<br> =C2=A0|On Thursday, January 23, 2025 4:38:16 AM CET Florian Walpen wrote:<b= r> =C2=A0|> Installing the src tree as a non-git snapshot is useless for de= velopers \<br> =C2=A0|> and<br> =C2=A0|> people that update through src builds, I agree with that. My ta= ke is that<br> =C2=A0|> installing the src tree is optional, giving a hint in the insta= ller \<br> =C2=A0|> should<br> =C2=A0|> be enough. There will be secondary steps anyway in this scenari= o, like<br> =C2=A0|> installing the git executable and updating the src tree. As sta= ted, we<br> =C2=A0|> could simplify the post-install repo cloning through a Makefile= .<br> =C2=A0|<br> =C2=A0|FWIW, I found the /usr/Makefile that is part of DragonflyBSD here:<b= r> <br> I *thought* the thing is also data reduction, you know.<br> <br> As in, if the source directory is simply tarballed, you have the<br> full size but no git repository; if you want to update, you need<br> to download the full new ball, even if the actual changes are only<br> a few megabyte or so.=C2=A0 (Or bsdiff(1)ed, but no such iirc.)<br> <br> If you have the git directory that it is, "fully" garbage<br> collected, then this increases the size, but you can then simply<br> update, merge --ff-only.=C2=A0 But this is a large tarball.<br> <br> If you ship only the .git repository *without* a checkout, with<br> a depth of 1, you get almost the same size as with the normal<br> only-sources tarball, but you can use git to update very easily,<br> with minimal bandwidth, you can use git to populate the complete<br> history, etc.<br> However, you need git to perform the initial checkout of the<br> sources.=C2=A0 git is large and git is not BSD/etc licensed.<br> Thus: if you would have a minimal program that fetches the blob<br> content out of a shallow, garbage-collected git clone, you have<br> all the advantages, but none of the disadvantages.<br> Problem is there is no such program.<br></blockquote><div><br></div><div>pk= g add git isn't terrible. pkg add got is even smaller and should</div><= div>work, but I've not double checked.</div><div><br></div><div>Since m= oving to git, git has become 'table stakes' to do things</div><div>= with the system. While we don't go out of our way to make 'got'= not</div><div>work for simple things, we don't test it that often eith= er. got has</div><div>a happy license, but an incompatible CLI and it's= quite a bit less</div><div>capable than git, despite it's better licen= se. Including it in base has</div><div>a lot of issues beyond the git impor= t (how much of our git instructions</div><div>do we update to include it in= our docs, for example).</div><div><br></div><div>So it's possible to e= xtract things w/o GPL'd code, it would be very</div><div>much a niche t= hing for the relatively few people that care. Everybody</div><div>else woul= d take 'the paved path' of git and not give it a second thought.</d= iv><div>I think the projects limited resources would be best spent by doing= this</div><div>and allowing the purists to be able to do it if they wanted= , while not</div><div>saddling everybody else with a tool they aren't f= amiliar with. In a world</div><div>where we have infinite resources, we cou= ld do the training and education</div><div>needed for got, but pragmaticall= y, I think got or any other git-alternative</div><div>path is too much of a= hassle for too many people to be a viable option</div><div>any time soon.<= /div><div><br></div><div>Warner</div><div>=C2=A0</div><blockquote class=3D"= gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20= 4,204,204);padding-left:1ex"> --steffen<br> |<br> |Der Kragenbaer,=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 The= moon bear,<br> |der holt sich munter=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0he cheerfully= and one by one<br> |einen nach dem anderen runter=C2=A0 wa.ks himself off<br> |(By Robert Gernhardt)<br> |<br> |In Fall and Winter, feel "The Dropbear Bard"s pint(er).<br> |<br> |The banded bear<br> |without a care,<br> |Banged on himself for e'er and e'er<br> |<br> |Farewell, dear collar bear<br> </blockquote></div></div> --000000000000d37408062c8c5ddc--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfrdjeYRWUuWgMLjK-rp3Nv=4mk-4CMrAecfRv_WjNC0Vw>