pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bob v0.8.1







Sent with Proton Mail secure email.

On Friday, 6 February 2026 at 4:56 PM, Jonathan Perkin <jperkin%pkgsrc.org@localhost> wrote:

> 
> 
> Hi folks,
> 
> In keeping with a new release approximately every week, I've just
> released bob v0.8.1. Thanks to wiz@ for a large amount of testing and
> suggestions for this release. I've since acquired the 'bob' crate, so
> for this upgrade only you'll need to issue a one-time "--force" install
> to overwrite the previous bob command:
> 
> $ cargo install --force bob
> 
> Even if you don't plan on using bob for your builds, I think this
> release offers useful features for you to analyse exactly what needs to
> be done to get your installed packages up-to-date, and helps visualise
> changes to pkgsrc before you even start the builds.
> 
> There is a new 'bob list status' command that, after you have performed
> a scan, shows a full overview of what needs to be done. For example,
> running it on my macOS build host with an updated pkgsrc tree, let's see
> what the current pending builds are:
> 
> $ bob list status -s pending | head
> PKGNAME STATUS REASON
> python313-3.13.12 pending package not found
> xcb-proto-1.17.0nb6 pending dependencies changed: +libiconv-1.18, +zlib-1.3.1, python313 3.13.11nb1 -> 3.13.12
> 
> py313-flit_core-3.12.0 pending dependency updated: python313 3.13.11nb1 -> 3.13.12
> 
> py313-installer-0.7.0nb3 pending dependency refreshed: py313-flit_core-3.12.0
> py313-xcbgen-1.17.0 pending dependency updated: python313 3.13.11nb1 -> 3.13.12
> 
> libxcb-1.17.0 pending dependency refreshed: xcb-proto-1.17.0nb6
> ...
> 
> I find this to be really useful to see exactly why packages need to be
> rebuilt, and is something I have often wanted pbulk to be able to
> report on, as so often packages are rebuilt, causing a knock-on effect
> for many thousands of dependencies, and I don't understand why.
> 
> This may even be useful as a generator for other build tools, using bob
> to generate a topologically correct build order with MULTI_VERSION
> flags, for example:
> 
> $ bob list status -Ho pkgpath,pkgname,multi_version -s pending | head
> lang/python313 python313-3.13.12
> x11/xcb-proto xcb-proto-1.17.0nb6 PYTHON_VERSION_REQD=313
> devel/py-flit_core py313-flit_core-3.12.0 PYTHON_VERSION_REQD=313
> misc/py-installer py313-installer-0.7.0nb3 PYTHON_VERSION_REQD=313
> x11/py-xcbgen py313-xcbgen-1.17.0 PYTHON_VERSION_REQD=313
> x11/libxcb libxcb-1.17.0 PYTHON_VERSION_REQD=313
> ...
> 
> Naturally I can also see why packages are not going to be built in
> advance, along with the reason:
> 
> $ bob list status | grep emacs20-
> emacs20-elib-1.0nb5 prefailed "Accepted versions are: emacs20" "No valid Emacs version installed found"
> emacs20-20.7nb26 prefailed "[bsd.pkg.mk] emacs20-20.7nb26 is marked broken on Darwin-23.6.0-aarch64"
> leim-20.7nb7 indirect-prefailed dependency emacs20-20.7nb26 prefailed
> 
> There's also a new 'bob list tree' command that I really like, showing a
> tree view to help visualise dependencies (I'll select ASCII output as
> I'm sure someone will object to the UTF8 default ;-) As with the status
> command, you can provide a pkgname or pkgpath match and the output will
> be limited to that match:
> 
> $ bob list tree -f ascii devel/glib2
> python313-3.13.12
> |- glib2-tools-2.86.3
> |- py313-flit_core-3.12.0
> |- py313-xcbgen-1.17.0
> |- xcb-proto-1.17.0nb6
> `--+- libxcb-1.17.0 |- py313-installer-0.7.0nb3` --+- libX11-1.8.12
> |- py313-pyparsing-3.3.2
> |- py313-pyproject_hooks-1.2.0nb1
> `--+- libXext-1.3.7
> ...
> 
> Of course there are a lot of other changes too:
> 
> https://github.com/jperkin/bob/blob/main/CHANGES.md#version-081-2026-02-06
> https://github.com/jperkin/bob/blob/main/CHANGES.md#version-080-2026-02-06
> 
> with the switch away from pkg_install for up-to-date checks enabling a
> lot of this extra functionality, as well as speeding up builds a lot!
> 
> If you have any other tooling you think would be useful, please don't
> hesitate to send in a feature request.
> 
> Cheers,


I am getting again (three separate invocations after updating pkgsrc):

---

 bob scan
Creating sandbox... done (1.2s)
Discovering packages...
Discovered 20172 package paths
Scanning packages...
Scanned 20172 package paths in 9h 29m 22s (20172 succeeded, 0 failed)
Destroying sandbox... done (1.2s)
Resolving dependencies...Error: Circular dependencies detected:
        gcc6-6.5.0nb9
        gsed-4.9nb1
        gcc6-6.5.0nb9

 bob scan
Creating sandbox... done (1.2s)
Discovering packages...
Discovered 20169 package paths
Scanning packages...
Scanned 20169 package paths in 11h 19m 31s (20169 succeeded, 0 failed)
Destroying sandbox... done (1.4s)
Resolving dependencies...Error: Circular dependencies detected:
        gcc6-6.5.0nb9
        cwrappers-20220403
        libnbcompat-20251029
        gcc6-6.5.0nb9

 bob scan
Creating sandbox... done (1.7s)
Discovering packages...
Discovered 20169 package paths
Scanning packages...
Scanned 20169 package paths in 9h 32m 37s (20169 succeeded, 0 failed)
Destroying sandbox... done (1.0s)
Resolving dependencies...Error: Circular dependencies detected:
        gcc6-6.5.0nb9
        gmake-4.4.1
        gcc6-6.5.0nb9


---

After the second invocation I bult and installed gcc6 (I don't need it for anything, as far as I know it, and it was not installed before). 

I guess it is something local, my /etc/mk.conf or the fact that I have some wip packages installed... 

Chavdar 

> 
> --
> Jonathan Perkin pkgsrc.smartos.org
> Open Source Complete Cloud www.tritondatacenter.com


Home | Main Index | Thread Index | Old Index