I've been working on new software for the past few weeks. It's called "Synth" and one of its main purposes is to replace portmaster/portupgrade. It it similar to poudriere in that it supports concurrent building and local respository creation, but it's aimed at the regular user. It is a drop-in tool, and there is no "jail building" or "ports tree" installing or anything like that. It uses the features of the system it builds on by default, but it builds everything in a clean environment and it builds exactly what is needed.
It's particular aimed at users that:
I pushed synth to FreeBSD ports last night (as ports-mgmt/synth). That means it will not be available as a pre-built package for a few days.
For those that don't want to wait, they can build it themselves pretty easily.
It has not had widespread testing for FreeBSD yet. If you want to provide detailed feedback, the best place is GitHub ( https://github.com/jrmarino/synth/issues ) but if you don't have an
account you can just write back here and I'll check back periodically.
Known (current) limitations:
It's particular aimed at users that:
- Insist on building ports from source no matter what.
- Need ports with options other than defaults.
- Want system upgrades to be painless.
- Have multiple systems that they want to share a common, customized
package repository. - Think postmaster is great.
- Want to gain concurrent package building locally.
- Don't like package surprises.
- Don't understand or want to deal with poudriere.
I pushed synth to FreeBSD ports last night (as ports-mgmt/synth). That means it will not be available as a pre-built package for a few days.
For those that don't want to wait, they can build it themselves pretty easily.
- Install the dependencies:
pkg install gcc6-aux ncurses
- Build it:
cd /usr/ports/ports-mgmt/synth && make install
- Check with:
synth configure
It has not had widespread testing for FreeBSD yet. If you want to provide detailed feedback, the best place is GitHub ( https://github.com/jrmarino/synth/issues ) but if you don't have an
account you can just write back here and I'll check back periodically.
Known (current) limitations:
- It won't leverage pre-built official binaries at this time. It will build every dependency that it needs. I'll look into seeing how feasible downloading already-built dependency packages is in the near future.
- The "test mode" isn't complete. It doesn't check for leftover files or filesystem violations (the latter isn't a big deal because most of the build area is read-only so violators generally fail during the build).
- There's no "hang" watchdog yet. Any process that gets stuck won't be automatically killed and it could result in hanging mounts. For stock port trees, this shouldn't come up though, it's mostly a port developer issue.