Morganamilo / paru

Feature packed AUR helper
GNU General Public License v3.0
5.92k stars 226 forks source link

"error: duplicate packages: pipewire-jack-git" when updating AUR packages #617

Open nyanpasu64 opened 2 years ago

nyanpasu64 commented 2 years ago

Affected Version

paru -V paru v1.9.2 - libalpm v13.0.1

Description

Have you checked previous issues? yes

Output

Include the FULL output of any relevant commands/configs

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

paru.conf and pacman.conf are usually always relevant

nyanpasu64@ryzen ~> paru --aur -Su
:: Looking for AUR upgrades
:: Looking for devel upgrades
16 aur/ocenaudio-bin                 3.11-1                    -> 3.11.1-1
15 aur/visual-studio-code-bin        1.62.3-1                  -> 1.63.0-1
14 aur/watchman-bin                  2021.10.18.00-1           -> 2021.12.06.00-1
13 aur/xfce4-docklike-plugin-ng-git  v0.3.0.r95.g3004bc3-1     -> 0.4.0.r0.ge683125-1
12 devel/alsa-card-profiles-git      0.3.40.93.gc20f22466-1    -> latest-commit
11 devel/appimagelauncher            2.2.0-5                   -> latest-commit
10 devel/bambootracker-git           0.5.0.r44.g0dc0767-1      -> latest-commit
 9 devel/gdb-git                     108358.b082698c5cb-1      -> latest-commit
 8 devel/heaptrack-git               1:1.2.80.r1161.g1a6d63a-1 -> latest-commit
 7 devel/libcamera-git               r3338.acf8d028-1          -> latest-commit
 6 devel/pipewire-alsa-git           0.3.40.93.gc20f22466-1    -> latest-commit
 5 devel/pipewire-git                0.3.40.93.gc20f22466-1    -> latest-commit
 4 devel/pipewire-jack-git           0.3.40.93.gc20f22466-1    -> latest-commit
 3 devel/pipewire-pulse-git          0.3.40.93.gc20f22466-1    -> latest-commit
 2 devel/rr-git                      5.5.0.r42.g74d03e8d-1     -> latest-commit
 1 devel/wireplumber-git             0.4.5.r24.ga452250-1      -> latest-commit
:: Packages to exclude (eg: 1 2 3, 1-3):
:: 
:: Resolving dependencies...
error: duplicate packages: pipewire-jack-git

paru-conf.zip

Debugging

