Update on porting mono 5
Russell Haley
russ.haley at gmail.com
Fri Sep 8 23:35:40 UTC 2017
On Fri, Sep 8, 2017 at 12:41 AM, Romain Tartière <romain at 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 <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)
More information about the freebsd-mono
mailing list