# What do you use for building your ports?



## dch (Sep 29, 2017)

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!


----------



## SirDice (Sep 29, 2017)

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).


----------



## GeorgeMitchell (Sep 29, 2017)

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.


----------



## Björn Róbertsson (Sep 29, 2017)

+1 for the trip from on jails/builds on a single server, to portupgrade, to portmaster, to poudriere


----------



## Datapanic (Sep 29, 2017)

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.


----------



## Jim Trigg (Sep 29, 2017)

I actually use two different tools. For my production environment I still use portmaster, but my next gen environment is using poudriere.


----------



## ShelLuser (Sep 29, 2017)

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.


----------



## ekingston (Sep 29, 2017)

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.


----------



## Chris_H (Sep 29, 2017)

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.


----------



## xtaz (Sep 29, 2017)

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.


----------



## xtaz (Sep 29, 2017)

GeorgeMitchell said:


> 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?


----------



## fernandel (Sep 30, 2017)

I was portmaster user but when synth came to the ports I am using it and I do not have any problems.

BTW: I don't understand why is ADA so big "problem" in FreeBSD or is related to Mr. Marino?


----------



## abishai (Sep 30, 2017)

fernandel said:


> BTW: I don't understand why is ADA so big "problem" in FreeBSD or is related to Mr. Marino?


`gcc-aux` is not compiling against CURRENT for a half of year, port doesn't have maintainer.


----------



## tobik@ (Sep 30, 2017)

xtaz said:


> I think on FreeBSD 12 the ada compiler is broken isn’t it? Meaning synth will break.


lang/gcc6-aux is broken (presumably because of the ino64 changes, PR 219667). But Synth compiled under FreeBSD 11 will still be able to run on FreeBSD 12 (under COMPAT_FREEBSD11) in the worst case. This is what I currently do anyway.


----------



## marino (Oct 1, 2017)

xtaz said:


> 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.


----------



## darcsis (Oct 1, 2017)

'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.


----------



## garry (Oct 6, 2017)

abishai said:


> `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).


----------



## PacketMan (Oct 19, 2017)

Sorry missed the poll.

ports-mgmt/synth


----------



## Deleted member 30996 (Oct 19, 2017)

I started out using ports-mgmt/portupgrade and now use ports-mgmt/portmaster exclusively.


----------



## Deleted member 48958 (Oct 19, 2017)

ports-mgmt/portmaster! I like simplicity.
synth and poudriere are too complicated for "home" usage IMHO.


----------



## tankist02 (Oct 19, 2017)

The author of synth insisted that portmaster may lead to incorrect builds.


----------



## rigoletto@ (Oct 20, 2017)

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. 

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.


----------



## leebrown66 (Oct 20, 2017)

fernandel said:


> BTW: I don't understand why is ADA so big "problem" in FreeBSD or is related to Mr. Marino?


Portability, last I heard.  Only able to compile for Intel CPU's.  Maybe that's changed?


----------



## rigoletto@ (Oct 20, 2017)

leebrown66 

port-mgmt/synth is currently building (Ada) fine for me on AMD FX-8120.


----------



## xtaz (Oct 20, 2017)

lebarondemerde said:


> 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.


----------



## rigoletto@ (Oct 20, 2017)

xtaz 

It is fine for more or less static pkglist, but if you like to test stuff and will have that list changing often it is a bit boring.


----------



## SirDice (Oct 20, 2017)

I have various lists because I have things split up into a 'desktop' and a 'server' environment. So I need different packages for each. But that list I created a long time ago and I only need to add/remove things occasionally. It's not like you have to generate that list every time you do a run.



lebarondemerde said:


> It is fine for more or less static pkglist, but if you like to test stuff and will have that list changing often it is a bit boring.


You can use testport for one-off builds.


----------



## Deleted member 48958 (Oct 20, 2017)

tankist02 said:


> The author of synth insisted that portmaster may lead to incorrect builds.


May be he used to use it wrong? 
Because personally I, never had any problems with portmaster.
All of my builds were "correct"


----------



## grahamperrin@ (Oct 21, 2017)

`poudriere` and `make`.

For me, making is quite rare. Usually performed at paths such as:

/usr/local/poudriere/ports/freebsd-ports-kde/emulators/virtualbox-ose

– because it's the easiest/likeliest way for me to get an installation of VirtualBox that works with my outdated FreeBSD-CURRENT. Probably not a recommended approach, but it works for me.


----------



## fscorrea (Oct 25, 2017)

Usually I have to stick with packages since I can't afford to spend much time on building/rebuilding from ports. But I do it occasionally, e.g. with multimedia/ffmpeg so to enable PulseAudio and xcbgrab.

I use ports-mgmt/portmaster with the `-i` option, thus avoiding the rebuild of dependencies due to version mismatch. Of course, it's not a good solution since versions are part of dependencies as a requirement, but any trouble originated from this would affect only the application built. It's a trade-off between said risk and the time spent with massive rebuilding.

I used `make` in the beginning, but then one day while building www/firefox I noticed it rebuilding some ports I already know that take long for build. Especially LLVM and a Ruby-something I don't remember what (I'm not a big fan of Ruby myself). That's when I started using `# portmaster -i`.

I've read in ports(7) about running `make` with the NO_DEPENDS variable set. As far as I understand, it should do the same except for skipping all depends instead of asking. Also, have yet to try this since I only learned about it recently.

I've read in another threads about ports-mgmt/poudriere or ports-mgmt/synth with a local repository. I'm still learning as a newbie but kept it on mind for future reference.


----------



## Sevendogsbsd (Oct 25, 2017)

ports-mgmt/portmaster - I have a single machine (my workstation) so this works fine for me. I


----------



## andersbo87 (Dec 1, 2017)

Sevendogsbsd said:


> ports-mgmt/portmaster - I have a single machine (my workstation) so this works fine for me. I


Me too. One workstation and Portmaster works fine for me too, that is until flavours were added to python ports on 30 November. And yes, I do know I might be a little bit late to this "party".


----------

