[aur-general] Are AUR VCS packages that depend on AUR VCS packages from other projects a good idea and who should decide on that ?

Lone_Wolf lonewolf at xs4all.nl
Wed May 1 10:38:41 UTC 2019


On 01-05-2019 05:18, Doug Newgard via aur-general wrote:
> You're still not getting it. The diff you gave shows that the only 
> differences
> are in the depends and madedepends arrays. If that's the only difference, then
> there *IS NO DIFFERENCE*. A dep on "llvm-libs" is satisfied by llvm-libs-git,
> so it works in both cases, just as is intended. There is no editing the
> PKGBUILD needed by users of either option. That's how "provides" works.
>
> Scimmia


I know how conflicts/provides/replaces work.

It seems I failed to make clear that the major problems I see occur at 
install and runtime, NOT at buildtime.

Here's another attempt to explain that.


Hypothetical example

Assumptions :

mesa-git depends on llvm and llvm-libs

AUR only has one mesa-git package

User builds in clean chroot with devtools

User wants mesa feature X, finds they need to run mesa-git for that.


User clones aur mesa-git and builds with extra-x86_64-build

makepkg sees llvm / llvm-libs dependencies are satisfied by extra/llvm 
and extra/llvm-libs.

mesa-git is build against those versions

user installs mesa-git, pacman sees llvm-libs is needed and finds 
extra/llvm-libs installed.


User runs mesa-git, realizes feature X is not working.

Investigation reveals feature X is not supported by stable llvm, user 
needs to built mesa-git against llvm-git.

User builds llvm-git + llvm-libs-git in clean chroot.

In order to use the llvm-git for mesa-git building they add the packages 
manually to extra-x86_64-build.

They now have a mesa-git build against llvm-git and install that.

pacman sees mesa-git depends on llvm-libs , and that's satisfied by 
extra/llvm-libs.

user tries again , mesa-git crashes.


User asks for help on forum.

Someone that understands how mesa and llvm interact, suggests they try 
installing llvm-libs-git .

User installs that, mesa-git works and feature X also works .

User is happy, tries to figure out how to avoid similar issues in future.


Someone points out that the mesa-git crash was caused by pacman being 
unaware which llvm-libs binary version was needed.

Simple solution : edit depends in PKGBUILD to have mesa-git depend on 
llvm-git / llvm-libs-git .


User stays happy with mesa-git built against llvm trunk and rebuilds 
every week.

Then mesa-git maintainer adds a patch for a build error.

User clones mesa-git again, re-edits PKGBUILD to keep building against 
llvm trunk.

A week later mesa devs have solved the build error, mesa-git maintainer 
removes patch.

User clones mesa-git PKGBUILD, re-edits PKGBUILD again.

A while later User gets tired of having to edit PKGBUILD and decides to 
create a new AUR package : mesa-git-build-against-llvm-git that hard 
depends on llvm trunk.


AUR now has 2 mesa-git packages.


Maintainers talk and realise having one mesa-git package that allows 
building against llvm stable or llvm trunk is very likely to cause 
confusion and problems.

Mesa-git maintainer will have mesa-git hard depend on specific llvm 
stable versions, while mesa-git-build-against-llvm-git will continue to 
hard depend on llvm git .

<end-of-hypothetical-example>


Is that a clear enough explanation why I want mesa-git packages to 
depend on llvm trunk OR llvm stable and not both ?

Lone_Wolf


More information about the aur-general mailing list