Update on porting mono 5

Romain Tartière romain at FreeBSD.org
Fri Sep 8 07:41:39 UTC 2017


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 <romain at 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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-mono/attachments/20170908/6c2b53a4/attachment.sig>


More information about the freebsd-mono mailing list