You are not logged in.

#1 2023-05-11 15:29:36

daniel7558
Member
Registered: 2017-01-26
Posts: 3

Resolve AUR dependencies in package

Hi all,

I am trying to clean up my system by moving installed packages into my own meta-packages that I would then install on all of my machines to have the same software available everywhere.
I set up my own repository and added it to

/etc/pacman.conf

. So far so good.

When it comes to AUR packages, pacman would obviously not know how to get them, so I thought yay, trizen, ... would be able to resolve them. However, they don't.
Is there a AUR helper that can resolve AUR dependencies for non-AUR packages? I tried to find a flag for this but could not find anything. (Depending on your view, this might even be considered a security vulnerability, so not sure if this would be supported at all.)

Does somebody know how to deal with this issue or have a workaround?
I thought about building the AUR packages once and adding them to my custom repository, however, I would prefer to build them locally on each machine.


Cheers,
Daniel


For example:

setup-academia

is my meta package that I host in my own repo.

zoom

is the AUR package on which

setup-academia

depends.

yay -S setup-academia  
resolving dependencies...
warning: cannot resolve "zoom", a dependency of "setup-academia"
:: The following package cannot be upgraded due to unresolvable dependencies:
      setup-academia
...

Offline

#2 2023-05-11 17:19:01

Scimmia
Fellow
Registered: 2012-09-01
Posts: 11,561

Re: Resolve AUR dependencies in package

daniel7558 wrote:

I thought about building the AUR packages once and adding them to my custom repository, however, I would prefer to build them locally on each machine.

Then why have a custom repository at all? You want some things pre-built and some things not? Why?

Offline

#3 2023-05-11 17:33:52

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 29,534
Website

Re: Resolve AUR dependencies in package

#!/bin/sh

builddir=/tmp/aur
mkdir -p $builddir

pacman -Sp $(expac -S %D $@) 2>&1 >/dev/null \
	| cut -d' ' -f5 \
	| while read aurpkg; do
		git clone https://aur.archlinux.org/${aurpkg}.git ${builddir}/${aurpkg}
		cd ${builddir}/${aurpkg}
		makepkg -si --asdeps
	done

pacman -S $@

Keep in mind the assumption here that pkgname==pkgbase.  This assumption has been adequate for my use of the AUR, but there are exceptions.  To "fix" this assumption, replace the git clone command as desired.

(usage: pass this script a list of your metapackages that you want to install)

Note this was mostly done because I was bored.  Meta packages for your use case are just a really bad idea (they'd be a great idea if you built the AUR packages once and added them to your repo).  For your use, just get a list, then on each new system:

$AURHELPER -S < /path/to/pkg.list

Or if you really want to use your meta packages still:

$AURHELPER -S --asdeps < /path/to/pkg.list
pacman -D --asexplicit $YourMeta1 $YourMeta2 $YourMeta3

Last edited by Trilby (2023-05-11 17:41:54)


"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" -  Richard Stallman

Offline

Board footer

Powered by FluxBB