I spent a day debugging this issue (whew) and eventually traced the problem to aur-depends. I vendored aur-depends and added a print to aur_depends::resolve::Resolver::push_build():

    fn push_build(&mut self, pkgbase: &str, pkg: AurPackage) {
        eprintln!("pushing {:?} {} -> {}", self.stack, pkg.pkg.package_base, pkg.pkg.name);
        ...

I think pkgbase refers to the package being built, and pkg.pkg.name refers to the build artifact which gets installed (the pipewire-git PKGBUILD generates many binary packages). I think Resolver::actions.build is a vector where each Base element holds a vectors of packages with a common PKGBUILD and pkg.package_base (the base package whose pkg.name == pkg.package_base may be first, not first, or completely absent), excluding packages supplied by the PKGBUILD but not to be installed (eg. pipewire-ffmpeg-git never gets pushed to build[]).

Suggestion: Why not remove the pkgbase parameter and use pkg.pkg.package_base instead? push_build gets called exactly twice, and in both cases pkg.pkg is a clone of the package pkgbase is extracted from.

The output is:

pushing ["ocenaudio-bin", "pipewire-jack-git"] libcamera-git -> libcamera-git
pushing ["ocenaudio-bin", "pipewire-jack-git", "wireplumber-git", "pipewire-git"] pipewire-git -> alsa-card-profiles-git
pushing ["ocenaudio-bin", "pipewire-jack-git", "wireplumber-git"] pipewire-git -> pipewire-git
pushing ["ocenaudio-bin", "pipewire-jack-git", "wireplumber-git"] pipewire-git -> pipewire-alsa-git
pushing ["ocenaudio-bin", "pipewire-jack-git", "wireplumber-git"] pipewire-git -> pipewire-jack-git
pushing ["ocenaudio-bin", "pipewire-jack-git", "wireplumber-git"] pipewire-git -> pipewire-pulse-git
pushing ["ocenaudio-bin", "pipewire-jack-git"] wireplumber-git -> wireplumber-git
pushing ["ocenaudio-bin"] pipewire-git -> pipewire-jack-git
pushing [] ocenaudio-bin -> ocenaudio-bin
pushing [] visual-studio-code-bin -> visual-studio-code-bin
pushing [] watchman-bin -> watchman-bin
pushing [] xfce4-docklike-plugin-ng-git -> xfce4-docklike-plugin-ng-git
pushing [] appimagelauncher -> appimagelauncher
pushing [] bambootracker-git -> bambootracker-git
pushing [] gdb-git -> gdb-git
pushing [] heaptrack-git -> heaptrack-git
pushing [] rr-git -> rr-git

Looking at package dependencies:

Name            : ocenaudio-bin
Depends On      : hicolor-icon-theme  jack  libpulse  qt5-base

jack resolves to pipewire-jack-git which is installed. Since it's an outdated AUR package, it's pushed to the build list.

Name            : pipewire-jack-git
Depends On      : pipewire-session-manager  libpipewire-0.3.so=0-64

pipewire-session-manager resolves to wireplumber-git which is installed. Since it's an outdated AUR package, it's pushed to the build list.

Name            : wireplumber-git
Depends On      : gcc-libs  glibc  lua  libgio-2.0.so=0-64  libglib-2.0.so=0-64
                  libgmodule-2.0.so=0-64  libgobject-2.0.so=0-64  libpipewire-0.3.so=0-64

libpipewire-0.3.so=0-64 resolves to pipewire-git which is installed. Since it's an outdated AUR package, it's pushed to the build list.

Why does wireplumber-git call push_build on pipewire-jack-git as well? I think it's because pipewire-git also supplies pipewire-jack-git, which should be upgraded since it's installed but outdated.

For some reason, aur-depends performs a postorder traversal and calls resolve_aur_pkg_deps (recursively trace dependencies) before push_build (add package to build list). (I'm not sure if this results in a topological sort or not; I've forgotten the algorithms.) So ocenaudio-bin pushes pipewire-jack-git after wireplumber-git pushes pipewire-git and pipewire-jack-git.

At the end, paru::install::check_actions() complains about duplicate packages being installed:

https://github.com/Morganamilo/paru/blob/dbf5d8afb694a87b24318742ab2ef554b07f09bd/src/install.rs#L971-L981

Bug

The problem is that aur-depends fails to deduplicate packages being pushed to a given Base to be built. I'd either add a check that we don't push duplicate items into a Base (linearly scanning Base::pkgs is fast since the Vec is short, since most PKGBUILD don't produce a thousand packages which all get built and installed), or replace Vec with HashSet or BTreeSet such. (Is it a problem if the package order within a PKGBUILD changes from the current algorithm?)

If you're interested I have a pernosco debugging trace of this bug (link). It might've helped me learn the code (not sure), but I ended up figuring out the bug by adding a print statement (not by using Pernosco).

Suggestions

Is there architectural documentation?

nyanpasu64 commented 2 years ago

I was writing some code to deduplicate packages pushed into a Base. What should be done if we try to push an AurPackage with the same Package::pkg.name (and probably the same Arc::as_ptr(Package::pkg.0)), but different Package::make and Package::target fields?

Morganamilo commented 2 years ago

Hey this is very detailed thanks. Can't examine it too hard right how as I'm not home.

PARU_DEBUG=1 for debug. Additionally PAUR_ALPM_DEBUG=0 if you're not interested in the alpm side.

Also no hashmaps as there's been some issues with non determinism.

The duplicate package error is not for programmer error. It's for if you have two of the same package in the tree which can happen.

Morganamilo commented 2 years ago

Can you reproduce this with a specific package? Presumably if you -S one of the to be upgraded packages it should cause it.

Morganamilo commented 2 years ago

Also do you use local repos?

nyanpasu64 commented 2 years ago

I can't reproduce the bug now.

> cargo run -- --aur -Syu jack-rack --assume-installed hotdoc
    Finished dev [unoptimized + debuginfo] target(s) in 0.07s
     Running `target/debug/paru --aur -Syu jack-rack --assume-installed hotdoc`
:: Looking for AUR upgrades
:: Looking for devel upgrades
:: Resolving dependencies...
pushing [] jack-rack -> jack-rack
pushing [] python-agate -> python-agate
pushing [] python-crate -> python-crate
pushing [] python-dbfread -> python-dbfread
pushing [] xfce4-docklike-plugin-ng-git -> xfce4-docklike-plugin-ng-git
pushing [] youtubedr -> youtubedr
pushing ["alsa-card-profiles-git"] libcamera-git -> libcamera-git
pushing [] pipewire-git -> alsa-card-profiles-git
pushing [] gdb-git -> gdb-git
pushing ["pipewire-alsa-git", "wireplumber-git"] pipewire-git -> pipewire-git
pushing ["pipewire-alsa-git", "wireplumber-git"] pipewire-git -> pipewire-alsa-git
pushing ["pipewire-alsa-git", "wireplumber-git"] pipewire-git -> pipewire-jack-git
pushing ["pipewire-alsa-git", "wireplumber-git"] pipewire-git -> pipewire-pulse-git
pushing ["pipewire-alsa-git"] wireplumber-git -> wireplumber-git
pushing [] rr-git -> rr-git
pushing [] wlroots-eglstreams-git -> wlroots-eglstreams-git
:: Calculating conflicts...
:: Calculating inner conflicts...

I'm not sure why installing jack-rack doesn't directly rebuild pipewire-jack-git. However, uninstalling ocenaudio-bin and running cargo run -- --aur -Su ocenaudio-bin reproduces the bug for me.

Also do you use local repos?

No, what's that?

Morganamilo commented 2 years ago

Local repos are just well local pacman repos.

Anyway is that output from when you couldn't reproduce it? The output of it happening with debug output enabled would be useful.

nyanpasu64 commented 2 years ago

Anyway is that output from when you couldn't reproduce it?

Yes.

The output of it happening with debug output enabled would be useful.

bug.txt: PARU_DEBUG=1 PAUR_ALPM_DEBUG=0 cargo run -- --aur -Su ocenaudio-bin 2>bug.txt

no-bug.txt: PARU_DEBUG=1 PAUR_ALPM_DEBUG=0 cargo run -- --aur -Su jack-rack 2>no-bug.txt

Both files contain my pushing messages as well as debug messages.

sukanka commented 2 years ago

I have a similar problem. When I run paru -S r-cli or paru -S r-glue, I get the error message

:: Resolving dependencies...
error: duplicate packages: r-processx
Morganamilo commented 2 years ago

If you could post the full output with PARU_DEBUG=1 that should help track it down.

sukanka commented 2 years ago

Here is the full output. paru_debug.log

RubenKelevra commented 2 years ago

@Morganamilo here's another example:

python-sanic was added to chaos-aur, which lead paru to complain on a simple paru -Syu:

```console $ paru -Syu no new news :: Synchronizing package databases... core is up to date extra 1765.1 KiB 1225 KiB/s 00:01 [----------------------------------------------------] 100% community is up to date multilib is up to date endeavouros is up to date chaotic-aur 2019.4 KiB 487 KiB/s 00:04 [----------------------------------------------------] 100% aur-chroot-builds is up to date core-debug is up to date extra-debug 376.4 KiB 358 KiB/s 00:01 [----------------------------------------------------] 100% community-debug is up to date multilib-debug is up to date :: Looking for AUR upgrades... :: Looking for devel upgrades... :: libva-intel-driver: local (2.4.1-2.1) is newer than extra (2.4.1-2) 234 core/device-mapper 2.03.16-1 -> 2.03.16-2 233 core/glibc 2.36-1 -> 2.36-2 232 core/gpgme 1.17.1-1 -> 1.18.0-1 231 core/lib32-glibc 2.36-1 -> 2.36-2 230 core/libinih 55-2 -> 56-1 229 core/libnftnl 1.2.2-1 -> 1.2.3-1 228 core/libtirpc 1.3.2-1 -> 1.3.3-1 227 core/linux 5.18.16.arch1-1 -> 5.19.1.arch2-1 226 core/linux-headers 5.18.16.arch1-1 -> 5.19.1.arch2-1 225 core/lvm2 2.03.16-1 -> 2.03.16-2 224 core/nfs-utils 2.6.1-1 -> 2.6.2-1 223 core/nfsidmap 2.6.1-1 -> 2.6.2-1 222 core/python 3.10.5-2 -> 3.10.6-1 221 core/python-gpgme 1.17.1-1 -> 1.18.0-1 220 core/qgpgme 1.17.1-1 -> 1.18.0-1 219 core/sqlite 3.39.2-1 -> 3.39.2-2 218 core/tzdata 2022a-1 -> 2022b-1 217 core/xz 5.2.5-3 -> 5.2.6-1 216 extra/attica 5.96.0-1 -> 5.97.0-1 215 extra/baloo 5.96.0-1 -> 5.97.0-1 214 extra/bluez 5.65-1 -> 5.65-2 213 extra/bluez-libs 5.65-1 -> 5.65-2 212 extra/bluez-qt 5.96.0-1 -> 5.97.0-1 211 extra/breeze-icons 5.96.0-1 -> 5.97.0-1 210 extra/calligra 3.2.1-34 -> 3.2.1-35 209 extra/cifs-utils 6.15-1 -> 7.0-1 208 extra/cmake 3.23.3-1 -> 3.24.0-1 207 extra/dhclient 4.4.3-1 -> 4.4.3-3 206 extra/frameworkintegration 5.96.0-1 -> 5.97.0-1 205 extra/gcr 3.41.1-1 -> 3.41.1-2 204 extra/git 2.37.1-1 -> 2.37.2-1 203 extra/gsasl 1.10.0-1 -> 2.0.0-1 202 extra/inkscape 1.2.1-1 -> 1.2.1-2 201 extra/kactivities 5.96.0-1 -> 5.97.0-1 200 extra/kactivities-stats 5.96.0-1 -> 5.97.0-1 199 extra/karchive 5.96.0-1 -> 5.97.0-1 198 extra/kauth 5.96.0-1 -> 5.97.0-1 197 extra/kbookmarks 5.96.0-1 -> 5.97.0-1 196 extra/kcalendarcore 5.96.0-1 -> 5.97.0-1 195 extra/kcmutils 5.96.0-1 -> 5.97.0-1 194 extra/kcodecs 5.96.0-1 -> 5.97.0-1 193 extra/kcompletion 5.96.0-1 -> 5.97.0-1 192 extra/kconfig 5.96.0-1 -> 5.97.0-1 191 extra/kconfigwidgets 5.96.0-1 -> 5.97.0-1 190 extra/kcontacts 1:5.96.0-1 -> 1:5.97.0-1 189 extra/kcoreaddons 5.96.0-1 -> 5.97.0-1 188 extra/kcrash 5.96.0-1 -> 5.97.0-1 187 extra/kdav 1:5.96.0-1 -> 1:5.97.0-1 186 extra/kdbusaddons 5.96.0-1 -> 5.97.0-1 185 extra/kdeclarative 5.96.0-1 -> 5.97.0-1 184 extra/kded 5.96.0-1 -> 5.97.0-1 183 extra/kdelibs4support 5.96.0-1 -> 5.97.0-1 182 extra/kdesu 5.96.0-1 -> 5.97.0-1 181 extra/kdewebkit 5.96.0-1 -> 5.97.0-1 180 extra/kdnssd 5.96.0-1 -> 5.97.0-1 179 extra/kdoctools 5.96.0-1 -> 5.97.0-1 178 extra/kemoticons 5.96.0-1 -> 5.97.0-1 177 extra/kfilemetadata 5.96.0-1 -> 5.97.0-1 176 extra/kglobalaccel 5.96.0-1 -> 5.97.0-1 175 extra/kguiaddons 5.96.0-1 -> 5.97.0-1 174 extra/kholidays 1:5.96.0-1 -> 1:5.97.0-1 173 extra/khtml 5.96.0-1 -> 5.97.0-1 172 extra/ki18n 5.96.0-1 -> 5.97.0-1 171 extra/kiconthemes 5.96.0-1 -> 5.97.0-1 170 extra/kidletime 5.96.0-1 -> 5.97.0-1 169 extra/kinit 5.96.0-1 -> 5.97.0-1 168 extra/kio 5.96.0-1 -> 5.97.0-1 167 extra/kirigami2 5.96.0-1 -> 5.97.0-1 166 extra/kitemmodels 5.96.0-1 -> 5.97.0-1 165 extra/kitemviews 5.96.0-1 -> 5.97.0-1 164 extra/kitinerary 22.04.3-2 -> 22.04.3-3 163 extra/kjobwidgets 5.96.0-1 -> 5.97.0-1 162 extra/kjs 5.96.0-1 -> 5.97.0-1 161 extra/knewstuff 5.96.0-1 -> 5.97.0-1 160 extra/knotifications 5.96.0-1 -> 5.97.0-1 159 extra/knotifyconfig 5.96.0-1 -> 5.97.0-1 158 extra/kpackage 5.96.0-1 -> 5.97.0-1 157 extra/kparts 5.96.0-1 -> 5.97.0-1 156 extra/kpeople 5.96.0-1 -> 5.97.0-1 155 extra/kplotting 5.96.0-1 -> 5.97.0-1 154 extra/kpty 5.96.0-1 -> 5.97.0-1 153 extra/kquickcharts 5.96.0-1 -> 5.97.0-1 152 extra/kross 5.96.0-1 -> 5.97.0-1 151 extra/krunner 5.96.0-1 -> 5.97.0-1 150 extra/kservice 5.96.0-1 -> 5.97.0-1 149 extra/ktexteditor 5.96.0-1 -> 5.97.0-1 148 extra/ktextwidgets 5.96.0-1 -> 5.97.0-1 147 extra/kunitconversion 5.96.0-1 -> 5.97.0-1 146 extra/kwallet 5.96.0-1 -> 5.97.0-1 145 extra/kwayland 5.96.0-1 -> 5.97.0-1 144 extra/kwidgetsaddons 5.96.0-1 -> 5.97.0-1 143 extra/kwindowsystem 5.96.0-1 -> 5.97.0-1 142 extra/kxmlgui 5.96.0-1 -> 5.97.0-1 141 extra/libreoffice-fresh 7.3.5-1 -> 7.3.5-3 140 extra/libva 2.15.0-1 -> 2.15.0-2 139 extra/meld 3.21.2-1 -> 3.21.3-2 138 extra/modemmanager-qt 5.96.0-1 -> 5.97.0-1 137 extra/msmtp 1.8.22-1 -> 1.8.22-2 136 extra/msmtp-mta 1.8.22-1 -> 1.8.22-2 135 extra/networkmanager-qt 5.96.0-1 -> 5.97.0-1 134 extra/nftables 1:1.0.4-1 -> 1:1.0.5-1 133 extra/plasma-framework 5.96.0-1 -> 5.97.0-1 132 extra/poppler 22.07.0-1 -> 22.08.0-1 131 extra/poppler-glib 22.07.0-1 -> 22.08.0-1 130 extra/poppler-qt5 22.07.0-1 -> 22.08.0-1 129 extra/poppler-qt6 22.07.0-1 -> 22.08.0-1 128 extra/prison 5.96.0-2 -> 5.97.0-1 127 extra/purpose 5.96.0-1 -> 5.97.0-1 126 extra/python-setuptools 1:61.3.1-1 -> 1:62.1.0-1 125 extra/python-urllib3 1.26.10-1 -> 1.26.11-1 124 extra/qemu-audio-alsa 7.0.0-10 -> 7.0.0-12 123 extra/qemu-audio-dbus 7.0.0-10 -> 7.0.0-12 122 extra/qemu-audio-jack 7.0.0-10 -> 7.0.0-12 121 extra/qemu-audio-oss 7.0.0-10 -> 7.0.0-12 120 extra/qemu-audio-pa 7.0.0-10 -> 7.0.0-12 119 extra/qemu-audio-sdl 7.0.0-10 -> 7.0.0-12 118 extra/qemu-audio-spice 7.0.0-10 -> 7.0.0-12 117 extra/qemu-block-curl 7.0.0-10 -> 7.0.0-12 116 extra/qemu-block-dmg 7.0.0-10 -> 7.0.0-12 115 extra/qemu-block-gluster 7.0.0-10 -> 7.0.0-12 114 extra/qemu-block-iscsi 7.0.0-10 -> 7.0.0-12 113 extra/qemu-block-nfs 7.0.0-10 -> 7.0.0-12 112 extra/qemu-block-ssh 7.0.0-10 -> 7.0.0-12 111 extra/qemu-chardev-baum 7.0.0-10 -> 7.0.0-12 110 extra/qemu-chardev-spice 7.0.0-10 -> 7.0.0-12 109 extra/qemu-common 7.0.0-10 -> 7.0.0-12 108 extra/qemu-desktop 7.0.0-10 -> 7.0.0-12 107 extra/qemu-emulators-full 7.0.0-10 -> 7.0.0-12 106 extra/qemu-hw-display-qxl 7.0.0-10 -> 7.0.0-12 105 extra/qemu-hw-display-virtio-gpu 7.0.0-10 -> 7.0.0-12 104 extra/qemu-hw-display-virtio-gpu-gl 7.0.0-10 -> 7.0.0-12 103 extra/qemu-hw-display-virtio-gpu-pci 7.0.0-10 -> 7.0.0-12 102 extra/qemu-hw-display-virtio-gpu-pci-gl 7.0.0-10 -> 7.0.0-12 101 extra/qemu-hw-display-virtio-vga 7.0.0-10 -> 7.0.0-12 100 extra/qemu-hw-display-virtio-vga-gl 7.0.0-10 -> 7.0.0-12 99 extra/qemu-hw-s390x-virtio-gpu-ccw 7.0.0-10 -> 7.0.0-12 98 extra/qemu-hw-usb-host 7.0.0-10 -> 7.0.0-12 97 extra/qemu-hw-usb-redirect 7.0.0-10 -> 7.0.0-12 96 extra/qemu-hw-usb-smartcard 7.0.0-10 -> 7.0.0-12 95 extra/qemu-img 7.0.0-10 -> 7.0.0-12 94 extra/qemu-pr-helper 7.0.0-10 -> 7.0.0-12 93 extra/qemu-system-aarch64 7.0.0-10 -> 7.0.0-12 92 extra/qemu-system-alpha 7.0.0-10 -> 7.0.0-12 91 extra/qemu-system-arm 7.0.0-10 -> 7.0.0-12 90 extra/qemu-system-avr 7.0.0-10 -> 7.0.0-12 89 extra/qemu-system-cris 7.0.0-10 -> 7.0.0-12 88 extra/qemu-system-hppa 7.0.0-10 -> 7.0.0-12 87 extra/qemu-system-m68k 7.0.0-10 -> 7.0.0-12 86 extra/qemu-system-microblaze 7.0.0-10 -> 7.0.0-12 85 extra/qemu-system-mips 7.0.0-10 -> 7.0.0-12 84 extra/qemu-system-nios2 7.0.0-10 -> 7.0.0-12 83 extra/qemu-system-or1k 7.0.0-10 -> 7.0.0-12 82 extra/qemu-system-ppc 7.0.0-10 -> 7.0.0-12 81 extra/qemu-system-riscv 7.0.0-10 -> 7.0.0-12 80 extra/qemu-system-rx 7.0.0-10 -> 7.0.0-12 79 extra/qemu-system-s390x 7.0.0-10 -> 7.0.0-12 78 extra/qemu-system-sh4 7.0.0-10 -> 7.0.0-12 77 extra/qemu-system-sparc 7.0.0-10 -> 7.0.0-12 76 extra/qemu-system-tricore 7.0.0-10 -> 7.0.0-12 75 extra/qemu-system-x86 7.0.0-10 -> 7.0.0-12 74 extra/qemu-system-xtensa 7.0.0-10 -> 7.0.0-12 73 extra/qemu-tests 7.0.0-10 -> 7.0.0-12 72 extra/qemu-tools 7.0.0-10 -> 7.0.0-12 71 extra/qemu-ui-curses 7.0.0-10 -> 7.0.0-12 70 extra/qemu-ui-dbus 7.0.0-10 -> 7.0.0-12 69 extra/qemu-ui-egl-headless 7.0.0-10 -> 7.0.0-12 68 extra/qemu-ui-gtk 7.0.0-10 -> 7.0.0-12 67 extra/qemu-ui-opengl 7.0.0-10 -> 7.0.0-12 66 extra/qemu-ui-sdl 7.0.0-10 -> 7.0.0-12 65 extra/qemu-ui-spice-app 7.0.0-10 -> 7.0.0-12 64 extra/qemu-ui-spice-core 7.0.0-10 -> 7.0.0-12 63 extra/qemu-user 7.0.0-10 -> 7.0.0-12 62 extra/qemu-vhost-user-gpu 7.0.0-10 -> 7.0.0-12 61 extra/qemu-virtiofsd 7.0.0-10 -> 7.0.0-12 60 extra/qqc2-desktop-style 5.96.0-1 -> 5.97.0-1 59 extra/rsync 3.2.5pre2-1 -> 3.2.5-2 58 extra/solid 5.96.0-1 -> 5.97.0-1 57 extra/sonnet 5.96.0-1 -> 5.97.0-1 56 extra/strace 5.18-1 -> 5.19-1 55 extra/syndication 5.96.0-1 -> 5.97.0-1 54 extra/syntax-highlighting 5.96.0-1 -> 5.97.0-1 53 extra/threadweaver 5.96.0-1 -> 5.97.0-1 52 extra/wireplumber 0.4.11-3 -> 0.4.11-4 51 extra/xdg-desktop-portal 1.14.6-1 -> 1.15.0-1 50 extra/xorgproto 2022.1-1 -> 2022.2-1 49 community/chafa 1.12.0-1 -> 1.12.1-1 48 community/deepin-draw 5.8.0.22-4 -> 5.10.6-1 47 community/drumstick 2.7.0-1 -> 2.7.1-1 46 community/faudio 22.07-1 -> 22.08-1 45 community/freecad 0.20.1-1 -> 0.20.1-2 44 community/gdal 3.5.1-1 -> 3.5.1-2 43 community/haskell-regex-tdfa 1.3.1.4-3 -> 1.3.1.5-1 42 community/hedgewars 1.0.0-308 -> 1.0.0-309 41 community/hwinfo 22.0-1 -> 22.1-1 40 community/iperf 2.1.7-1 -> 2.1.8-1 39 community/libharu 2.3.0-5 -> 2.4.0-1 38 community/lilv 0.24.14-2 -> 0.24.18-1 37 community/lv2 1.18.6-1 -> 1.18.8-1 36 community/mda.lv2 1.2.6-1 -> 1.2.10-1 35 community/nlohmann-json 3.11.1-1 -> 3.11.2-1 34 community/python-asttokens 2.0.5-2 -> 2.0.8-1 33 community/python-executing 0.9.1-1 -> 0.10.0-1 32 community/python-fonttools 4.34.4-1 -> 4.35.0-1 31 community/python-jaraco.text 3.8.1-1 -> 3.9.0-1 30 community/python-pydantic 1.9.1-2 -> 1.9.2-1 29 community/python-pyee 9.0.3-1 -> 9.0.4-1 28 community/python-pytools 2022.1.8-1 -> 2022.1.9-1 27 community/python-setproctitle 1.2.3-1 -> 1.3.1-1 26 community/python-stack-data 0.3.0-1 -> 0.4.0-1 25 community/python-tomlkit 0.11.3-1 -> 0.11.4-1 24 community/python-typing_extensions 4.2.0-1 -> 4.3.0-1 23 community/shellcheck 0.8.0-154 -> 0.8.0-157 22 community/suil 0.10.12-2 -> 0.10.16-2 21 community/tensorboard 2.9.1-2 -> 2.10.0-1 20 community/vivaldi 5.4.2753.28-1 -> 5.4.2753.33-1 19 multilib/lib32-faudio 22.07-1 -> 22.08-1 18 multilib/lib32-libva 2.15.0-1 -> 2.15.0-2 17 multilib/lib32-sqlite 3.39.0-1 -> 3.39.2-2 16 multilib/wine 7.14-1 -> 7.15-1 15 chaotic-aur/ffmpeg-git 5.2.r107767.g7158f1e64d-1 -> 5.2.r107804.gaa9eabb7a5-1 14 chaotic-aur/firefox-nightly 105.0a1+20220812.1+h154884e84ec9-1 -> 105.0a1+20220816.1+h52232c1ea77d-1 13 chaotic-aur/glslang-git 11.10.0.r30.gf771c129-1 -> 11.11.0.r2.g10423ec6-1 12 chaotic-aur/linux-mainline 5.19-1 -> 6.0rc1-1 11 chaotic-aur/linux-mainline-headers 5.19-1 -> 6.0rc1-1 10 chaotic-aur/mpv-full-git 0.34.1.r407.ga3b2d3f930-1 -> 0.34.1.r418.g8e9c5b7b66-1 9 chaotic-aur/python-sanic 22.3.2-1 -> 22.6.2-1 8 chaotic-aur/seafile 8.0.7-1 -> 8.0.8-1 7 chaotic-aur/seafile-client 8.0.7-1 -> 8.0.8-1 6 chaotic-aur/yuzu-early-access 2897-1 -> 2905-1 5 extra-debug/kwindowsystem-debug 5.96.0-1 -> 5.97.0-1 4 aur-chroot-builds/freetube-bin 0.17.0-1 -> 0.17.1-1 3 aur-chroot-builds/pandoc-bin 2.18-1 -> 2.19-1 2 aur-chroot-builds/python-sanic 22.3.2-1 -> 22.6.2-1 1 aur-chroot-builds-devel/appimagelauncher 2.2.0-6 -> latest-commit :: Packages to exclude (eg: 1 2 3, 1-3): :: :: Resolving dependencies... error: duplicate packages: python-sanic ```

Paru.conf

=> paru uses system-config file: /etc/paru.conf
[options]
PgpFetch
Devel
Provides
DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil
BottomUp
RemoveMake
SudoLoop
UseAsk
CombinedUpgrade
UpgradeMenu
NewsOnUpgrade
SkipReview
KeepSrc
FailFast
LocalRepo
Chroot = /var/lib/paru/aur_chroot
[bin]
FileManager = nnn

Pacman.conf

[options]
HoldPkg     = pacman glibc
Architecture = auto
IgnorePkg = python2 jre libva-intel-driver jre11-openjdk jdk11-openjdk jre8-adoptopenjdk jdk8-adoptopenjdk jre11-openjdk-headless jre8-adoptopenjdk-headless ttf-google-fonts-git
NoExtract   = usr/lib/firefox/fonts/TwemojiMozilla.ttf
Color
ILoveCandy
CheckSpace
VerbosePkgLists
DisableDownloadTimeout
ParallelDownloads = 4
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[community]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[endeavouros]
SigLevel = PackageRequired
Include = /etc/pacman.d/endeavouros-mirrorlist
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
[aur-chroot-builds]
SigLevel = PackageOptional DatabaseOptional
Server = file:///var/lib/paru/aur_chroot
[core-debug]
Include = /etc/pacman.d/mirrorlist_debug
[extra-debug]
Include = /etc/pacman.d/mirrorlist_debug
[community-debug]
Include = /etc/pacman.d/mirrorlist_debug
[multilib-debug]
Include = /etc/pacman.d/mirrorlist_debug

I can confirm this for paru v1.11.1 - libalpm v13.0.1

Morganamilo commented 1 year ago

I've reproduced this in the past but now I'm trying to fiix it, I can't get it to show up. A lot of the code has changed too so many it got fixed.

pekkarr commented 1 year ago

I got the same error when trying to upgrade r-openssl: error: duplicate packages: r-openssl (this isn't reproducible anymore, see note at the end)

``` $ LC_ALL=C PARU_DEBUG=1 paru debug: starting new connection: https://archlinux.org/ debug: redirecting 'https://archlinux.org/feeds/news' to 'https://archlinux.org/feeds/news/' debug: response '200 OK' for https://archlinux.org/feeds/news/ debug: loading package cache for repository 'local' debug: added 1711 packages to package cache for db 'local' no new news debug: unregistering database 'local' debug: freeing package cache for repository 'local' debug: unregistering database 'core' debug: unregistering database 'extra' debug: unregistering database 'community' debug: unregistering database 'local-aur' :: Looking for AUR upgrades... debug: loading package cache for repository 'local-aur' debug: opening archive /var/lib/pacman/sync/local-aur.db debug: added 205 packages to package cache for db 'local-aur' debug: starting new connection: https://aur.archlinux.org/ :: Looking for devel upgrades... debug: loading package cache for repository 'local' debug: added 1711 packages to package cache for db 'local' debug: response '200 OK' for https://aur.archlinux.org/rpc?[redacted] debug: response '200 OK' for https://aur.archlinux.org/rpc?[redacted] debug: response '200 OK' for https://aur.archlinux.org/rpc?[redacted] 1 local-aur/r-openssl 2.0.4-1 -> 2.0.5-1 :: Packages to exclude (eg: 1 2 3, 1-3): :: :: Resolving dependencies... debug: cache args: ["r-openssl"] debug: trying to cache ["r-openssl"] debug: loading package cache for repository 'core' debug: opening archive /var/lib/pacman/sync/core.db debug: added 261 packages to package cache for db 'core' debug: loading package cache for repository 'extra' debug: opening archive /var/lib/pacman/sync/extra.db debug: added 3082 packages to package cache for db 'extra' debug: loading package cache for repository 'community' debug: opening archive /var/lib/pacman/sync/community.db debug: added 9806 packages to package cache for db 'community' debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r-askpass is satisfied so skipping: local=true repo=true resolved=false debug: openssl is satisfied so skipping: local=true repo=true resolved=false debug: r-testthat>=2.1.0, is satisfied so skipping: local=true repo=true resolved=false debug: texlive-bin is satisfied so skipping: local=true repo=true resolved=false debug: response '200 OK' for https://aur.archlinux.org/rpc?arg%5B%5D=r-jose&arg%5B%5D=r-sodium&arg%5B%5D=r-usethis&v=5&type=info debug: provides resolved ["r-jose", "r-sodium", "r-usethis"] found ["r-jose", "r-sodium", "r-usethis"] debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r-jsonlite is satisfied so skipping: local=true repo=true resolved=false debug: r-openssl>=1.2.1 is satisfied so skipping: local=true repo=true resolved=false debug: libsodium is satisfied so skipping: local=true repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r-cli is satisfied so skipping: local=true repo=true resolved=false debug: r-crayon is satisfied so skipping: local=true repo=true resolved=false debug: r-curl is satisfied so skipping: local=true repo=true resolved=false debug: r-desc is satisfied so skipping: local=true repo=true resolved=false debug: r-fs is satisfied so skipping: local=true repo=true resolved=false debug: r-glue is satisfied so skipping: local=true repo=true resolved=false debug: r-jsonlite is satisfied so skipping: local=true repo=true resolved=false debug: r-lifecycle is satisfied so skipping: local=true repo=true resolved=false debug: r-purrr is satisfied so skipping: local=true repo=true resolved=false debug: r-rappdirs is satisfied so skipping: local=true repo=true resolved=false debug: r-rlang is satisfied so skipping: local=true repo=true resolved=false debug: r-rprojroot is satisfied so skipping: local=true repo=true resolved=false debug: r-rstudioapi is satisfied so skipping: local=true repo=true resolved=false debug: r-withr is satisfied so skipping: local=true repo=true resolved=false debug: r-yaml is satisfied so skipping: local=true repo=true resolved=false debug: response '200 OK' for https://aur.archlinux.org/rpc?arg%5B%5D=r-clipr&arg%5B%5D=r-gert&arg%5B%5D=r-gh&arg%5B%5D=r-whisker&v=5&type=info debug: provides resolved ["r-clipr", "r-gert", "r-gh", "r-whisker"] found ["r-clipr", "r-gert", "r-gh", "r-whisker"] debug: r is satisfied so skipping: local=true repo=true resolved=false debug: xclip is satisfied so skipping: local=true repo=true resolved=false debug: returning error 33 from alpm_db_get_pkg (../lib/libalpm/db.c: 248) : could not find or read package debug: xsel is satisfied so skipping: local=false repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r-askpass is satisfied so skipping: local=true repo=true resolved=false debug: r-openssl is satisfied so skipping: local=true repo=true resolved=false debug: r-rstudioapi is satisfied so skipping: local=true repo=true resolved=false debug: r-sys is satisfied so skipping: local=true repo=true resolved=false debug: libgit2 is satisfied so skipping: local=true repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r-cli is satisfied so skipping: local=true repo=true resolved=false debug: r-httr is satisfied so skipping: local=true repo=true resolved=false debug: r-jsonlite is satisfied so skipping: local=true repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: response '200 OK' for https://aur.archlinux.org/rpc?arg%5B%5D=r-credentials&arg%5B%5D=r-gitcreds&arg%5B%5D=r-ini&arg%5B%5D=r-zip&v=5&type=info debug: provides resolved ["r-credentials", "r-zip", "r-gitcreds", "r-ini"] found ["r-credentials", "r-gitcreds", "r-ini", "r-zip"] debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r-askpass is satisfied so skipping: local=true repo=true resolved=false debug: r-curl is satisfied so skipping: local=true repo=true resolved=false debug: r-jsonlite is satisfied so skipping: local=true repo=true resolved=false debug: r-openssl is satisfied so skipping: local=true repo=true resolved=false debug: r-sys is satisfied so skipping: local=true repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: git is satisfied so skipping: local=true repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: r is satisfied so skipping: local=true repo=true resolved=false debug: Caching done, building tree debug: targets: ["r-openssl"] debug: select satisfier: r-openssl debug: no provider callback debug: resolve aur pkg deps: r-openssl debug: depend: r-jose debug: select satisfier: r-jose debug: no provider callback debug: resolve aur pkg deps: r-jose debug: depend: r debug: depend: r-jsonlite debug: depend: r-openssl>=1.2.1 debug: select satisfier: r-openssl>=1.2.1 debug: no provider callback debug: resolve aur pkg deps: r-openssl debug: depend: r-jose debug: depend: r-sodium debug: select satisfier: r-sodium debug: no provider callback debug: resolve aur pkg deps: r-sodium debug: depend: libsodium debug: depend: r debug: pushing to build: r-sodium debug: depend: r-testthat>=2.1.0, debug: depend: r-usethis debug: select satisfier: r-usethis debug: no provider callback debug: resolve aur pkg deps: r-usethis debug: depend: r debug: depend: r-cli debug: depend: r-clipr debug: select satisfier: r-clipr debug: no provider callback debug: resolve aur pkg deps: r-clipr debug: depend: r debug: depend: xclip debug: depend: xsel debug: returning error 33 from alpm_db_get_pkg (../lib/libalpm/db.c: 248) : could not find or read package debug: pushing to install: xsel debug: pushing to build: r-clipr debug: depend: r-crayon debug: depend: r-curl debug: depend: r-desc debug: depend: r-fs debug: depend: r-gert debug: select satisfier: r-gert debug: no provider callback debug: resolve aur pkg deps: r-gert debug: depend: r debug: depend: r-askpass debug: depend: r-credentials debug: select satisfier: r-credentials debug: no provider callback debug: resolve aur pkg deps: r-credentials debug: depend: r debug: depend: r-askpass debug: depend: r-curl debug: depend: r-jsonlite debug: depend: r-openssl debug: select satisfier: r-openssl debug: no provider callback debug: resolve aur pkg deps: r-openssl debug: depend: r-jose debug: depend: r-sodium debug: depend: r-testthat>=2.1.0, debug: depend: r-usethis debug: depend: texlive-bin debug: depend: r debug: depend: r-askpass debug: depend: openssl debug: pushing to build: r-openssl debug: depend: r-sys debug: pushing to build: r-credentials debug: depend: r-openssl debug: depend: r-rstudioapi debug: depend: r-sys debug: depend: r-zip debug: select satisfier: r-zip debug: no provider callback debug: resolve aur pkg deps: r-zip debug: depend: r debug: pushing to build: r-zip debug: depend: libgit2 debug: pushing to build: r-gert debug: depend: r-gh debug: select satisfier: r-gh debug: no provider callback debug: resolve aur pkg deps: r-gh debug: depend: r debug: depend: r-cli debug: depend: r-gitcreds debug: select satisfier: r-gitcreds debug: no provider callback debug: resolve aur pkg deps: r-gitcreds debug: depend: r debug: depend: git debug: pushing to build: r-gitcreds debug: depend: r-httr debug: depend: r-ini debug: select satisfier: r-ini debug: no provider callback debug: resolve aur pkg deps: r-ini debug: depend: r debug: pushing to build: r-ini debug: depend: r-jsonlite debug: pushing to build: r-gh debug: depend: r-glue debug: depend: r-jsonlite debug: depend: r-lifecycle debug: depend: r-purrr debug: depend: r-rappdirs debug: depend: r-rlang debug: depend: r-rprojroot debug: depend: r-rstudioapi debug: depend: r-whisker debug: select satisfier: r-whisker debug: no provider callback debug: resolve aur pkg deps: r-whisker debug: depend: r debug: pushing to build: r-whisker debug: depend: r-withr debug: depend: r-yaml debug: pushing to build: r-usethis debug: depend: texlive-bin debug: depend: r debug: depend: r-askpass debug: depend: openssl debug: pushing to build: r-jose debug: depend: r-sodium debug: depend: r-testthat>=2.1.0, debug: depend: r-usethis debug: depend: texlive-bin debug: depend: r debug: depend: r-askpass debug: depend: openssl debug: Actions { alpm: Alpm, missing: [], unneeded: [], build: [ Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1179015, name: "r-sodium", package_base_id: 188512, package_base: "r-sodium", version: "1.2.1-1", description: Some( "A Modern and Easy-to-Use Crypto Library", ), url: Some( "https://cran.r-project.org/package=sodium", ), num_votes: 0, popularity: 0.0, out_of_date: None, maintainer: Some( "peippo", ), first_submitted: 1670343884, last_modified: 1670343884, url_path: "/cgit/aur.git/snapshot/r-sodium.tar.gz", groups: [], depends: [ "libsodium", "r", ], make_depends: [], opt_depends: [ "r-knitr", "r-rmarkdown", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1069978, name: "r-clipr", package_base_id: 146983, package_base: "r-clipr", version: "0.8.0-1", description: Some( "Read and Write from the System Clipboard", ), url: Some( "https://cran.r-project.org/package=clipr", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "Alad", ), first_submitted: 1574886521, last_modified: 1650558357, url_path: "/cgit/aur.git/snapshot/r-clipr.tar.gz", groups: [], depends: [ "r", "xclip", "xsel", ], make_depends: [], opt_depends: [ "r-covr", "r-knitr", "r-rmarkdown", "r-rstudioapi", "r-testthat", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "GPL3", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1179012, name: "r-openssl", package_base_id: 141710, package_base: "r-openssl", version: "2.0.5-1", description: Some( "Encryption, Signatures and Certificates Based on OpenSSLi", ), url: Some( "https://cran.r-project.org/package=openssl", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "peippo", ), first_submitted: 1556811626, last_modified: 1670343551, url_path: "/cgit/aur.git/snapshot/r-openssl.tar.gz", groups: [], depends: [ "r", "r-askpass", "openssl", ], make_depends: [], opt_depends: [ "r-curl", "r-digest", "r-jose", "r-jsonlite", "r-knitr", "r-rmarkdown", "r-sodium", ], check_depends: [ "r-jose", "r-sodium", "r-testthat>=2.1.0,", "r-usethis", "texlive-bin", ], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: false, target: false, }, Package { pkg: ArcPackage( Package { id: 1179012, name: "r-openssl", package_base_id: 141710, package_base: "r-openssl", version: "2.0.5-1", description: Some( "Encryption, Signatures and Certificates Based on OpenSSLi", ), url: Some( "https://cran.r-project.org/package=openssl", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "peippo", ), first_submitted: 1556811626, last_modified: 1670343551, url_path: "/cgit/aur.git/snapshot/r-openssl.tar.gz", groups: [], depends: [ "r", "r-askpass", "openssl", ], make_depends: [], opt_depends: [ "r-curl", "r-digest", "r-jose", "r-jsonlite", "r-knitr", "r-rmarkdown", "r-sodium", ], check_depends: [ "r-jose", "r-sodium", "r-testthat>=2.1.0,", "r-usethis", "texlive-bin", ], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: false, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1174497, name: "r-credentials", package_base_id: 160879, package_base: "r-credentials", version: "1.3.2-9", description: Some( "Tools for Managing SSH and Git Credentials", ), url: Some( "https://cran.r-project.org/package=credentials", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1607860058, last_modified: 1669469434, url_path: "/cgit/aur.git/snapshot/r-credentials.tar.gz", groups: [], depends: [ "r", "r-askpass", "r-curl", "r-jsonlite", "r-openssl", "r-sys", ], make_depends: [], opt_depends: [ "git", "r-knitr", "r-rmarkdown", "r-testthat", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1157531, name: "r-zip", package_base_id: 151079, package_base: "r-zip", version: "2.2.2-1", description: Some( "Cross-Platform 'zip' Compression", ), url: Some( "https://cran.r-project.org/package=zip", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1586003170, last_modified: 1666785670, url_path: "/cgit/aur.git/snapshot/r-zip.tar.gz", groups: [], depends: [ "r", ], make_depends: [], opt_depends: [ "r-covr", "r-processx", "r-r6", "r-testthat", "r-withr", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1178811, name: "r-gert", package_base_id: 160878, package_base: "r-gert", version: "1.9.2-1", description: Some( "Simple Git Client for R", ), url: Some( "https://cran.r-project.org/package=gert", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1607859913, last_modified: 1670284870, url_path: "/cgit/aur.git/snapshot/r-gert.tar.gz", groups: [], depends: [ "r", "r-askpass", "r-credentials", "r-openssl", "r-rstudioapi", "r-sys", "r-zip", "libgit2", ], make_depends: [], opt_depends: [ "r-knitr", "r-rmarkdown", "r-spelling", "r-testthat", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1174370, name: "r-gitcreds", package_base_id: 160434, package_base: "r-gitcreds", version: "0.1.2-5", description: Some( "Query 'git' Credentials from 'R'", ), url: Some( "https://cran.r-project.org/package=gitcreds", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1606760054, last_modified: 1669464326, url_path: "/cgit/aur.git/snapshot/r-gitcreds.tar.gz", groups: [], depends: [ "r", "git", ], make_depends: [], opt_depends: [ "r-codetools", "r-covr", "r-knitr", "r-mockery", "r-oskeyring", "r-rmarkdown", "r-testthat", "r-withr", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1154111, name: "r-ini", package_base_id: 149948, package_base: "r-ini", version: "0.3.1-10", description: Some( "Read and Write '.ini' Files", ), url: Some( "https://cran.r-project.org/package=ini", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1583712155, last_modified: 1666094537, url_path: "/cgit/aur.git/snapshot/r-ini.tar.gz", groups: [], depends: [ "r", ], make_depends: [], opt_depends: [ "r-testthat", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "GPL", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1154243, name: "r-gh", package_base_id: 149947, package_base: "r-gh", version: "1.3.1-3", description: Some( "'GitHub' 'API'", ), url: Some( "https://cran.r-project.org/package=gh", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1583712099, last_modified: 1666097794, url_path: "/cgit/aur.git/snapshot/r-gh.tar.gz", groups: [], depends: [ "r", "r-cli", "r-gitcreds", "r-httr", "r-ini", "r-jsonlite", ], make_depends: [], opt_depends: [ "r-covr", "r-knitr", "r-mockery", "r-rmarkdown", "r-rprojroot", "r-spelling", "r-testthat", "r-withr", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1178705, name: "r-whisker", package_base_id: 140585, package_base: "r-whisker", version: "0.4.1-1", description: Some( "{{mustache}} for R, Logicless Templating", ), url: Some( "https://cran.r-project.org/package=whisker", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1553438555, last_modified: 1670263639, url_path: "/cgit/aur.git/snapshot/r-whisker.tar.gz", groups: [], depends: [ "r", ], make_depends: [], opt_depends: [ "r-markdown", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "GPL", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1154266, name: "r-usethis", package_base_id: 149945, package_base: "r-usethis", version: "2.1.6-6", description: Some( "Automate Package and Project Setup", ), url: Some( "https://cran.r-project.org/package=usethis", ), num_votes: 1, popularity: 5e-6, out_of_date: None, maintainer: Some( "BioArchLinuxBot", ), first_submitted: 1583711877, last_modified: 1666098737, url_path: "/cgit/aur.git/snapshot/r-usethis.tar.gz", groups: [], depends: [ "r", "r-cli", "r-clipr", "r-crayon", "r-curl", "r-desc", "r-fs", "r-gert", "r-gh", "r-glue", "r-jsonlite", "r-lifecycle", "r-purrr", "r-rappdirs", "r-rlang", "r-rprojroot", "r-rstudioapi", "r-whisker", "r-withr", "r-yaml", ], make_depends: [], opt_depends: [ "r-covr", "r-knitr", "r-magick", "r-mockr", "r-pkgload", "r-rmarkdown", "r-roxygen2", "r-spelling", "r-styler", "r-testthat", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: true, target: false, }, ], }, Base { pkgs: [ Package { pkg: ArcPackage( Package { id: 1179014, name: "r-jose", package_base_id: 188511, package_base: "r-jose", version: "1.2.0-1", description: Some( "JavaScript Object Signing and Encryption", ), url: Some( "https://cran.r-project.org/package=jose", ), num_votes: 0, popularity: 0.0, out_of_date: None, maintainer: Some( "peippo", ), first_submitted: 1670343865, last_modified: 1670343865, url_path: "/cgit/aur.git/snapshot/r-jose.tar.gz", groups: [], depends: [ "r", "r-jsonlite", "r-openssl>=1.2.1", ], make_depends: [], opt_depends: [ "r-knitr", "r-rmarkdown", "r-spelling", "r-testthat", ], check_depends: [], conflicts: [], replaces: [], provides: [], license: [ "MIT", ], keywords: [], }, ), make: false, target: false, }, ], }, ], install: [ Package { pkg: Package { name: "xsel", version: Ver( "1.2.0.20200527-2", ), }, make: true, target: false, }, ], } error: duplicate packages: r-openssl debug: unregistering database 'local' debug: freeing package cache for repository 'local' debug: unregistering database 'core' debug: freeing package cache for repository 'core' debug: unregistering database 'extra' debug: freeing package cache for repository 'extra' debug: unregistering database 'community' debug: freeing package cache for repository 'community' debug: unregistering database 'local-aur' debug: freeing package cache for repository 'local-aur' ```

I think this might be related to the fact that there is a semi-cyclical dependency between r-openssl, r-usethis and r-gert:

When building these packages for the first time with check enabled the process should be following:

  1. build r-openssl with --nocheck
  2. build r-gert
  3. build r-usethis
  4. rebuild r-openssl (with check)

Previously there was also a similar cycle between r-processx, r-ps and r-testthat which would explain why error: duplicate packages: r-processx was reported earlier in this thread. That cycle was removed by r-ps maintainer (me) by removing tests from r-ps which explains why the error can't be reproduced anymore.

I don't know if these semi-cyclical dependencies should be considered as bugs in the PKGBUILD, as it's possible to build them correctly as I stated earlier. However I've been trying to avoid them in my PKGBUILDs because they make building with check enabled a hassle (at least without automated tools).

While I was writing this comment check got removed from r-openssl which removed the dependency cycle. After that change paru was able to successfully build and install the package.

StripedMonkey commented 1 year ago

I seem to be encountering a similar issue at the moment with llvm-git, when updating.