Date: Fri, 8 Sep 2017 16:35:36 -0700 From: Russell Haley <russ.haley@gmail.com> To: Russell Haley <russ.haley@gmail.com>, Freebsd-mono <freebsd-mono@freebsd.org> Subject: Re: Update on porting mono 5 Message-ID: <CABx9NuSWjxzztX1=GGgyUOW2JyBtGXeygasVGJhB%2Bmp2aO7OPw@mail.gmail.com> In-Reply-To: <20170908074135.GA76671@blogreen.org> References: <17078253.u2dgjZK1Z6@dragon.local> <1557586.GGzvBQ0jK6@dragon.local> <CABx9NuR6knOHfGEwZLvDZcTMn8e0TR5uscjh52DY1yq1-ujybQ@mail.gmail.com> <2223962.JDsoWRiPl4@dragon.local> <CABx9NuREWeJtXC6ykdBge%2BkYrFMaa028KtaKoCwZwjqO1VwneQ@mail.gmail.com> <20170908074135.GA76671@blogreen.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Sep 8, 2017 at 12:41 AM, Romain Tarti=C3=A8re <romain@freebsd.org> = wrote: > On Thu, Sep 07, 2017 at 05:36:17PM -0700, Russell Haley wrote: >> A subtle but important distinction. Also, are all items available in >> pkg built from source? If yes, does that mean pkg is a source or >> binary download? (kaboom! My head explodes). > > Unfortunately, some packages are not build from source. > > Let's recap, FreeBSD has a ports tree and also packages: > > - When installing through the ports tree, you build the software from > source. Any missing build or run dependency is also build from > source. The "ports tree" is basically a set of rules to build each > piece of software, and is made available by the FreeBSD project on > the internet; > - When you install using packages, you install binaries. Only missing > run-time dependencies are installed using packages (no > build-dependencies since you build nothing, so you end-up with less > software installed). The packages you install have been build using > the ports tree (with ports-mgmt/poudriere for example) on some > machine of the FreeBSD project, and made available to the wild. > > So, when using pkg(8), you only handle binary packages, never source > code. But the opposite is not true: the ports tree attempts to cope with > redistribution restrictions [1], so some ports will just download and > install binary blobs (e.g. proprietary drivers). > > By extension, some ports decided to trim-down build dependencies by > simply downloading a binary (it works well for things like Java and .Net > because they are not native binaries). To check this, have a look at > the many Java project (e.g. net/activemq downloads a tarball containing > 107 .jar files and has NO_BUILD set, so the port just put the files at > the right place, but does nothing more). > > Even some upstream projects trend to do so, for example, when compiling > monodevelop from upstream's source, the build procedure use nugets to > download dependencies as binary blobs. I understand that it eases-up > the life of the project's developers, but is not in-line with the > philosophy of the ports tree. Ports are supposed to build from source, > quoting the porter handbook [2]: =C2=AB Always use mainstream sources whe= n > and where possible =C2=BB. > > Russell, do these details help preventing your head from exploding? Thanks for that Romain! I suppose I was more being philosophical then literal (and a little silly). If the pkg repository server where the package was built is using the exact same sources, OS version and dependencies as I would use from Ports, IS it a binary? Your (perfect) response clearly shows the answer is yes, but I was trying to have some fun with that idea. Cheers! Russ > References: > 1. https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/bo= ok.html#porting-restrictions > 2. https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/bo= ok.html#slow-sources > > -- > Romain Tarti=C3=A8re <romain@FreeBSD.org> http://people.FreeBSD.org/~rom= ain/ > pgp: 8234 9A78 E7C0 B807 0B59 80FF BA4D 1D95 5112 336F (ID: 0x5112336F) > (plain text =3Dnon-HTML=3D PGP/GPG encrypted/signed e-mail much appreciat= ed)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABx9NuSWjxzztX1=GGgyUOW2JyBtGXeygasVGJhB%2Bmp2aO7OPw>