[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