Skip to content

paru installs custom PKGBUILDs in wrong order when using LocalRepo #1451

@dablenparty

Description

@dablenparty

Affected Version

paru v2.1.0.r41.g789bead - libalpm v15.0.0, also tried on latest tagged release.

Description

Have you checked previous issues? Yes

I have some custom PKGBUILDs that I wrote myself for the Hyprland ecosystem; you can actually see them and my paru.conf here if you want. Anyway, I added them as a custom repository in paru (see paru.conf below) and set up a LocalRepo according to the docs so that I could use Chroot for building packages, but this is where I run into issues: all the hypr* packages and aquamarine depend on hyprutils-git, but updating with paru -Syu updates hyprutils-git after all of the packages that depend on it (see output below). However, if I comment out the local AUR repo from my pacman.conf and re-run with --nolocalrepo, everything is built in the right order and it even rebuilds built packages that depend on hyprutils.

Edit to add: I've played around more and this is really confusing me. If I disable the local aur repo in pacman.conf by commenting it out and disable LocalRepo (either in paru.conf or with --nolocalrepo), paru works and packages are built in the correct order; however, doing only one or the other results in paru not finding any of my custom PKGBUILDs at all. If I keep the local repo disabled in both pacman.conf and paru.conf, disabling Chroot (either in paru.conf or with --nochroot) causes it to install in the wrong order again. Updating with paru -Sua does produce the correct install order, but it only uses AUR packages and not my custom PKGBUILDs so that's not an option for me. The issue seems to only arise when AUR packages are mixed in with custom PKGBUILD packages. The solution I've settled on that seems to work is to not use a custom pacman repo at all and disable LocalRepo for paru, but keep Chroot.

Output

paru -Syu

hyprutils-git updates after packages that depend on it, causing build errors/failures.

❯ paru -Syu
[sudo] password for hunterd: 
Sorry, try again.
[sudo] password for hunterd: 
no new news
:: Synchronizing package databases...
 aur is up to date
 cachyos-v3 is up to date
 cachyos-core-v3 is up to date
 cachyos-extra-v3 is up to date
 cachyos is up to date
 core is up to date
 extra is up to date
 multilib is up to date

:: Downloading PKGBUILD Repos...
 (1/1) dot-hyprland                                  [---------------------------------------------------------]
:: Generating .SRCINFO for dot-hyprland/glfw-wayland-minecraft-git...
:: Generating .SRCINFO for dot-hyprland/hypridle-git...
:: Generating .SRCINFO for dot-hyprland/hyprls-git...
:: Generating .SRCINFO for dot-hyprland/hyprutils-git...
:: Generating .SRCINFO for dot-hyprland/pipes.sh-git...
:: Generating .SRCINFO for dot-hyprland/hyprland-git...
:: Generating .SRCINFO for dot-hyprland/aquamarine-git...
:: Looking for PKGBUILD upgrades...
:: Looking for AUR upgrades...
:: Looking for devel upgrades...
8 aur-devel/awww-git               0.11.2.r126.g05f0e47-1 -> latest-commit
7 aur-devel/hyprland-guiutils-git  0.1.0.r8.g763c94a-1    -> latest-commit
6 aur-devel/hyprlang-git           0.6.6.r2.g3d66ec7-1    -> latest-commit
5 aur-devel/hyprtoolkit-git        0.4.0.r0.ga8473c0-1    -> latest-commit
4 aur-devel/waypaper-git           2.7.r32.gfe7dc8b-1     -> latest-commit
3 aur-devel/aquamarine-git         0.10.0.r0.ga20a0e6-1   -> latest-commit
2 aur-devel/hyprland-git           0.52.0.r102.g7e1e24f-1 -> latest-commit
1 aur-devel/hyprutils-git          0.10.4.r2.g0168583-1   -> latest-commit
:: Packages to exclude (eg: 1 2 3, 1-3):
:: 
:: Resolving dependencies...
:: Calculating inner conflicts...
:: marked out of date: python-pywal16

