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? 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)
signature.asc
Description: PGP signature