Synth woes + How do you remove a package with Synth?

eldaemon

Active Member

Reaction score: 23
Messages: 139

Admittedly, I was using Synth a bit incorrectly and may have gotten my system into a bit of limbo. That said, Synth is *very* opinionated and not inuitive on the whole. It does seem to work very well, but there are some quirks to say the least.

For instance, I have a bunch of packages failing dependency checks. I think over the librsvg -> librsvg-rust upgrade. How do I tell it to rebuild the broken packages that it refuses to add to the repository?

I also installed audio/pulseaudio at one point, but then removed it by uninstalling it, deleting it from the Synth repository, and running synth rebuild-repository. But doing a synth upgrade-system, it ended up building it again. Does Synth maintain its own internal list of packages to keep building/maintaining? How do I actually remove packages with synth?

Thank you for your time.
 

SirDice

Administrator
Staff member
Administrator
Moderator

Reaction score: 10,732
Messages: 36,519

How do I tell it to rebuild the broken packages that it refuses to add to the repository?
Don't know if this will work for Synth but for Poudriere I can more or less force it to rebuild a certain package just by deleting it from the repository. Simply deleting the file using rm(1) does the trick.

But doing a synth upgrade-system, it ended up building it again.
It could be pulled in as a dependency, some ports have a dependency on it. Most of the time you can disable that option though, but you'll need to hunt down the port that pulls it in. Which can be a little tricky to find if its a dependency of a dependency.
 
OP
E

eldaemon

Active Member

Reaction score: 23
Messages: 139

Thank you! I might try the deletion trick but I am not certain if it also does it for synth. I guess I need to come up with a command that shows which packages are failing.

How can I find the packages which depend on a package? pkg search -Q required-by pulseaudio does not seem to work. It prints itself and nothing else. If I try it for say tk86, it says just tk86. but if I remove tk86, more wants to go with it so it's obviously not dependency-less.
 

SirDice

Administrator
Staff member
Administrator
Moderator

Reaction score: 10,732
Messages: 36,519

pkg info -r pulseaudio if it's installed. You can also use a clever pkg-rquery(8) for things that aren't installed but are in the repository. Other than that, I usually just look at the various ports (but I know my way around them), commands like make run-depends-list is usually helpful.
 

garry

Active Member

Reaction score: 92
Messages: 102

Admittedly, I was using Synth a bit incorrectly and may have gotten my system into a bit of limbo..
Nothing gets onto my server without being built by ports-mgmt/synth, so I have experience with it running FreeBSD Current and, for me, it works perfectly for its purpose (building a self-consistent repository of ~2500 packages for my server and other local computers). At every invocation it examines the repository and compares it to the ports tree and removes any packages that need updating (because of a new version or the options having been changed), or that depend on packages that need updating. It builds only what you ask it to (
Code:
synth upgrade-system
asks it to build a repository containing every package that is already installed and then use pkg to upgrade the system from that repository). You use the repository that synth built just like you would use the online binary repository from the FreeBSD servers. So you can use pkg to install or remove packages, or get information about packages, about dependencies, etc. You need to know how to use pkg.

I recommend against trying to use two repositories at once. In synth configure I have "Fetch prebuilt packages: false" and in /usr/local/etc/pkg/repos/FreeBSD.conf I have "enabled: no".
 
Top