Repo (8)                      Old Version             New Version            Make Only
cachyos-extra-v3/ninja                                1.13.2-1.1             Yes
cachyos-extra-v3/scdoc                                1.11.4-1.1             Yes
extra/glaze                                           6.1.0-1                Yes
extra/meson                                           1.9.1-2                Yes
extra/python-build                                    1.3.0-1                Yes
extra/python-installer                                0.7.0-10               Yes
extra/python-pyproject-hooks                          1.2.0-3                Yes
extra/python-tqdm                                     4.67.1-2               Yes

Pkgbuilds (8)                 Old Version             New Version            Make Only
dot-hyprland/aquamarine-git   0.10.0.r0.ga20a0e6-1    latest-commit          No
aur/hyprlang-git              0.6.6.r2.g3d66ec7-1     latest-commit          No
aur/hyprtoolkit-git           0.4.0.r0.ga8473c0-1     latest-commit          No
aur/hyprland-guiutils-git     0.1.0.r8.g763c94a-1     latest-commit          No
dot-hyprland/hyprland-git     0.52.0.r102.g7e1e24f-1  latest-commit          No
dot-hyprland/hyprutils-git    0.10.4.r2.g0168583-1    latest-commit          No
aur/awww-git                  0.11.2.r126.g05f0e47-1  latest-commit          No
aur/waypaper-git              2.7.r32.gfe7dc8b-1      latest-commit          No

:: Proceed with installation? [Y/n]: ^C/usr/bin/paru terminated by signal INT.
paru --nolocalrepo -Syu

hyprutils-git updates before packages that depend on it and rebuilds dependents, which is the expected behavior.

Comment out following parts of my pacman.conf:

# [options]
# CacheDir = /var/lib/repo/aur
# CleanMethod = KeepCurrent
#
# [aur]
# SigLevel = PackageOptional DatabaseOptional
# Server = file:///var/lib/repo/aur
❯ paru --nolocalrepo -Syu
no new news
:: Synchronizing package databases...
 cachyos-v3 is up to date
 cachyos-core-v3 is up to date
 cachyos-extra-v3 is up to date
 cachyos is up to date
 core is up to date
 extra is up to date
 multilib is up to date

:: Downloading PKGBUILD Repos...
 (1/1) dot-hyprland                                  [---------------------------------------------------------]
:: Generating .SRCINFO for dot-hyprland/glfw-wayland-minecraft-git...
:: Generating .SRCINFO for dot-hyprland/hypridle-git...
:: Generating .SRCINFO for dot-hyprland/hyprls-git...
:: Generating .SRCINFO for dot-hyprland/hyprutils-git...
:: Generating .SRCINFO for dot-hyprland/pipes.sh-git...
:: Generating .SRCINFO for dot-hyprland/hyprland-git...
:: Generating .SRCINFO for dot-hyprland/aquamarine-git...
:: Looking for PKGBUILD upgrades...
:: Looking for AUR upgrades...
:: Looking for devel upgrades...
9 aur/oh-my-posh-bin           27.6.0-1               -> 28.0.0-1
8 devel/awww-git               0.11.2.r126.g05f0e47-1 -> latest-commit
7 devel/hyprland-guiutils-git  0.1.0.r8.g763c94a-1    -> latest-commit
6 devel/hyprlang-git           0.6.6.r2.g3d66ec7-1    -> latest-commit
5 devel/hyprtoolkit-git        0.4.0.r0.ga8473c0-1    -> latest-commit
4 devel/waypaper-git           2.7.r32.gfe7dc8b-1     -> latest-commit
3 devel/aquamarine-git         0.10.0.r0.ga20a0e6-1   -> latest-commit
2 devel/hyprland-git           0.52.0.r102.g7e1e24f-1 -> latest-commit
1 devel/hyprutils-git          0.10.4.r2.g0168583-1   -> latest-commit
:: Packages to exclude (eg: 1 2 3, 1-3):
:: 
:: Resolving dependencies...
:: Calculating inner conflicts...
:: marked out of date: python-pywal16

Repo (9)                             Old Version             New Version            Make Only
cachyos-core-v3/glib2-devel                                  2.86.2-1.1             Yes
cachyos-extra-v3/ninja                                       1.13.2-1.1             Yes
cachyos-extra-v3/scdoc                                       1.11.4-1.1             Yes
extra/glaze                                                  6.1.0-1                Yes
extra/meson                                                  1.9.1-2                Yes
extra/python-build                                           1.3.0-1                Yes
extra/python-installer                                       0.7.0-10               Yes
extra/python-pyproject-hooks                                 1.2.0-3                Yes
extra/python-tqdm                                            4.67.1-2               Yes

