On Fri, Sep 8, 2017 at 12:41 AM, Romain Tartière <rom...@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]: « Always use mainstream sources when > and where possible ». > > 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/book.html#porting-restrictions > 2. > https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#slow-sources > > -- > Romain Tartière <rom...@freebsd.org> http://people.FreeBSD.org/~romain/ > pgp: 8234 9A78 E7C0 B807 0B59 80FF BA4D 1D95 5112 336F (ID: 0x5112336F) > (plain text =non-HTML= PGP/GPG encrypted/signed e-mail much appreciated) _______________________________________________ freebsd-mono@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-mono To unsubscribe, send any mail to "freebsd-mono-unsubscr...@freebsd.org"