Transition from pkg-config
to pkgconf
not displayed in brew update
/brew outdated
/brew upgrade
#18788
Description
brew doctor
output
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!
Warning: No developer tools installed.
Install Clang or run `brew install gcc`.
Verification
- My "
brew doctor
output" above saysYour system is ready to brew.
and am still able to reproduce my issue.- I did not get the message, but it's unrelated to my issue.
- I ran
brew update
twice and am still able to reproduce my issue.- I specifically needed to avoid updating to reproduce this issue.
- This issue's title and/or description do not reference a single formula e.g.
brew install wget
. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.
brew config
output
HOMEBREW_VERSION: 4.4.6
ORIGIN: https://github.com/Homebrew/brew
HEAD: cc0b5d6d05d1f3af5b2f53e9fbb1e7bfa0c332ab
Last commit: 2 days ago
Core tap HEAD: 5a7889f0a99d3ea24b9cc95062c2036111d15e5e
Core tap last commit: 62 minutes ago
HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 10
HOMEBREW_NO_AUTO_UPDATE: set
HOMEBREW_NO_INSTALL_CLEANUP: set
HOMEBREW_NO_INSTALL_FROM_API: set
Homebrew Ruby: 3.3.6 => /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.3.6/bin/ruby
CPU: 10-core 64-bit unknown_0x0_0x0
Clang: N/A
Git: 2.47.0 => /bin/git
Curl: 8.9.1 => /bin/curl
Kernel: Linux 6.10.11-linuxkit x86_64 GNU/Linux
OS: Fedora release 41 (Forty One)
Host glibc: 2.40
/usr/bin/gcc: N/A
/usr/bin/ruby: N/A
glibc: N/A
gcc@11: N/A
gcc: N/A
xorg: N/A
What were you trying to do (and why)?
I was running brew update
and brew upgrade
, which I do most days to keep my install up-to-date.
What happened (include all command output)?
When I updated my formulae last week, Homebrew did not properly express that it was replacing pkg-config
with pkgconf
:
# brew update
Updated 1 tap (homebrew/core).
==> New Formulae
beautysh cbfmt dotnet@8 fileql kuzco screenpipe
bibtex-tidy cljfmt energy gplugin neocmakelsp sigsum-go
==> Deleted Installed Formulae
pkg-config ✘
==> Outdated Formulae
pkgconf
You have 1 outdated formula installed.
You can upgrade it with brew upgrade
or list it with brew outdated.
# brew outdated
pkgconf (0.29.2_3) < 2.3.0_1
# brew upgrade
==> Upgrading 1 outdated package:
pkg-config 2.3.0_1
==> Downloading https://ghcr.io/v2/homebrew/core/pkgconf/manifests/2.3.0_1
############################################################################################# 100.0%
==> Fetching pkgconf
==> Downloading https://ghcr.io/v2/homebrew/core/pkgconf/blobs/sha256:4fe98600d631d8d816217b96f905be
############################################################################################# 100.0%
==> Upgrading pkg-config
-> 2.3.0_1
==> Pouring pkgconf--2.3.0_1.x86_64_linux.bottle.tar.gz
🍺 /home/linuxbrew/.linuxbrew/Cellar/pkgconf/2.3.0_1: 28 files, 489.0KB
What did you expect to happen?
I expected it to be clear that pkg-config
was migrated to pkgconf
, but the output brew update
, brew outdated
, and brew upgrade
all provided different information, and none of it made clear what happened.
I was only able to figure out what happened from Homebrew/homebrew-core@0c35794, and I should not need to go into the commit history to figure out what version pkgconf
upgraded from.
Step-by-step reproduction instructions (by running brew
commands)
-
Create a
Dockerfile
with the following contents:# Pin to latest Fedora image FROM fedora:41@sha256:9cfb3a7ad0a36a1e943409def613ec495571a5683c45addb5d608c2c29bb8248 ENV HOMEBREW_NO_AUTO_UPDATE=1 ENV HOMEBREW_NO_INSTALL_CLEANUP=1 ENV HOMEBREW_NO_INSTALL_FROM_API=1 ENV NONINTERACTIVE=1 # Install Homebrew RUN dnf install -y git procps-ng RUN touch /.dockerenv RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/3c4f43009890527e22bc18cf21801e236ba87222/install.sh)" RUN echo >> ~/.bashrc RUN echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc # Suppress warning for smaller output RUN git config --global advice.detachedHead false
-
Build and run the OCI image with the following commands:
docker build --platform linux/amd64 --tag brew - <Dockerfile docker run --rm -it --platform linux/amd64 brew
-
Run the following commands to reproduce the output provided above:
# git -C "$(brew --repository)"/Library/Taps/homebrew/homebrew-core checkout 0c357945611d988fe65e46aeb092cbb6ca7492bd~1 HEAD is now at 871be5cd76c Merge pull request #197395 from mise-en-dev/bump-mise-2024.11.7 # brew install pkg-config ==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/manifests/0.29.2_3 ############################################################################################# 100.0% ==> Fetching pkg-config ==> Downloading https://ghcr.io/v2/homebrew/core/pkg-config/blobs/sha256:3d9b8bf9b7b4bd08086be1104e3 ############################################################################################# 100.0% ==> Pouring pkg-config--0.29.2_3.x86_64_linux.bottle.tar.gz 🍺 /home/linuxbrew/.linuxbrew/Cellar/pkg-config/0.29.2_3: 12 files, 747KB # git -C "$(brew --repository)"/Library/Taps/homebrew/homebrew-core checkout 0c357945611d988fe65e46aeb092cbb6ca7492bd Previous HEAD position was 871be5cd76c Merge pull request #197395 from mise-en-dev/bump-mise-2024.11.7 HEAD is now at 0c357945611 Merge pull request #194885 from Homebrew/pkgconf-symlink # brew outdated pkgconf (0.29.2_3) < 2.3.0_1 # brew upgrade ==> Upgrading 1 outdated package: pkg-config 2.3.0_1 ==> Downloading https://ghcr.io/v2/homebrew/core/pkgconf/manifests/2.3.0_1 ############################################################################################# 100.0% ==> Fetching pkgconf ==> Downloading https://ghcr.io/v2/homebrew/core/pkgconf/blobs/sha256:4fe98600d631d8d816217b96f905be ############################################################################################# 100.0% ==> Upgrading pkg-config -> 2.3.0_1 ==> Pouring pkgconf--2.3.0_1.x86_64_linux.bottle.tar.gz 🍺 /home/linuxbrew/.linuxbrew/Cellar/pkgconf/2.3.0_1: 28 files, 489.0KB