Synth & PKG Upgrade Questions

I'm using PKG and Synth to manage my ports. I'm fairly new to this (used portmaster the entire time) and I have a couple of questions.

I just upgraded security/openssl, and it compiled the new version of openssl and a new port devel/nasm.

When I issued a pkg upgrade, it upgraded openssl and did nothing with nasm. As of right now, nasm resides in the repository, but is not installed in the system.

My questions are :

What's the best way to ensure everything in the synth repository is installed / and or upgraded after compiling the new versions in the repository - so nothing is missed?

How can I list all non-installed ports in the synth repository?

How do I reinstall all ports that rely on security/openssl? (my old method was portmaster -r security/openssl)

Any help would be greatly appreciated.
 
Just a suggestion: you might want to change your threads subject a bit because your question is more related to Synth than pkg. I kinda expected pkgng related questions yet can't really provide much help here because I don't use Synth myself.
 
I use ports-mgmt/synth myself, since building on a live system is not a good idea. Not an expert on this by any means, but I think the recommended way is to run
synth upgrade-system
Granted synth uses pkg under the hood to do the installs. Normally synth rebuilds a lot of packages because the dependencies were rebuilt, but the dependent packages may still be the same versions (i.e. unchanged), and then
pkg upgrade
will not update them.

I'm curious why devel/nasm was built; it's not dependent on security/openssl.
 
Your repository will not only have your requested packages, but also all their dependencies.

Unless you requested an install of nasm, it was initially built by synth as a build-dependency for some other port you have. It was rebuilt because, well, the port was upgraded, but since it is not a run-time or library dependency (it's an assembler) for anything you have currently installed, it wasn't installed/upgraded. By the same token, it shouldn't be installed now; does pkg info nasm return anything other than no packages matching?

But when you next have to upgrade whatever you have that uses nasm to build (ffmpeg, perhaps?), you won't have to wait for the new nasm to build. It will only be installed during that process in the builder environment, not /usr/local.
 
Your repository will not only have your requested packages, but also all their dependencies.

Unless you requested an install of nasm, it was initially built by synth as a build-dependency for some other port you have. It was rebuilt because, well, the port was upgraded, but since it is not a run-time or library dependency (it's an assembler) for anything you have currently installed, it wasn't installed/upgraded. By the same token, it shouldn't be installed now; does pkg info nasm return anything other than no packages matching?

But when you next have to upgrade whatever you have that uses nasm to build (ffmpeg, perhaps?), you won't have to wait for the new nasm to build. It will only be installed during that process in the builder environment, not /usr/local.

Nicely explained. I tried to explain this but wasn't clear enough, sorry. I also assumed the OP just upgraded security/openssl and nothing else which wouldn't have built devel/nasm.

OP: From the pkg-upgrade() manpage:
"Where a package on the work list supplies a shared library, and that library has been updated, all packages requiring that shared library will also be added to the work list as reinstallation jobs."

However, I think minor library version bumps (no ABI change) don't trigger a reinstall. Bigger bumps do. For example, on my system (using ports-mgmt/synth to upgrade):
Code:
pkg: py27-setuptools upgraded: 36.0.1 -> 36.2.2
pkg: py27-pytz reinstalled: 2017.2,1 -> 2017.2,1
where the first line is a dependency of the second. Note that synth is more "aggressive" than pkg when deciding what to rebuild so it will rebuild stuff which pkg does not consider changed enough to warrant a reinstall. This is my understanding; please feel free to correct me.
 
I wish there was a command in synth that would allow us to reinstall all packages that were compiled/recompiled during the current session - regardless whether it's warranted or not.

I've now seen a few times where a update for a library was available, and 12 other packages that depended on it were recompiled as well. However, issuing the upgrade command only reinstalled the library and ignored the other 12 packages. I just feel somehow I could run in to issues down the road and have no idea how to fix it.
 
Back
Top