Pkgbuilds (17)                       Old Version             New Version            Make Only
dot-hyprland/hyprutils-git           0.10.4.r2.g0168583-1    latest-commit          No
aur/hyprwayland-scanner-git          0.4.5.r2.gf6cf414-1     0.4.4.r2.g206367a-1    No
dot-hyprland/aquamarine-git          0.10.0.r0.ga20a0e6-1    latest-commit          No
aur/hyprland-protocols-git           0.7.0.r0.gbd153e7-1     0.6.4.r0.g3a5c2bd-1    No
aur/hyprlang-git                     0.6.6.r2.g3d66ec7-1     latest-commit          No
aur/hyprcursor-git                   0.1.13.r0.g44e91d4-1    0.1.12.r1.g2fd3642-1   No
aur/hyprgraphics-git                 0.4.0.r0.g8f1bec6-1     0.1.5.r2.g157cc52-1    No
aur/hyprtoolkit-git                  0.4.0.r0.ga8473c0-1     latest-commit          No
aur/hyprland-guiutils-git            0.1.0.r8.g763c94a-1     latest-commit          No
aur/hyprland-qt-support-git          0.1.0.r10.g9ef7f69-1    0.1.0.r8.g073c52b-1    No
aur/hyprpolkitagent-git              0.1.3.r0.g7e40544-1     0.1.2.r3.g352638e-1    No
aur/xdg-desktop-portal-gtk-git       1.15.3+4+g7fe3fd1-1     1.15.1+3+g25e828d-1    No
aur/xdg-desktop-portal-hyprland-git  1.3.11.r1.g4b88012-1    1.3.9.r5.gbe6771e-1    No
dot-hyprland/hyprland-git            0.52.0.r102.g7e1e24f-1  latest-commit          No
aur/oh-my-posh-bin                   27.6.0-1                28.0.0-1               No
aur/awww-git                         0.11.2.r126.g05f0e47-1  latest-commit          No
aur/waypaper-git                     2.7.r32.gfe7dc8b-1      latest-commit          No

:: Proceed with installation? [Y/n]: ^C/usr/bin/paru terminated by signal INT.

Don't cut parts of the input always include the FULL thing

paru.conf and pacman.conf are usually always relevant

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
Architecture = auto
CacheDir = /var/cache/pacman/pkg/
CheckSpace
Color
DownloadUser = alpm
HoldPkg      = pacman glibc
ILoveCandy
ParallelDownloads = 10
VerbosePkgLists

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

[options]
CacheDir = /var/lib/repo/aur
CleanMethod = KeepCurrent

[aur]
SigLevel = PackageOptional DatabaseOptional
Server = file:///var/lib/repo/aur

[cachyos-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos-core-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos-extra-v3]
Include = /etc/pacman.d/cachyos-v3-mirrorlist

[cachyos]
Include = /etc/pacman.d/cachyos-mirrorlist

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.

[core]
Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist
#
# $PARU_CONF
# /etc/paru.conf
# ~/.config/paru/paru.conf
#
# See the paru.conf(5) manpage for options

[options]
# Helps prevent partial installs
BatchInstall
# Show results bottom-up, like yay
BottomUp
# WARN: this currently exits with an error on PKGBUILD repos: https://github.com/Morganamilo/paru/issues/1234
# Removes untracked files from VCS packages, allowing updates to be a simple "git pull"
CleanAfter

# I like having a central CLI and am willing to deal with the issues that comes with.
# More often than not, this can be handled by upgrading with --repo first, then doing
# a full upgrade.
CombinedUpgrade
# Check -git packages during a system upgrade
Devel
DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil
# Exit immediately if any AUR package fails to build; do not continue
FailFast
NewsOnUpgrade
PgpFetch
Provides
SkipReview
SudoLoop
# Show upgrade list similar to pacman VerbosePkgLists
UpgradeMenu

Chroot
LocalRepo

# Add .hyprland PKGBUILD
[dot-hyprland]
Url = https://github.com/dablenparty/.hyprland.git
# default
Depth = 3
SkipReview
GenerateSrcinfo

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions