pkgsrc-Users archive

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

bob v0.8.1



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,

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


Home | Main Index | Thread Index | Old Index