The package grub-update does NOT need to be required by grub

$ pacman -Qi grub-update

Name            : grub-update
Version         : 2.12-1
Description     : GNU Grub (2) Update Menu Script
Architecture    : x86_64
Depends On      : grub
Required By     : grub

The package grub-update does NOT need to be required by grub.

I would like to remove grub-update and create my own alias for grub update.


Edit:


Moderator edit: it’s backticks ``` not colons ‘’'

I guess you’ll have to remove it by force. :stuck_out_tongue:

It appears to provide update-grub

No, it can not be removed when installing grub in Manjaro repo. look at pacman -Si grub to use the dependency grub-update

Repository      : core
Name            : grub
Version         : 2.12-1
Description     : GNU GRand Unified Bootloader (2)
Architecture    : x86_64
...
Depends On      : sh  xz  gettext  device-mapper  grub-update
...

A solution is possible: I change Grub PKGBUILD.

The current (in unstable I guess) PKGBUILD has it removed already.

Or create your own package that provides “grub-update”. Can be empty, it just needs to provide it, so the dependency is satisfied.

No, grub and grub-update are together in the PKGBUILD

Right. Well you can remove it easily. Might as well put it to pacman.conf’s NoExtract or IgnorePkg.

I do not think IgnorePkg can help.

NoExtract can help. grub-update only contains one file.

NoExtract = usr/bin/update-grub

but grub-update is forced to install in the db.

I’m almost 100% positive it will.

Why?

Sure it can. Keep in mind grub and grub-update are part of the same split package and grub is the pkgbase.

Umm… why?

This is what I do for my modified PKGBUILDs: Arch build system: Preserve modified packages

Why do you believe this is a problem?

1 Like

If you remove it using sudo pacman -Rdd grub-update
sudo update-grub stops working

I’m back after bathing.


Can you show me proof if it can?

$ cat /etc/pacman.conf | grep IgnorePkg

#IgnorePkg   =
IgnorePkg   = grub-update

First remove all grub dependencies, then install grub.
$ sudo pacman -S grub --ignore grub-update

resolving dependencies...
warning: ignoring package grub-update-2.12-1
warning: cannot resolve "grub-update", a dependency of "grub"
:: The following package cannot be upgraded due to unresolvable dependencies:
      grub

:: Do you want to skip the above package for this upgrade? [y/N] N
error: failed to prepare transaction (could not satisfy dependencies)
:: unable to satisfy dependency 'grub-update' required by grub

There are some reasons, but they are not important.

  • “bloat”
  • It looks like a dead lock: A needs B, B needs A.

I did not notice grub was in the split to two packages in the repo a few months ago. That surprises me very little today.

I just asked why grub was forced to depend on grub-update. that is not important. That is up to Manjaro.


That works me after my testing. :man_shrugging:
It can ignores /usr/bin/update-grub


Did I say that’s the problem? No.

@Zesko No “proof” is required other than you have not explained a single thing you’re flailing wildly about. How do you expect anyone to understand what you’re on about?

If you think this is “solved”, then there’s nothing left to discuss. The post will be closed after the timer runs out.

FYI

update-grub is the shell script and is like alias.

It is used by some distros: Debian, Ubuntu …, not by other Arch based distros except Manjaro.

It has an advantage for Debian users who switch to Manjaro and know update-grub well.

You can check $ cat /usr/bin/update-grub | grep grub-mkconfig
The output:

grub-mkconfig -o /boot/grub/grub.cfg "$@"

No need to grep. This is the whole thing.

$ cat $(which update-grub)

#! /bin/sh
set -e
grub-mkconfig -o /boot/grub/grub.cfg "$@"

# workaround for https://git.savannah.gnu.org/cgit/grub.git/commit/?id=3cf2e848bc03c44d30bb87e583d12efe7e7ccf75
# if grub is not updated in MBR/EFI dashes still won't work, hence we remove them
sed -i -e '/cryptomount -u/ {s/-//g;s/ u/ -u/g}' /boot/grub/grub.cfg

@Zesko it is needed, otherwise Manjaro doesn’t function as it would normally. I made it a split package so an alternative script can be created. One of my projects needed a different script. Simply add provides="grub-update" to any package you want to provide an alternative /usr/bin/update-grub script.

It is already needed.
I think some people misunderstood what I meant. I try to formulate English sentences.

I would suggest that you can separate Grub PKGBUILD to two PKGBUILDs (Grub and Grub-update) to prevent a deadlock.

IgnorePkg is impossible because of the deadlock: A needs B and B needs A. :point_down:


Yes, any packages can provide grub-update if they need, that is fine. That is not about the deadlock.
I didn’t mean these packages, but I only mean Grub and Grub-update on this topic.


PS: I didn’t mark your solution but it was marked by Manjaro. It’s up to Manjaro :slight_smile:

As explained in the issue, this should fix it: [pkg-upd] 2.12-2 (cecee81a) · Commits · Packages / Core / grub · GitLab