What do you use for building your ports?

what do you use for building from ports?


  • Total voters
    65
  • Poll closed .

dch

Developer
If your favourite tool isn't listed here, message me here or on irc ( dch / dch_ ) to get it added. Also please tweet/post/share to get a wider distribution - thanks!
 
I have multiple machines running different versions of FreeBSD. So for me ports-mgmt/poudriere works really well.

Long before all those tools existed I created a basic jail(8) and used the traditional make package-recursive to build up what I needed. Later on the building was done with ports-mgmt/portupgrade, and when ports-mgmt/portmaster became available I started using that. So I've pretty much used every tool available over the years except Synth (still wanting to give it a go, just to see how it works).
 
I'd be happy to use poudriere if it didn't have a history of panicking my machine with its piddling 4GB of memory. Portmaster does the job, though perhaps it will be interesting to get it integrated with flavors.
 
I run poudriere via cron on my main machine with 16GB of RAM and I also run it on a smaller vm with only 2GB of RAM. I've tried all the others as well, but poudriere does it best for me.
 
I actually use two different tools. For my production environment I still use portmaster, but my next gen environment is using poudriere.
 
I voted ports-mgmt/portmaster because that tool sits at the heart of my stuff, but I also build several scripts around it which help me to keep my ports collection up to date and to perform maintenance (like cleaning up caches). I guess the latter is also the reason why I continue to use Portmaster; its lightweight, does a very good job, and any extra functionality I wanted to have I simply added myself.
 
I haven't actually had to build a port in years. The pre-build packages have had the features that require compile-time flags. But when I used to need custom build, it was make. Of course, I also did the blasphemous thing and mixed ports and packages.
 
I've always built everything from scratch -- it's my stuff, so I want it done my way. :)
In the beginning jail(8) wasn't available. So I had a "build" machine that I simply built on, and exported from.
Later, like SirDice , and ShelLuser ; when jail(8) became available. I did pretty much everything from a jail(8).
Then tried, and used portmaster. Followed by synth. Which is what I use even today, tho I still use a traditional jail(8) quite a bit.
 
Just to cut and paste what I have already said on the mailing lists.

Portmaster was useful for many years but these days it is being left behind. The expectation is that ports are built in a clean room environment and portmaster does not provide that. I used synth for several months and it is a great tool. It works fine, but my problem with it is that the developer was forced out of FreeBSD and it needs an ada compiler.

I think on FreeBSD 12 the ada compiler is broken isn’t it? Meaning synth will break. For this reason I switched to poudriere and that works fine for me. As that is the tool used by the pkg builders themselves I know it will work.

For example we are shortly getting flavors support in the ports tree. I think the author of synth has already said he is not going to support this whereas poudriere will straight away.
 
I'd be happy to use poudriere if it didn't have a history of panicking my machine with its piddling 4GB of memory. Portmaster does the job, though perhaps it will be interesting to get it integrated with flavors.

I only have 4GB myself and have no issues at all. You know there are options in the config file to limit processes and memory limits right?
 
I think on FreeBSD 12 the ada compiler is broken isn’t it? Meaning synth will break. For this reason I switched to poudriere and that works fine for me. As that is the tool used by the pkg builders themselves I know it will work.

Regardless of what some people believe about Ada, it's is a major gcc front-end. If the ino64 commit broke it, the ino64 authors have a responsibility to ensure that gcc builds as before. Whether or not they realize their responsibility is another story. If need be, I'll make sure gccX from Ravenports (with all the frontends) works on FreeBSD 12.

For example we are shortly getting flavors support in the ports tree. I think the author of synth has already said he is not going to support this whereas poudriere will straight away.

I actually don't recall saying this.
 
'portmaster' is the choice. At first I tried 'portupgrade' which pulls in 'ruby' that I don't like. 'portmaster' is only a set of pure shell scripts that simply get the job done.
 
gcc-aux is not compiling against CURRENT for a half of year, port doesn't have maintainer.

Good ada support is critical but FreeBSD seems to be chasing something else. I'll be evaluating Ravenports as a better long term solution. As soon as DragonFlyBSD 5.0 is released (next Monday?) I'll install it onto a new drive on top of Hammer2 and start experimenting with the new Ravenports package manager that John Marino and friends have been developing. I know that the ada support there will be excellent. (Ravenports may be useful on FreeBSD and Linux as well as DragonFly).
 
I use ports-mgmt/synth in my desktop, and ports-mgmt/poudriere in my server where I have several jails and I think it works better for that.

Before anyone tell me I can also use ports-mgmt/poudriere to build packages for the desktop: yes, I know. :rolleyes:

The reason of why I am not using it are two: the server is considerably slower than my desktop, but fast enough for the server needs (including the necessary builds); and, as I believe many of us do, I am always testing/changing something in the desktop, and ports-mgnt/poudriere does need that file with a list of ports to be built, what is a bit boring to use when you need to keep updating/changing it.
 
ports-mgnt/poudriere does need that file with a list of ports to be built, what is a bit boring to use when you need to keep updating/changing it.

It's not that bad. pkg prime-origins > /usr/local/etc/poudriere.d/pkglist or something like that will do the trick to generate the required file. Assuming you just want to build everything that's on the current system.
 
Back
Top