fix(show): star marker, aligned gutter and smarter AUR merge
N?? / show marks the upstream candidate with "*" instead of ">" (the
prompt, which read as a command in logs), and every line but the note
gets a two-character gutter: " " for the installed record, "* " for the
candidate, so keys and colons line up. The plain native fallback (zypper,
unmergeable records) and the not-installed candidate use the same gutter.
pacman records (-Qi with -Si or the AUR helper's -Sia) are now compared
the way they are meant:
- values unwrapped (continuation lines joined, runs of blanks as one):
yay wraps Depends On / Optional Deps at 80 columns even without a
terminal unless COLUMNS=0, which the helper now gets for -Qua and -Sia
- Depends On, Provides, Conflicts With, Make/Check Deps and the other
lists as sets of exact tokens in any order (a constraint is a change)
- Optional Deps by package names ("name: description [installed]" in
-Qi, bare names from the AUR)
- a differing value is one line like -Qi, Optional Deps one entry per
line; candidate-only fields sit next to their counterpart (Repository
after Version, AUR URL after URL, Maintainer after Packager, ...)
Verified on recorded claude-desktop records (paru 2.1.0, yay 13.0.1, the
installed 2.9939.4-1 from the AUR's own .SRCINFO); discovery/pacman.md
section 15.2.
This commit is contained in:
1 parent
def537af58
commit
3af159e09a
16 files changed
+680
-288
No files matched your search
+6
-6
@@ -67,12 +67,12 @@ pacman_only() { [[ $BE == pacman ]] || skip "pacman backend only"; }
|
||||
'su-dummy-aur: Skeptical-updater dummy package AUR (foreign: in no repository)' \
|
||||
'reason: explicitly installed' \
|
||||
'required by: nothing')"
|
||||
assert_line '# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
assert_output --partial "$(printf '%s\n' 'Version : 1.0-1' '> Version : 2.0-1')"
|
||||
assert_line 'Install Reason : Explicitly installed'
|
||||
assert_line '> Repository : aur'
|
||||
assert_line '> Maintainer : su-fixture'
|
||||
assert_line '> AUR URL : https://aur.archlinux.org/packages/su-dummy-aur'
|
||||
assert_line '# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
assert_output --partial "$(printf '%s\n' ' Version : 1.0-1' '* Version : 2.0-1' '* Repository : aur')"
|
||||
assert_line ' Install Reason : Explicitly installed'
|
||||
assert_output --partial "$(printf '%s\n' ' URL : https://example.invalid/su-dummy' '* AUR URL : https://aur.archlinux.org/packages/su-dummy-aur')"
|
||||
assert_output --partial "$(printf '%s\n' ' Packager : su-fixture <su-fixture@example.invalid>' '* Maintainer : su-fixture')"
|
||||
assert_output --partial "$(printf '%s\n' ' Validated By : None' '* Votes : 7' '* Popularity : 0.01' '* Out Of Date : No')"
|
||||
run grep -c 'su-tester HOME=/home/su-tester PWD=/home/su-tester -Sia su-dummy-aur' "$PARU_LOG"
|
||||
assert_output 1
|
||||
}
|
||||
|
||||
@@ -60,29 +60,30 @@ zypper_verb() { case $(. /etc/os-release && printf '%s' "$ID") in opensuse-tumbl
|
||||
run skeptical-updater --no-refresh <<<$'2??\nq'
|
||||
assert_success
|
||||
if [[ $BE == zypper ]]; then # no comparable records: the plain zypper info --requires
|
||||
assert_line 'Information for package su-dummy-b:'
|
||||
refute_line --partial '# lines starting with >'
|
||||
assert_line ' Information for package su-dummy-b:'
|
||||
refute_line --partial '# lines starting with *'
|
||||
return 0
|
||||
fi
|
||||
assert_line '# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
assert_line '# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
case $BE in
|
||||
apt)
|
||||
assert_line 'Package: su-dummy-b'
|
||||
assert_line 'Status: install ok installed'
|
||||
assert_output --partial "$(printf '%s\n' 'Version: 1.0' '> Version: 2.0')"
|
||||
assert_line --regexp '^> Filename: .*su-dummy-b_2\.0_all\.deb$'
|
||||
assert_line ' Package: su-dummy-b'
|
||||
assert_line ' Status: install ok installed'
|
||||
assert_output --partial "$(printf '%s\n' ' Version: 1.0' '* Version: 2.0')"
|
||||
assert_line --regexp '^\* Filename: .*su-dummy-b_2\.0_all\.deb$'
|
||||
;;
|
||||
pacman)
|
||||
assert_output --partial "$(printf '%s\n' 'Version : 1.0-1' '> Version : 2.0-1')"
|
||||
assert_line 'Install Reason : Installed as a dependency for another package'
|
||||
assert_line '> Repository : su-dummy'
|
||||
assert_output --partial "$(printf '%s\n' ' Version : 1.0-1' '* Version : 2.0-1' '* Repository : su-dummy')"
|
||||
assert_line ' Install Reason : Installed as a dependency for another package'
|
||||
;;
|
||||
dnf)
|
||||
assert_output --partial "$(printf '%s\n' 'Version : 1.0' '> Version : 2.0')"
|
||||
assert_output --partial "$(printf '%s\n' 'Repository : @System' '> Repository : su-dummy')"
|
||||
assert_output --partial "$(printf '%s\n' ' Version : 1.0' '* Version : 2.0')"
|
||||
assert_output --partial "$(printf '%s\n' ' Repository : @System' '* Repository : su-dummy')"
|
||||
;;
|
||||
esac
|
||||
[[ $(grep -c '^> ' <<<"$output") -ge 2 ]]
|
||||
[[ $(grep -c '^\* ' <<<"$output") -ge 2 ]]
|
||||
# every line has the two-character gutter, except the note
|
||||
[[ $(grep -cvE '^(# lines starting with| |\* |$)' <<<"$(sed -n '/^# lines starting with/,/^> q$/p' <<<"$output" | sed '$d')") -eq 0 ]]
|
||||
}
|
||||
|
||||
@test "N+ writes the user row and the dep row; list hides both and counts them" {
|
||||
|
||||
+147
-35
@@ -314,22 +314,30 @@ upgrade_steps() {
|
||||
run skup --no-refresh <<<$'1??\nq'
|
||||
assert_success
|
||||
log_has "$AS_ALICE paru -Sia pfetch"
|
||||
assert_line '# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
assert_output --partial "$(printf '%s\n' 'Version : 1.10.0-1' '> Version : 1.11.0-1')"
|
||||
assert_line 'Install Reason : Explicitly installed'
|
||||
assert_line 'Description : A pretty system information tool written in POSIX sh.'
|
||||
[[ $(count_lines 'Description : A pretty system information tool written in POSIX sh.') -eq 1 ]]
|
||||
assert_line '# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
assert_output --partial "$(printf '%s\n' ' Version : 1.10.0-1' '* Version : 1.11.0-1' '* Repository : aur')"
|
||||
assert_line ' Install Reason : Explicitly installed'
|
||||
assert_line ' Description : A pretty system information tool written in POSIX sh.'
|
||||
[[ $(grep -c 'Description : A pretty system' <<<"$output") -eq 1 ]]
|
||||
# the AUR-only fields next to their installed counterparts, the rest at the end
|
||||
assert_output --partial "$(printf '%s\n' \
|
||||
'> Repository : aur' \
|
||||
'> AUR URL : https://aur.archlinux.org/packages/pfetch' \
|
||||
'> Make Deps : None' \
|
||||
'> Check Deps : None' \
|
||||
'> Maintainer : yigits' \
|
||||
'> Votes : 48' \
|
||||
'> Popularity : 0.10344' \
|
||||
'> First Submitted : Sat, 16 Jan 2021 09:13:08' \
|
||||
'> Last Modified : Tue, 9 Jun 2026 22:43:50' \
|
||||
'> Out Of Date : No')"
|
||||
' URL : https://github.com/Un1q32/pfetch' \
|
||||
'* AUR URL : https://aur.archlinux.org/packages/pfetch')"
|
||||
assert_output --partial "$(printf '%s\n' \
|
||||
' Optional Deps : None' \
|
||||
'* Make Deps : None' \
|
||||
'* Check Deps : None')"
|
||||
assert_output --partial "$(printf '%s\n' \
|
||||
' Packager : Unknown Packager' \
|
||||
'* Maintainer : yigits' \
|
||||
' Build Date : Sat Oct 10 12:42:02 2026' \
|
||||
'* Last Modified : Tue, 9 Jun 2026 22:43:50' \
|
||||
'* First Submitted : Sat, 16 Jan 2021 09:13:08')"
|
||||
assert_output --partial "$(printf '%s\n' \
|
||||
' Validated By : None' \
|
||||
'* Votes : 48' \
|
||||
'* Popularity : 0.10344' \
|
||||
'* Out Of Date : No')"
|
||||
}
|
||||
|
||||
@test "N?? with yay: its wider key column is re-padded to pacman's" {
|
||||
@@ -337,45 +345,149 @@ upgrade_steps() {
|
||||
run skup --no-refresh <<<$'1??\nq'
|
||||
assert_success
|
||||
log_has "$AS_ALICE yay -Sia pfetch"
|
||||
assert_output --partial "$(printf '%s\n' 'Version : 1.10.0-1' '> Version : 1.11.0-1')"
|
||||
assert_line '> Repository : aur'
|
||||
assert_line '> Keywords : fetch'
|
||||
assert_line '> First Submitted : Sat 16 Jan 2021 09:13:08 AM UTC'
|
||||
assert_line '> Out-of-date : No'
|
||||
assert_output --partial "$(printf '%s\n' ' Version : 1.10.0-1' '* Version : 1.11.0-1' '* Repository : aur')"
|
||||
assert_output --partial "$(printf '%s\n' ' Groups : None' '* Keywords : fetch')"
|
||||
assert_line '* First Submitted : Sat 16 Jan 2021 09:13:08 AM UTC'
|
||||
assert_output --partial "$(printf '%s\n' ' Validated By : None' '* Popularity : 0.103440' '* Votes : 48' '* Out-of-date : No')"
|
||||
refute_output --regexp 'Repository {10,}:'
|
||||
}
|
||||
|
||||
@test "N?? when the AUR has no record of it: the installed record alone" {
|
||||
run skup --no-refresh <<<$'3??\nq'
|
||||
assert_success
|
||||
assert_line 'Name : su-dummy-aur'
|
||||
assert_line 'Install Reason : Explicitly installed'
|
||||
refute_line --regexp '^> [A-Z#]'
|
||||
assert_line ' Name : su-dummy-aur'
|
||||
assert_line ' Install Reason : Explicitly installed'
|
||||
refute_line --regexp '^\* '
|
||||
log_has "$AS_ALICE paru -Sia su-dummy-aur"
|
||||
}
|
||||
|
||||
@test "N?? when the AUR record does not merge: -Qi, then the AUR record with every line marked >" {
|
||||
@test "N?? claude-desktop (recorded): yay's wrapped record unwrapped, one-line lists, Optional Deps per entry, AUR fields in place" {
|
||||
# real records: the installed 2.9939.4-1 (pacman -Qi of a stand-in built from the AUR's own
|
||||
# .SRCINFO of that version) and yay 13.0.1's -Sia of 2.31226.1-1, wrapped at 80 columns as yay
|
||||
# prints it without COLUMNS=0 (discovery/pacman.md section 15.2)
|
||||
use_fakes yay pacman runuser getent
|
||||
run skup show claude-desktop
|
||||
assert_success
|
||||
assert_output "$(cat <<'EOF'
|
||||
# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Name : claude-desktop
|
||||
Version : 2.9939.4-1
|
||||
* Version : 2.31226.1-1
|
||||
* Repository : aur
|
||||
Description : Official Claude AI desktop app from Anthropic — Chat, Cowork, and Claude Code
|
||||
Architecture : x86_64
|
||||
URL : https://claude.com/download
|
||||
* AUR URL : https://aur.archlinux.org/packages/claude-desktop
|
||||
Licenses : LicenseRef-Proprietary
|
||||
Groups : None
|
||||
* Keywords : None
|
||||
Provides : None
|
||||
Depends On : alsa-lib at-spi2-core cairo dbus expat gcc-libs glib2 glibc gtk3 hicolor-icon-theme libcap-ng libcups libdrm libnotify libseccomp libsecret libx11 libxcb libxcomposite libxdamage libxext libxfixes libxkbcommon libxrandr libxtst mesa nspr nss pango socat systemd-libs util-linux-libs virtiofsd xdg-desktop-portal xdg-utils
|
||||
* Depends On : alsa-lib at-spi2-core bubblewrap cairo dbus expat gcc-libs glib2 glibc gtk3 hicolor-icon-theme libcap-ng libcups libdrm libnotify libpipewire libseccomp libsecret libx11 libxcb libxcomposite libxdamage libxext libxfixes libxkbcommon libxrandr libxtst mesa nspr nss pango socat systemd-libs util-linux-libs virtiofsd xdg-desktop-portal xdg-utils qemu-system-x86 edk2-ovmf
|
||||
Optional Deps : gnome-keyring: credential storage via Secret Service (GNOME)
|
||||
kwallet: credential storage (KDE Plasma) [installed]
|
||||
libayatana-appindicator: system tray icon
|
||||
xdg-desktop-portal-gtk: portal backend for GTK desktops
|
||||
xdg-desktop-portal-kde: portal backend for KDE Plasma
|
||||
* Optional Deps : gnome-keyring
|
||||
* kwallet
|
||||
* libayatana-appindicator
|
||||
* xdg-desktop-portal-gtk
|
||||
* xdg-desktop-portal-kde
|
||||
* qemu-system-aarch64
|
||||
* edk2-aarch64
|
||||
* Make Deps : None
|
||||
* Check Deps : None
|
||||
Required By : None
|
||||
Optional For : None
|
||||
Conflicts With : claude claude-desktop-bin
|
||||
Replaces : None
|
||||
Installed Size : 117.74 MiB
|
||||
Packager : Unknown Packager
|
||||
* Maintainer : diazkev314
|
||||
Build Date : Sat Oct 3 04:00:00 2026
|
||||
* Last Modified : Fri 09 Oct 2026 11:31:19 PM UTC
|
||||
* First Submitted : Sun 05 Jul 2026 01:58:02 AM UTC
|
||||
Install Date : Sat Oct 10 13:49:52 2026
|
||||
Install Reason : Explicitly installed
|
||||
Install Script : No
|
||||
Validated By : None
|
||||
* Popularity : 6.458490
|
||||
* Votes : 21
|
||||
* Out-of-date : No
|
||||
EOF
|
||||
)"
|
||||
log_has "$AS_ALICE yay -Sia claude-desktop"
|
||||
}
|
||||
|
||||
@test "N?? claude-desktop: paru's unwrapped record merges to the same Depends On and Optional Deps lines" {
|
||||
use_fakes yay pacman runuser getent
|
||||
run skup show claude-desktop
|
||||
yay_out=$output
|
||||
use_fakes paru pacman runuser getent
|
||||
run skup show claude-desktop
|
||||
assert_success
|
||||
[[ $(grep -A8 '^ Depends On' <<<"$output") == "$(grep -A8 '^ Depends On' <<<"$yay_out")" ]] ||
|
||||
fail "paru and yay merge Depends On / Optional Deps differently"
|
||||
assert_line '* Out Of Date : No'
|
||||
}
|
||||
|
||||
@test "N?? pacman lists: a wrapped, reordered Depends On and bare Optional Deps names equal to the installed sets print once" {
|
||||
use_fakes yay pacman runuser getent
|
||||
FAKE_AUR_SIA=same run skup show claude-desktop
|
||||
assert_success
|
||||
[[ $(count_lines ' Depends On : alsa-lib at-spi2-core cairo dbus expat gcc-libs glib2 glibc gtk3 hicolor-icon-theme libcap-ng libcups libdrm libnotify libseccomp libsecret libx11 libxcb libxcomposite libxdamage libxext libxfixes libxkbcommon libxrandr libxtst mesa nspr nss pango socat systemd-libs util-linux-libs virtiofsd xdg-desktop-portal xdg-utils') -eq 1 ]]
|
||||
refute_line --regexp '^\* +(Depends On|Optional Deps|Conflicts With) *:'
|
||||
refute_line --regexp '^\* {18,}'
|
||||
assert_output --partial "$(printf '%s\n' \
|
||||
' kwallet: credential storage (KDE Plasma) [installed]' \
|
||||
' libayatana-appindicator: system tray icon' \
|
||||
' xdg-desktop-portal-gtk: portal backend for GTK desktops' \
|
||||
' xdg-desktop-portal-kde: portal backend for KDE Plasma' \
|
||||
'* Make Deps : None')"
|
||||
}
|
||||
|
||||
@test "N?? pacman lists: an added token or a changed version constraint is a difference (one * line, as -Qi prints it)" {
|
||||
use_fakes yay pacman runuser getent
|
||||
FAKE_AUR_SIA=constraint run skup show claude-desktop
|
||||
assert_success
|
||||
assert_line --regexp '^\* Depends On : xdg-utils xdg-desktop-portal virtiofsd .* pango nss>=3\.100 nspr .* at-spi2-core alsa-lib$'
|
||||
[[ $(grep -c '^\* Depends On' <<<"$output") -eq 1 ]]
|
||||
refute_line --regexp '^\* +(Optional Deps|Conflicts With) *:'
|
||||
run skup show claude-desktop
|
||||
assert_line --regexp '^\* Depends On : alsa-lib at-spi2-core bubblewrap cairo .* libnotify libpipewire libseccomp .* xdg-utils qemu-system-x86 edk2-ovmf$'
|
||||
# an extra upstream name in Optional Deps: the upstream block, one entry per line
|
||||
assert_output --partial "$(printf '%s\n' \
|
||||
'* Optional Deps : gnome-keyring' \
|
||||
'* kwallet' \
|
||||
'* libayatana-appindicator' \
|
||||
'* xdg-desktop-portal-gtk' \
|
||||
'* xdg-desktop-portal-kde' \
|
||||
'* qemu-system-aarch64' \
|
||||
'* edk2-aarch64')"
|
||||
}
|
||||
|
||||
@test "N?? when the AUR record does not merge: -Qi, then the AUR record with every line marked *" {
|
||||
FAKE_AUR_SIA=twice run skup --no-refresh <<<$'1??\nq'
|
||||
assert_success
|
||||
assert_line '# lines starting with > are the AUR record (paru -Sia) as it prints it'
|
||||
refute_line --partial '# lines starting with > come from the upstream candidate'
|
||||
assert_line 'Version : 1.10.0-1'
|
||||
[[ $(count_lines '> Version : 1.11.0-1') -eq 2 ]]
|
||||
[[ $(count_lines '> Repository : aur') -eq 2 ]]
|
||||
assert_line 'Install Reason : Explicitly installed'
|
||||
assert_line '# lines starting with * are the AUR record (paru -Sia) as it prints it'
|
||||
refute_line --partial '# lines starting with * come from the upstream candidate'
|
||||
assert_line ' Version : 1.10.0-1'
|
||||
[[ $(count_lines '* Version : 1.11.0-1') -eq 2 ]]
|
||||
[[ $(count_lines '* Repository : aur') -eq 2 ]]
|
||||
assert_line ' Install Reason : Explicitly installed'
|
||||
}
|
||||
|
||||
@test "show PKG for an AUR package: the same merge, the helper decided on the spot" {
|
||||
run skup show pfetch
|
||||
assert_success
|
||||
assert_line '> Repository : aur'
|
||||
assert_output --partial "$(printf '%s\n' 'Version : 1.10.0-1' '> Version : 1.11.0-1')"
|
||||
assert_output --partial "$(printf '%s\n' ' Version : 1.10.0-1' '* Version : 1.11.0-1' '* Repository : aur')"
|
||||
export SKEPTICAL_UPDATER_EUID=1000
|
||||
unset SUDO_USER
|
||||
: >"$FAKE_LOG"
|
||||
run skup show pfetch
|
||||
assert_success
|
||||
assert_line '> Maintainer : yigits'
|
||||
assert_line '* Maintainer : yigits'
|
||||
log_has 'paru -Sia pfetch'
|
||||
log_lacks '^runuser'
|
||||
}
|
||||
@@ -384,8 +496,8 @@ upgrade_steps() {
|
||||
unset SUDO_USER
|
||||
run skup show pfetch
|
||||
assert_success
|
||||
assert_line 'Name : pfetch'
|
||||
refute_line --regexp '^> '
|
||||
assert_line ' Name : pfetch'
|
||||
refute_line --regexp '^\* '
|
||||
[[ $(grep -c 'warning: aur:' <<<"$output") -eq 1 ]]
|
||||
log_lacks '^paru'
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
Repository : aur
|
||||
Name : claude-desktop
|
||||
Version : 2.31226.1-1
|
||||
Description : Official Claude AI desktop app from Anthropic — Chat, Cowork, and Claude Code
|
||||
URL : https://claude.com/download
|
||||
AUR URL : https://aur.archlinux.org/packages/claude-desktop
|
||||
Groups : None
|
||||
Licenses : LicenseRef-Proprietary
|
||||
Provides : None
|
||||
Depends On : alsa-lib at-spi2-core bubblewrap cairo dbus expat gcc-libs glib2 glibc gtk3 hicolor-icon-theme libcap-ng libcups libdrm libnotify libpipewire libseccomp libsecret libx11 libxcb libxcomposite libxdamage libxext libxfixes libxkbcommon libxrandr libxtst mesa nspr nss pango socat systemd-libs util-linux-libs virtiofsd xdg-desktop-portal xdg-utils qemu-system-x86 edk2-ovmf
|
||||
Make Deps : None
|
||||
Check Deps : None
|
||||
Optional Deps : gnome-keyring kwallet libayatana-appindicator xdg-desktop-portal-gtk xdg-desktop-portal-kde qemu-system-aarch64 edk2-aarch64
|
||||
Conflicts With : claude claude-desktop-bin
|
||||
Maintainer : diazkev314
|
||||
Votes : 21
|
||||
Popularity : 6.45849
|
||||
First Submitted : Sun, 5 Jul 2026 01:58:02
|
||||
Last Modified : Fri, 9 Oct 2026 23:31:19
|
||||
Out Of Date : No
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
Repository : aur
|
||||
Name : claude-desktop
|
||||
Version : 2.31226.1-1
|
||||
Description : Official Claude AI desktop app from Anthropic — Chat, Cowork, and Claude Code
|
||||
URL : https://claude.com/download
|
||||
Licenses : LicenseRef-Proprietary
|
||||
Groups : None
|
||||
Provides : None
|
||||
Depends On : xdg-utils xdg-desktop-portal virtiofsd
|
||||
util-linux-libs systemd-libs socat pango nss>=3.100
|
||||
nspr mesa libxtst libxrandr libxkbcommon
|
||||
libxfixes libxext libxdamage libxcomposite
|
||||
libxcb libx11 libsecret libseccomp libnotify
|
||||
libdrm libcups libcap-ng hicolor-icon-theme gtk3
|
||||
glibc glib2 gcc-libs expat dbus cairo
|
||||
at-spi2-core alsa-lib
|
||||
Optional Deps : xdg-desktop-portal-kde xdg-desktop-portal-gtk
|
||||
libayatana-appindicator kwallet gnome-keyring
|
||||
Make Deps : None
|
||||
Check Deps : None
|
||||
Conflicts With : claude claude-desktop-bin
|
||||
Replaces : None
|
||||
AUR URL : https://aur.archlinux.org/packages/claude-desktop
|
||||
First Submitted : Sun 05 Jul 2026 01:58:02 AM UTC
|
||||
Keywords : None
|
||||
Last Modified : Fri 09 Oct 2026 11:31:19 PM UTC
|
||||
Maintainer : diazkev314
|
||||
Popularity : 6.458490
|
||||
Votes : 21
|
||||
Out-of-date : No
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
Repository : aur
|
||||
Name : claude-desktop
|
||||
Version : 2.31226.1-1
|
||||
Description : Official Claude AI desktop app from Anthropic — Chat, Cowork, and Claude Code
|
||||
URL : https://claude.com/download
|
||||
Licenses : LicenseRef-Proprietary
|
||||
Groups : None
|
||||
Provides : None
|
||||
Depends On : xdg-utils xdg-desktop-portal virtiofsd
|
||||
util-linux-libs systemd-libs socat pango nss
|
||||
nspr mesa libxtst libxrandr libxkbcommon
|
||||
libxfixes libxext libxdamage libxcomposite
|
||||
libxcb libx11 libsecret libseccomp libnotify
|
||||
libdrm libcups libcap-ng hicolor-icon-theme gtk3
|
||||
glibc glib2 gcc-libs expat dbus cairo
|
||||
at-spi2-core alsa-lib
|
||||
Optional Deps : xdg-desktop-portal-kde xdg-desktop-portal-gtk
|
||||
libayatana-appindicator kwallet gnome-keyring
|
||||
Make Deps : None
|
||||
Check Deps : None
|
||||
Conflicts With : claude claude-desktop-bin
|
||||
Replaces : None
|
||||
AUR URL : https://aur.archlinux.org/packages/claude-desktop
|
||||
First Submitted : Sun 05 Jul 2026 01:58:02 AM UTC
|
||||
Keywords : None
|
||||
Last Modified : Fri 09 Oct 2026 11:31:19 PM UTC
|
||||
Maintainer : diazkev314
|
||||
Popularity : 6.458490
|
||||
Votes : 21
|
||||
Out-of-date : No
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
Repository : aur
|
||||
Name : claude-desktop
|
||||
Version : 2.31226.1-1
|
||||
Description : Official Claude AI desktop app from Anthropic — Chat, Cowork, and Claude Code
|
||||
URL : https://claude.com/download
|
||||
Licenses : LicenseRef-Proprietary
|
||||
Groups : None
|
||||
Provides : None
|
||||
Depends On : alsa-lib at-spi2-core bubblewrap cairo dbus
|
||||
expat gcc-libs glib2 glibc gtk3
|
||||
hicolor-icon-theme libcap-ng libcups libdrm
|
||||
libnotify libpipewire libseccomp libsecret
|
||||
libx11 libxcb libxcomposite libxdamage
|
||||
libxext libxfixes libxkbcommon libxrandr
|
||||
libxtst mesa nspr nss pango socat
|
||||
systemd-libs util-linux-libs virtiofsd
|
||||
xdg-desktop-portal xdg-utils qemu-system-x86
|
||||
edk2-ovmf
|
||||
Optional Deps : gnome-keyring kwallet libayatana-appindicator
|
||||
xdg-desktop-portal-gtk xdg-desktop-portal-kde
|
||||
qemu-system-aarch64 edk2-aarch64
|
||||
Make Deps : None
|
||||
Check Deps : None
|
||||
Conflicts With : claude claude-desktop-bin
|
||||
Replaces : None
|
||||
AUR URL : https://aur.archlinux.org/packages/claude-desktop
|
||||
First Submitted : Sun 05 Jul 2026 01:58:02 AM UTC
|
||||
Keywords : None
|
||||
Last Modified : Fri 09 Oct 2026 11:31:19 PM UTC
|
||||
Maintainer : diazkev314
|
||||
Popularity : 6.458490
|
||||
Votes : 21
|
||||
Out-of-date : No
|
||||
|
||||
@@ -332,3 +332,29 @@ Install Date : Fri Oct 9 08:00:00 2026
|
||||
Install Reason : Explicitly installed
|
||||
Install Script : No
|
||||
Validated By : None
|
||||
|
||||
Name : claude-desktop
|
||||
Version : 2.9939.4-1
|
||||
Description : Official Claude AI desktop app from Anthropic — Chat, Cowork, and Claude Code
|
||||
Architecture : x86_64
|
||||
URL : https://claude.com/download
|
||||
Licenses : LicenseRef-Proprietary
|
||||
Groups : None
|
||||
Provides : None
|
||||
Depends On : alsa-lib at-spi2-core cairo dbus expat gcc-libs glib2 glibc gtk3 hicolor-icon-theme libcap-ng libcups libdrm libnotify libseccomp libsecret libx11 libxcb libxcomposite libxdamage libxext libxfixes libxkbcommon libxrandr libxtst mesa nspr nss pango socat systemd-libs util-linux-libs virtiofsd xdg-desktop-portal xdg-utils
|
||||
Optional Deps : gnome-keyring: credential storage via Secret Service (GNOME)
|
||||
kwallet: credential storage (KDE Plasma) [installed]
|
||||
libayatana-appindicator: system tray icon
|
||||
xdg-desktop-portal-gtk: portal backend for GTK desktops
|
||||
xdg-desktop-portal-kde: portal backend for KDE Plasma
|
||||
Required By : None
|
||||
Optional For : None
|
||||
Conflicts With : claude claude-desktop-bin
|
||||
Replaces : None
|
||||
Installed Size : 117.74 MiB
|
||||
Packager : Unknown Packager
|
||||
Build Date : Sat Oct 3 04:00:00 2026
|
||||
Install Date : Sat Oct 10 13:49:52 2026
|
||||
Install Reason : Explicitly installed
|
||||
Install Script : No
|
||||
Validated By : None
|
||||
@@ -11,8 +11,9 @@
|
||||
# noise (yay's colored root warning on stdout), none (nothing to upgrade: exit 1, no output) or
|
||||
# fail (the AUR is unreachable: exit 1 with the recorded error). Packages purged by the fake pacman
|
||||
# are not listed. -Sia PKG prints data/aur/Sia-<helper>-PKG.txt (else the helper's not-found
|
||||
# error, exit 1), twice with FAKE_AUR_SIA=twice (a record that cannot be merged); -Sua exits
|
||||
# FAKE_AUR_SUA_RC (default 0).
|
||||
# error, exit 1), twice with FAKE_AUR_SIA=twice (a record that cannot be merged), or the variant
|
||||
# Sia-<helper>-PKG-<FAKE_AUR_SIA>.txt when it exists; -Sua exits FAKE_AUR_SUA_RC (default 0).
|
||||
# claude-desktop: yay's record is the wrapped one yay prints without COLUMNS=0, recorded verbatim.
|
||||
# shellcheck source=../fakelib.bash
|
||||
. "${BASH_SOURCE[0]%/*}/../fakelib.bash"
|
||||
fake_log "$@"
|
||||
@@ -38,6 +39,10 @@ case ${1:-} in
|
||||
printf '%s\n' "$out"
|
||||
;;
|
||||
-Sia)
|
||||
if [[ -n ${FAKE_AUR_SIA:-} && -f $D/Sia-$FAKE_NAME-${2:-}-$FAKE_AUR_SIA.txt ]]; then
|
||||
cat "$D/Sia-$FAKE_NAME-$2-$FAKE_AUR_SIA.txt"
|
||||
exit 0
|
||||
fi
|
||||
if [[ -f $D/Sia-$FAKE_NAME-${2:-}.txt ]]; then
|
||||
cat "$D/Sia-$FAKE_NAME-$2.txt"
|
||||
[[ ${FAKE_AUR_SIA:-} != twice ]] || cat "$D/Sia-$FAKE_NAME-$2.txt"
|
||||
|
||||
@@ -93,11 +93,10 @@ UPGRADE='apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--forc
|
||||
@test "N?? prints the installed record merged with the candidate" {
|
||||
run skup --no-refresh <<<$'1??\nq'
|
||||
assert_success
|
||||
assert_line '# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
assert_line 'Package: su-dummy-a'
|
||||
assert_line 'Version: 1.0'
|
||||
assert_line '> Version: 2.0'
|
||||
assert_line '> Depends: su-dummy-b (>= 2.0)'
|
||||
assert_line '# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks'
|
||||
assert_line ' Package: su-dummy-a'
|
||||
assert_output --partial "$(printf '%s\n' ' Version: 1.0' '* Version: 2.0')"
|
||||
assert_line '* Depends: su-dummy-b (>= 2.0)'
|
||||
log_has 'dpkg-query -s -- su-dummy-a'
|
||||
log_has 'apt-cache show --no-all-versions su-dummy-a'
|
||||
}
|
||||
|
||||
+135
-135
@@ -117,36 +117,35 @@ setup() { common_setup; }
|
||||
run skup show su-dummy-b
|
||||
assert_success
|
||||
assert_output "$(cat <<'EOF'
|
||||
# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Package: su-dummy-b
|
||||
Status: install ok installed
|
||||
Priority: optional
|
||||
Section: misc
|
||||
Maintainer: Skeptical Updater Fixture <su-fixture@example.invalid>
|
||||
Architecture: all
|
||||
Version: 1.0
|
||||
> Version: 2.0
|
||||
Conffiles:
|
||||
/etc/su-dummy/su-dummy-b.conf 607e2d3a119dfe832d937ce579ef1079
|
||||
Description: dummy package su-dummy-b for skeptical-updater tests
|
||||
This package only exists to exercise the package manager.
|
||||
.
|
||||
It ships one data file and one conffile (version 1.0).
|
||||
> Description: dummy package su-dummy-b for skeptical-updater tests
|
||||
> This package only exists to exercise the package manager.
|
||||
> .
|
||||
> It ships one data file and one conffile (version 2.0).
|
||||
> Description-md5: 36da7dcdaf4ec207be2937d1f5dfa408
|
||||
> Filename: ./su-dummy-b_2.0_all.deb
|
||||
> Size: 840
|
||||
# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Package: su-dummy-b
|
||||
Status: install ok installed
|
||||
Priority: optional
|
||||
Section: misc
|
||||
Maintainer: Skeptical Updater Fixture <su-fixture@example.invalid>
|
||||
Architecture: all
|
||||
Version: 1.0
|
||||
* Version: 2.0
|
||||
Conffiles:
|
||||
/etc/su-dummy/su-dummy-b.conf 607e2d3a119dfe832d937ce579ef1079
|
||||
Description: dummy package su-dummy-b for skeptical-updater tests
|
||||
This package only exists to exercise the package manager.
|
||||
.
|
||||
It ships one data file and one conffile (version 1.0).
|
||||
* Description: dummy package su-dummy-b for skeptical-updater tests
|
||||
* This package only exists to exercise the package manager.
|
||||
* .
|
||||
* It ships one data file and one conffile (version 2.0).
|
||||
* Description-md5: 36da7dcdaf4ec207be2937d1f5dfa408
|
||||
* Filename: ./su-dummy-b_2.0_all.deb
|
||||
* Size: 840
|
||||
EOF
|
||||
)"
|
||||
log_has 'dpkg-query -s -- su-dummy-b'
|
||||
log_has 'apt-cache show --no-all-versions su-dummy-b'
|
||||
run skup show su-dummy-a
|
||||
assert_success
|
||||
assert_line 'Depends: su-dummy-b'
|
||||
assert_line '> Depends: su-dummy-b (>= 2.0)'
|
||||
assert_output --partial "$(printf '%s\n' ' Depends: su-dummy-b' '* Depends: su-dummy-b (>= 2.0)')"
|
||||
run skup show no-such-pkg-xyz
|
||||
assert_failure 1
|
||||
assert_output --partial "no package information for 'no-such-pkg-xyz' (apt exited 100)"
|
||||
@@ -156,22 +155,22 @@ EOF
|
||||
# real debian:12 records: perl-base 5.36.0-7+deb12u3 installed, +deb12u4 from bookworm-security
|
||||
run skup show perl-base
|
||||
assert_success
|
||||
[[ $(grep -c '^Description: minimal Perl system$' <<<"$output") -eq 1 ]]
|
||||
refute_line --partial '> Description:'
|
||||
assert_output --partial "$(printf '%s\n' 'Installed-Size: 7639' '> Installed-Size: 7643')"
|
||||
assert_output --partial "$(printf '%s\n' 'Version: 5.36.0-7+deb12u3' '> Version: 5.36.0-7+deb12u4')"
|
||||
[[ $(grep -c '^Breaks: ' <<<"$output") -eq 1 ]]
|
||||
refute_line --regexp '^> (Breaks|Pre-Depends|Essential|Source):'
|
||||
assert_line --index -1 '> SHA256: d7d1943aec9597629bf73075efcc5ef6dc9bda96d78e80d843156ecd448478b8'
|
||||
[[ $(grep -c '^ Description: minimal Perl system$' <<<"$output") -eq 1 ]]
|
||||
refute_line --partial '* Description:'
|
||||
assert_output --partial "$(printf '%s\n' ' Installed-Size: 7639' '* Installed-Size: 7643')"
|
||||
assert_output --partial "$(printf '%s\n' ' Version: 5.36.0-7+deb12u3' '* Version: 5.36.0-7+deb12u4')"
|
||||
[[ $(grep -c '^ Breaks: ' <<<"$output") -eq 1 ]]
|
||||
refute_line --regexp '^\* (Breaks|Pre-Depends|Essential|Source):'
|
||||
assert_line --index -1 '* SHA256: d7d1943aec9597629bf73075efcc5ef6dc9bda96d78e80d843156ecd448478b8'
|
||||
}
|
||||
|
||||
@test "apt: show of a package that is not installed prints the candidate alone, with a note" {
|
||||
run skup show zsh
|
||||
assert_success
|
||||
assert_line --index 0 '# not installed: this is the upstream candidate'
|
||||
assert_line --index 1 'Package: zsh'
|
||||
assert_line --index 3 'Version: 5.9-4+b15'
|
||||
refute_line --partial '> '
|
||||
assert_line --index 0 '# not installed: lines starting with * come from the upstream candidate (all of them)'
|
||||
assert_line --index 1 '* Package: zsh'
|
||||
assert_line --index 3 '* Version: 5.9-4+b15'
|
||||
refute_line --regexp '^ '
|
||||
log_has 'dpkg-query -s -- zsh'
|
||||
}
|
||||
|
||||
@@ -272,48 +271,49 @@ EOF
|
||||
assert_output 'trusted su-dummy-a (+1 dependency: su-dummy-b)'
|
||||
}
|
||||
|
||||
@test "pacman: show merges -Qi with -Si of the candidate's repository: '>' lines for what differs" {
|
||||
@test "pacman: show merges -Qi with -Si of the candidate's repository: '*' lines for what differs, in place" {
|
||||
# real archlinux records (glib2 2.88.3-1 installed, core 2.90.1-1), one Optional Deps entry
|
||||
# added to the candidate: changed fields, identical ones once, -Qi-only fields kept, a differing
|
||||
# multi-line block, -Si-only fields appended
|
||||
# Optional Deps block (one entry per line), -Si-only fields next to their counterparts
|
||||
# (Repository after Version, Download Size after Installed Size); every line in the gutter
|
||||
use_fakes pacman
|
||||
run skup show glib2
|
||||
assert_success
|
||||
assert_output "$(cat <<'EOF'
|
||||
# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Name : glib2
|
||||
Version : 2.88.3-1
|
||||
> Version : 2.90.1-1
|
||||
Description : Low level core library
|
||||
Architecture : x86_64
|
||||
URL : https://gitlab.gnome.org/GNOME/glib
|
||||
Licenses : LGPL-2.1-or-later
|
||||
Groups : None
|
||||
Provides : libglib-2.0.so=0-64 libgio-2.0.so=0-64 libgirepository-2.0.so=0-64 libgmodule-2.0.so=0-64 libgobject-2.0.so=0-64 libgthread-2.0.so=0-64
|
||||
Depends On : bash glibc libffi libsysprof-capture pcre2 util-linux-libs zlib libffi.so=8-64 libmount.so=1-64
|
||||
Optional Deps : dconf: GSettings storage backend
|
||||
glib2-devel: development tools
|
||||
gvfs: most gio functionality
|
||||
> Optional Deps : dconf: GSettings storage backend
|
||||
> glib2-devel: development tools
|
||||
> gvfs: most gio functionality
|
||||
> python: gdbus-codegen
|
||||
Required By : libsecret pinentry
|
||||
Optional For : None
|
||||
Conflicts With : None
|
||||
Replaces : None
|
||||
Installed Size : 37.89 MiB
|
||||
> Installed Size : 38.39 MiB
|
||||
Packager : Jan Alexander Steffens (heftig) <heftig@archlinux.org>
|
||||
Build Date : Wed Jul 29 14:57:16 2026
|
||||
> Build Date : Tue Oct 6 16:19:12 2026
|
||||
Install Date : Sun Oct 4 00:00:00 2026
|
||||
Install Reason : Installed as a dependency for another package
|
||||
Install Script : No
|
||||
Validated By : Signature
|
||||
> Validated By : SHA-256 Sum Signature
|
||||
> Repository : core
|
||||
> Download Size : 5.12 MiB
|
||||
# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Name : glib2
|
||||
Version : 2.88.3-1
|
||||
* Version : 2.90.1-1
|
||||
* Repository : core
|
||||
Description : Low level core library
|
||||
Architecture : x86_64
|
||||
URL : https://gitlab.gnome.org/GNOME/glib
|
||||
Licenses : LGPL-2.1-or-later
|
||||
Groups : None
|
||||
Provides : libglib-2.0.so=0-64 libgio-2.0.so=0-64 libgirepository-2.0.so=0-64 libgmodule-2.0.so=0-64 libgobject-2.0.so=0-64 libgthread-2.0.so=0-64
|
||||
Depends On : bash glibc libffi libsysprof-capture pcre2 util-linux-libs zlib libffi.so=8-64 libmount.so=1-64
|
||||
Optional Deps : dconf: GSettings storage backend
|
||||
glib2-devel: development tools
|
||||
gvfs: most gio functionality
|
||||
* Optional Deps : dconf: GSettings storage backend
|
||||
* glib2-devel: development tools
|
||||
* gvfs: most gio functionality
|
||||
* python: gdbus-codegen
|
||||
Required By : libsecret pinentry
|
||||
Optional For : None
|
||||
Conflicts With : None
|
||||
Replaces : None
|
||||
Installed Size : 37.89 MiB
|
||||
* Installed Size : 38.39 MiB
|
||||
* Download Size : 5.12 MiB
|
||||
Packager : Jan Alexander Steffens (heftig) <heftig@archlinux.org>
|
||||
Build Date : Wed Jul 29 14:57:16 2026
|
||||
* Build Date : Tue Oct 6 16:19:12 2026
|
||||
Install Date : Sun Oct 4 00:00:00 2026
|
||||
Install Reason : Installed as a dependency for another package
|
||||
Install Script : No
|
||||
Validated By : Signature
|
||||
* Validated By : SHA-256 Sum Signature
|
||||
EOF
|
||||
)"
|
||||
log_has 'pacman -Qi -- glib2'
|
||||
@@ -324,21 +324,21 @@ EOF
|
||||
use_fakes pacman
|
||||
run skup show su-dummy-b
|
||||
assert_success
|
||||
assert_output --partial "$(printf '%s\n' 'Version : 1.0-1' '> Version : 2.0-1')"
|
||||
assert_line 'Required By : su-dummy-a'
|
||||
assert_output --partial "$(printf '%s\n' ' Version : 1.0-1' '* Version : 2.0-1')"
|
||||
assert_line ' Required By : su-dummy-a'
|
||||
refute_output --partial '3.0-1'
|
||||
log_has 'pacman -Si -- su-dummy/su-dummy-b'
|
||||
# bash: in the sync list, but no -Si record - the output stays what it was (-Qi, then -Si)
|
||||
run skup show bash
|
||||
assert_success
|
||||
assert_line --index 0 'Name : bash'
|
||||
refute_line --partial '# lines starting with >'
|
||||
assert_line --index 0 ' Name : bash'
|
||||
refute_line --partial '# lines starting with *'
|
||||
# not installed: the candidate alone
|
||||
run skup show su-dummy-new
|
||||
assert_success
|
||||
assert_line --index 0 '# not installed: this is the upstream candidate'
|
||||
assert_line --index 1 'Repository : su-dummy'
|
||||
refute_line --partial '> '
|
||||
assert_line --index 0 '# not installed: lines starting with * come from the upstream candidate (all of them)'
|
||||
assert_line --index 1 '* Repository : su-dummy'
|
||||
refute_line --regexp '^ '
|
||||
run skup show nope
|
||||
assert_failure 1
|
||||
}
|
||||
@@ -508,27 +508,27 @@ EOF
|
||||
run skup show su-dummy-b
|
||||
assert_success
|
||||
assert_output "$(cat <<'EOF'
|
||||
# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Name : su-dummy-b
|
||||
Version : 1.0
|
||||
> Version : 2.0
|
||||
Release : 1
|
||||
Architecture : noarch
|
||||
Size : 15
|
||||
> Size : 6.5 k
|
||||
Source : su-dummy-b-1.0-1.src.rpm
|
||||
> Source : su-dummy-b-2.0-1.src.rpm
|
||||
Repository : @System
|
||||
> Repository : su-dummy
|
||||
Summary : skeptical-updater dummy su-dummy-b (v1.0)
|
||||
> Summary : skeptical-updater dummy su-dummy-b (v2.0)
|
||||
License : MIT
|
||||
Description : Dummy package su-dummy-b version 1.0 for skeptical-updater tests.
|
||||
:
|
||||
: Second paragraph of su-dummy-b 1.0 (blank line above on purpose).
|
||||
> Description : Dummy package su-dummy-b version 2.0 for skeptical-updater tests.
|
||||
> :
|
||||
> : Second paragraph of su-dummy-b 2.0 (blank line above on purpose).
|
||||
# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Name : su-dummy-b
|
||||
Version : 1.0
|
||||
* Version : 2.0
|
||||
Release : 1
|
||||
Architecture : noarch
|
||||
Size : 15
|
||||
* Size : 6.5 k
|
||||
Source : su-dummy-b-1.0-1.src.rpm
|
||||
* Source : su-dummy-b-2.0-1.src.rpm
|
||||
Repository : @System
|
||||
* Repository : su-dummy
|
||||
Summary : skeptical-updater dummy su-dummy-b (v1.0)
|
||||
* Summary : skeptical-updater dummy su-dummy-b (v2.0)
|
||||
License : MIT
|
||||
Description : Dummy package su-dummy-b version 1.0 for skeptical-updater tests.
|
||||
:
|
||||
: Second paragraph of su-dummy-b 1.0 (blank line above on purpose).
|
||||
* Description : Dummy package su-dummy-b version 2.0 for skeptical-updater tests.
|
||||
* :
|
||||
* : Second paragraph of su-dummy-b 2.0 (blank line above on purpose).
|
||||
EOF
|
||||
)"
|
||||
log_has 'dnf -q info --installed su-dummy-b'
|
||||
@@ -536,9 +536,9 @@ EOF
|
||||
# real almalinux:9 records: an identical multi-line Description once, "From repo" (installed only) kept
|
||||
run skup show glibc
|
||||
assert_success
|
||||
assert_output --partial "$(printf '%s\n' 'Release : 275.el9_8' '> Release : 283.el9_8')"
|
||||
assert_line 'From repo : baseos'
|
||||
[[ $(grep -c '^Description : The glibc package contains' <<<"$output") -eq 1 ]]
|
||||
assert_output --partial "$(printf '%s\n' ' Release : 275.el9_8' '* Release : 283.el9_8')"
|
||||
assert_line ' From repo : baseos'
|
||||
[[ $(grep -c '^ Description : The glibc package contains' <<<"$output") -eq 1 ]]
|
||||
[[ $(grep -c 'Linux system will not function\.$' <<<"$output") -eq 1 ]]
|
||||
}
|
||||
|
||||
@@ -547,31 +547,31 @@ EOF
|
||||
FAKE_DNF_MAJOR=5 run skup show su-dummy-b
|
||||
assert_success
|
||||
assert_output "$(cat <<'EOF'
|
||||
# lines starting with > come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Name : su-dummy-b
|
||||
Epoch : 0
|
||||
Version : 1.0
|
||||
> Version : 2.0
|
||||
Release : 1
|
||||
Architecture : noarch
|
||||
Installed size : 15.0 B
|
||||
Source : su-dummy-b-1.0-1.src.rpm
|
||||
> Source : su-dummy-b-2.0-1.src.rpm
|
||||
From repository : <unknown>
|
||||
Summary : skeptical-updater dummy su-dummy-b (v1.0)
|
||||
> Summary : skeptical-updater dummy su-dummy-b (v2.0)
|
||||
URL :
|
||||
License : MIT
|
||||
Description : Dummy package su-dummy-b version 1.0 for skeptical-updater tests.
|
||||
:
|
||||
: Second paragraph of su-dummy-b 1.0 (blank line above on purpose).
|
||||
> Description : Dummy package su-dummy-b version 2.0 for skeptical-updater tests.
|
||||
> :
|
||||
> : Second paragraph of su-dummy-b 2.0 (blank line above on purpose).
|
||||
Vendor : <NULL>
|
||||
> Vendor :
|
||||
> Download size : 6.6 KiB
|
||||
> Repository : su-dummy
|
||||
# lines starting with * come from the upstream candidate: a differing value, or a field the installed record lacks
|
||||
Name : su-dummy-b
|
||||
Epoch : 0
|
||||
Version : 1.0
|
||||
* Version : 2.0
|
||||
Release : 1
|
||||
Architecture : noarch
|
||||
Installed size : 15.0 B
|
||||
Source : su-dummy-b-1.0-1.src.rpm
|
||||
* Source : su-dummy-b-2.0-1.src.rpm
|
||||
From repository : <unknown>
|
||||
Summary : skeptical-updater dummy su-dummy-b (v1.0)
|
||||
* Summary : skeptical-updater dummy su-dummy-b (v2.0)
|
||||
URL :
|
||||
License : MIT
|
||||
Description : Dummy package su-dummy-b version 1.0 for skeptical-updater tests.
|
||||
:
|
||||
: Second paragraph of su-dummy-b 1.0 (blank line above on purpose).
|
||||
* Description : Dummy package su-dummy-b version 2.0 for skeptical-updater tests.
|
||||
* :
|
||||
* : Second paragraph of su-dummy-b 2.0 (blank line above on purpose).
|
||||
Vendor : <NULL>
|
||||
* Vendor :
|
||||
* Download size : 6.6 KiB
|
||||
* Repository : su-dummy
|
||||
EOF
|
||||
)"
|
||||
}
|
||||
@@ -580,16 +580,16 @@ EOF
|
||||
use_fakes dnf rpm
|
||||
run skup show zsh
|
||||
assert_success
|
||||
assert_line --index 0 '# not installed: this is the upstream candidate'
|
||||
assert_line --index 1 'Name : zsh'
|
||||
refute_line 'Available Packages'
|
||||
assert_line --index 0 '# not installed: lines starting with * come from the upstream candidate (all of them)'
|
||||
assert_line --index 1 '* Name : zsh'
|
||||
refute_line --partial 'Available Packages'
|
||||
log_has 'dnf -q info --available zsh'
|
||||
# two installed records (e.g. two architectures): nothing to pair, the output stays dnf -q info
|
||||
FAKE_DNF_INFO_TWICE=installed run skup show su-dummy-a
|
||||
assert_success
|
||||
refute_line --partial '# lines starting with >'
|
||||
assert_line 'Installed Packages'
|
||||
assert_line 'Available Upgrades'
|
||||
refute_line --partial '# lines starting with *'
|
||||
assert_line ' Installed Packages'
|
||||
assert_line ' Available Upgrades'
|
||||
log_has 'dnf -q info su-dummy-a'
|
||||
}
|
||||
|
||||
@@ -673,8 +673,8 @@ EOF
|
||||
use_fakes zypper rpm
|
||||
run skup show su-dummy-a
|
||||
assert_success
|
||||
assert_line 'Information for package su-dummy-a:'
|
||||
refute_line --partial '# lines starting with >'
|
||||
assert_line ' Information for package su-dummy-a:'
|
||||
refute_line --partial '# lines starting with *'
|
||||
log_has 'zypper --non-interactive --quiet info --requires su-dummy-a'
|
||||
run skup show nothing-like-this
|
||||
assert_failure 1
|
||||
|
||||
@@ -43,7 +43,7 @@ setup() {
|
||||
assert_line 'required by: su-dummy-a'
|
||||
run skup show su-dummy-a
|
||||
assert_success
|
||||
assert_line 'Package: su-dummy-a'
|
||||
assert_line ' Package: su-dummy-a'
|
||||
}
|
||||
|
||||
@test "--dry-run works unprivileged: the refresh is printed, not run" {
|
||||
|
||||
Reference in new issue
Block a user