The following tools I found useful to upgrade FreeBSD ports.
pu-install installs or upgrades a single port, i.e., it does carries out once the sequence build, make backup binary packet, preserve shared libraries, deinstall old port, install the new port, fix dependencies.
One peculiarity is, that pu-install honers the variable PU_SECONDARY_PORTSDIR to look for ports not found in PORTSDIR.
To update the dependency graph, it makes use of two additional programs specific to the current flat-file database format.
pu-drive carries out a plan to call pu-install several times, skipping calls if a registered dependency failed.
pu-sort takes a list of packages and sorts them by dependency order. In that way, you get a plan for pu-drive. It also accepts changed origins and correctly mentions the relevant dependencies in the plan.
pu-closure computes the upwards or downwards closure in the dependency graph of a list of packages.
The tools are freely available and may be distributed under terms and conditions of the 3-clause BSD-style licence.
For any questions or bug reports please feel free to contact me (Klaus Aehlig).
All versions from 0.2 onwards are available on the following stable URLs.
pu-3.0.tar.gz-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 MD5 (pu-3.0.tar.gz) = 05a19603ad2dddae1e8fc482566e4d4b SHA256 (pu-3.0.tar.gz) = c26bb245d0087e0246177075212a13381b1852f7dceeaef0909e36f846ef1c37 MD5 (pu-2.3.tar.gz) = 7537a08c96ff6d94b5baeb582c58b857 SHA256 (pu-2.3.tar.gz) = 9c305929cc07fe9dbdeb64c03859624826e1ffc6fa4e53eba079c96f0166b4cf MD5 (pu-2.2.tar.gz) = 4b4d09cd350e1296232fd97fbb0c9cb8 SHA256 (pu-2.2.tar.gz) = dd756d643d457f5d3e18f9244aea7fd38703da90392aa48ab4bd896fb0e7f6b0 MD5 (pu-2.1.tar.gz) = 9677bd6fe696f14e804b3e3a41bca55a SHA256 (pu-2.1.tar.gz) = bb951f7c1705b8ed60a076ca7fe7c441414b2b750a4373c5aad6120fde3f5fd0 MD5 (pu-2.0.tar.gz) = f8535c315d4ab7ee4e52eb96a2d581a9 SHA256 (pu-2.0.tar.gz) = 58c3b65d02ebbfbed59eb2804cb3329180a13315ab2fd60ea5b828dc571bbcab MD5 (pu-1.9.tar.gz) = 26840d3c564e2c92aca2e78131b88862 SHA256 (pu-1.9.tar.gz) = 31f125d305391a9991dfc80e85a93c4752ddd55f441ffeb2e3211a633b3649ef MD5 (pu-1.8.tar.gz) = 9c271f192127d4c9337d283eebeb9fcc SHA256 (pu-1.8.tar.gz) = 42f625150b49f73ed9127f7490e8fff3791bd7d52bf2cea77a17bbac7fdf7bec MD5 (pu-1.7.tar.gz) = c2db7c62fdbfd6a87c7376c2ceb3b178 SHA256 (pu-1.7.tar.gz) = 809d61cec99ed4a908b65e6cb5b0b31fd1a2b33fa10f873c4f036f3d5ae90a69 MD5 (pu-1.6.tar.gz) = b4cdcffcf19062ce01c440c4e809e09a SHA256 (pu-1.6.tar.gz) = df6eca573e1763744b19c9e8d8f7a0db393e35fc62528e71cb5b264839cc59ff MD5 (pu-1.5.tar.gz) = 36fcf0f35ef15bfc68b45aa0dd19a1d8 SHA256 (pu-1.5.tar.gz) = 8678bcbd212346629cdd356cfeca8cea43d03101e1efbc13e21f23b0f61285da MD5 (pu-1.4.tar.gz) = 3eee5f312a5b53168b0d215f0a4df942 SHA256 (pu-1.4.tar.gz) = 13ad1e094eacd9693d805912cdacda6fadbec4f03a7fc20fc2e65b69e8050918 MD5 (pu-1.3.tar.gz) = 9fb8a96beb9d2791f96a9f25361be139 SHA256 (pu-1.3.tar.gz) = 02d8ad6c4420400cbbf647258c21b6ef83ecd47a11d2ea31481ee57a944de73a MD5 (pu-1.2.tar.gz) = c761ca9e32abdbb0cb6a5c6d729de868 SHA256 (pu-1.2.tar.gz) = 3b076654bdd5c33a5f9a4408d54060bb5f9ef119092d9e59a5406d9a407c4235 MD5 (pu-1.1.tar.gz) = a68dbc4ae9ae43f408070389a26ab313 SHA256 (pu-1.1.tar.gz) = 95eaacf20790048f3a4c50c073c5b6db2100f7c67462bca7b347816e66d4f5bb MD5 (pu-1.0.tar.gz) = 93852b8ca593f6b03f19d7700de678f8 SHA256 (pu-1.0.tar.gz) = f36ef3b4cb812a4d67968a5c1c4a9a7e023e05a5679e6f0508d48eb6b45aa19f MD5 (pu-0.6.tar.gz) = 5f15b8ea73b761d785f3775f1a5ab9b5 SHA256 (pu-0.6.tar.gz) = 6d8571200e91cb5f99e6a4f97fb57d4294c3cc120a402f9c93c8b69e7b2c70b8 MD5 (pu-0.5.tar.gz) = 04f6a18ef1e13ca1b27e1f4971ee78d8 SHA256 (pu-0.5.tar.gz) = 3369cac0cd5225f0ab74f4289439a6c194e2567a71233a2491a7bc4fd9dc9dfa MD5 (pu-0.4.tar.gz) = 1a95a072e8b7e0b64e797cbd21e3cea5 SHA256 (pu-0.4.tar.gz) = c6c62c43aa29dbf162714aae227297f68ca2e12ea985ea22e0ad44fb4f1e6f33 MD5 (pu-0.3.tar.gz) = c3a5476d5cb84047aa18ba3b4318dafd SHA256 (pu-0.3.tar.gz) = 0d68f978c593e453d1ede4e3562f64c78c7923607b8f6d00c8bca4c2e1bfde53 MD5 (pu-0.2.tar.gz) = 39e30524761a39f43e26c4afc46bff45 SHA256 (pu-0.2.tar.gz) = 0495565694a5c7515bb306af6c441671609f99e3d24e8d2785085c0b875e9fec -----BEGIN PGP SIGNATURE----- iF0EARECAB0WIQSy00OdGa0UoPhLnlI/FcgvwbmpHAUCYARDOQAKCRA/Fcgvwbmp HDdtAJ9yJGKxCm03/RMhDbZYmr8Sa0Jf7QCbBoJrvVB3rZynfK/TSEXGrrGu5qs= =Pl9m -----END PGP SIGNATURE-----