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