# Why Poudriere?



## jamesmintram (Dec 22, 2019)

Hi All,

What is the main reason/use case for someone to use Poudriere and build all of their own packages vs just using the prebuilt packages via pkg install?


----------



## Alexander88207 (Dec 22, 2019)

Hello *jamesmintram,*

As far as I am concerned, the main reason I build packages from source code is when I need an option that is not enabled upstream.


----------



## Phishfry (Dec 22, 2019)

When I was using Arm boards the package repository was only built quarterly so if I needed a newer package Poudriere was a great way to crossbuild packages.
Building packages on Arm boards is very slow so crossbuilding on AMD64 is advantageous.


----------



## teo (Dec 22, 2019)

Alexander88207 said:


> As far as I am concerned, the main reason I build packages from source code is when I need an option that is not enabled upstream.


For example, can you build a package for the simulation of a driver that is not compatible with FreeBSD? Also the packages spice-vdagent and spice-agent seem not to be available for FreeBSD.


----------



## jamesmintram (Dec 22, 2019)

Alexander88207 said:


> Hello *jamesmintram,*
> 
> As far as I am concerned, the main reason I build packages from source code is when I need an option that is not enabled upstream.



OK, that makes sense, I assume you can just rebuild a few packages and default to the freebsd pkg repository for everything else?



Phishfry said:


> When I was using Arm boards the package repository was only built quarterly so if I needed a newer package Poudriere was a great way to crossbuild packages.
> Building packages on Arm boards is very slow so crossbuilding on AMD64 is advantageous.



That also makes sense.

So it seems the main advantage is giving people the ability to customize packages for their own needs.


----------



## Remington (Dec 22, 2019)

Also you disable some global options like SOUND, LPR, GUI, X11, CUPS since I don't use it on my server and it build less dependencies.


----------



## Alexander88207 (Dec 22, 2019)

jamesmintram said:


> OK, that makes sense, I assume you can just rebuild a few packages and default to the freebsd pkg repository for everything else?



Yes, but when i doing this, i check if the port is on the same version as in quarterly/latest repository because if its not the case then i need to rebuild everything that depends on that.


----------



## Nicola Mingotti (Dec 22, 2019)

Phishfry said:


> When I was using Arm boards the package repository was only built quarterly so if I needed a newer package Poudriere was a great way to crossbuild packages.
> Building packages on Arm boards is very slow so crossbuilding on AMD64 is advantageous.



I would like to +5 this answer. In ARM (last year is my latest experience) you will not find many packages, at least, not as many as in a more popular architecture. I personaly compiled on the ARM and it took me 1-2 days to compile some stuff related to video. So, it is a good reason to give it a try. I didn't. Still I have not studied Puodriere.


----------



## neel (Dec 22, 2019)

While I don't use custom options unless I need to, I use Poudriere since I maintain Ports. I don't actually use the Poudriere-built packages, but its more to make sure they build before I submit to Bugzilla.


----------



## kmroz (Dec 23, 2019)

Using poudriere prevents me from mixing ports and pkg's, since several packages I use require custom patches, etc.  Also, the colours


----------



## SirDice (Dec 23, 2019)

jamesmintram said:


> What is the main reason/use case for someone to use Poudriere and build all of their own packages vs just using the prebuilt packages via pkg install?


So I'm able to set my own defaults (/usr/ports/Mk/bsd.default-versions.mk) and options. It also keeps everything in sync and I get to choose when and what to update from a central location, this keeps everything in line. 



jamesmintram said:


> I assume you can just rebuild a few packages and default to the freebsd pkg repository for everything else?


I would recommend disabling the standard FreeBSD repository and have _everything_ you need in your repository. That way you can never fall into dependency weirdness (conflicting options, defaults and whatnot).


----------

