Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with PKGBUILD repositories and provides #1185

Open
iyanmv opened this issue Apr 28, 2024 · 0 comments
Open

Issue with PKGBUILD repositories and provides #1185

iyanmv opened this issue Apr 28, 2024 · 0 comments

Comments

@iyanmv
Copy link

iyanmv commented Apr 28, 2024

Affected Version

paru v2.0.3 - libalpm v14.0.0

Description

When a PKGBUILD repo contains multiple PKGBUILDs that provide e.g., the same library, there is no option to choose which one to build/install. Even specifying the full reponame/pkgname does not work, and paru uses the first package that provides that.

For example, I maintain both oqsprovider and oqsprovider-git. If I do paru -S oqsprovider, oqsprovider-git is built instead:

$ paru -S oqsprovider                                                                                                                                                                         iyan@bespin
Enter Password or Place finger on fingerprint reader: 

:: Resolving dependencies...
:: Calculating conflicts...
:: Calculating inner conflicts...

Repo Make (3) python-markupsafe-2.1.5-2  python-jinja-1:3.1.3-2  python-tabulate-0.9.0-3
Pkgbuilds (1) oqsprovider-git-r195.66ee770-1

:: Proceed with installation? [Y/n]:
paru -S aur-iyanmv/oqsprovider                                                                                                                                                              iyan@bespin
:: Resolving dependencies...
:: Calculating conflicts...
:: Calculating inner conflicts...

Repo Make (3) python-markupsafe-2.1.5-2  python-jinja-1:3.1.3-2  python-tabulate-0.9.0-3
Pkgbuilds (1) oqsprovider-git-r195.66ee770-1

:: Proceed with installation? [Y/n]:
paru -Ss oqsprovider                                                                                                                                                                  130 ↵ iyan@bespin
aur-iyanmv/oqsprovider-git r195.66ee770-1
    OpenSSL 3 provider containing post-quantum algorithms
aur-iyanmv/oqsprovider 0.6.0-1
    OpenSSL 3 provider containing post-quantum algorithms
aur/oqsprovider 0.6.0-1 [+1 ~0.00]
    OpenSSL 3 provider containing post-quantum algorithms
aur/oqsprovider-git r195.66ee770-1 [+1 ~0.00]
    OpenSSL 3 provider containing post-quantum algorithms

This works correctly with AUR only:

paru -Sa oqsprovider                                                                                                                                                                    1 ↵ iyan@bespin
:: Resolving dependencies...
:: There are 2 providers available for oqsprovider:
:: Repository AUR:
    1) oqsprovider  2) oqsprovider-git  
Enter a number (default=1):

Output

paru.conf

[options]
PgpFetch
Devel
Provides
DevelSuffixes = -git -cvs -svn -bzr -darcs -always -hg -fossil
SudoLoop
Rebuild = all
Provides = all

LocalRepo = iyanmv
Chroot = /home/iyan/Archlinux/chroot
Sign = 204C461FBA8C81D10327E647422E3694311E5AC1
SignDb = 204C461FBA8C81D10327E647422E3694311E5AC1

[aur-iyanmv]
Path = /home/iyan/Documents/ArchLinux/PKGBUILDs
SkipReview

pacman.conf

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

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg     = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 8

# 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

# 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`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

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

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

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

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

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

[multilib-testing]
Include = /etc/pacman.d/mirrorlist

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

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

[iyanmv]
SigLevel = Optional TrustAll
Server = file:///home/iyan/Archlinux/repos/iyanmv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant