You are not logged in.

#1 2024-09-30 06:58:12

nphuracm
Member
From: China
Registered: 2022-07-16
Posts: 60

About dependencies of the 'suyu-*' and 'citra-*' packages

It has recently come to my attention that the PKGBUILDs of the suyu-* (example: suyu-dev-git) and citra* (example: citra-git) packages have a lot of dependencies listed in the 'source=' field.
Take the citra-git PKGBUILD as an example:

source=("git+https://github.com/PabloMK7/citra"
        "boost::git+https://github.com/PabloMK7/ext-boost.git"
        "git+https://github.com/neobrain/nihstro.git"
        "git+https://codeberg.org/soundtouch/soundtouch.git"
        "catch2::git+https://github.com/catchorg/Catch2"
        "git+https://github.com/PabloMK7/dynarmic.git"
        "git+https://github.com/herumi/xbyak.git"
        "git+https://github.com/fmtlib/fmt.git"
        "git+https://github.com/lsalzman/enet.git"
        "git+https://github.com/benhoyt/inih.git"
        "libressl::git+https://github.com/PabloMK7/ext-libressl-portable.git"
        "git+https://github.com/libusb/libusb.git"
        "git+https://github.com/mozilla/cubeb"
...

And while some of the repositories listed here provide dependencies not present in depends or makedepends, some of the repositories provide dependencies that are already listed in depends or makedepends, for example listing "sdl2::git+https://github.com/libsdl-org/SDL" in source while at the same time listing 'sdl2' in depends. Even for dependencies listed in source but not (make)depends, some of them are already available from the AUR and it would make sense to just include their respective package names in (make)depends either. In my opinion, this design (current layout for suyu and citra) potentially introduces the presence of redundant duplicate libraries in the computer, which can lead to storage space waste.

As a comparison, cemu-git's PKGBUILD has most of its dependencies listed in depends or makedepends, even though some of which are only available in the AUR and that upstream documentation specifies these dependencies to be included in the cemu repository as submodules. The only exception is imgui, which is listed in source but not in depends, while being available as another AUR package.

What might be the reason behind writing their PKGBUILDs for these specific applications (suyu, citra) in this manner?

Offline

#2 2024-09-30 07:18:37

seth
Member
Registered: 2012-09-03
Posts: 57,289

Re: About dependencies of the 'suyu-*' and 'citra-*' packages

According to https://git.suyu.dev/suyu/suyu/wiki/Building-for-Linux

suyu-dev-git wrote:

-DSUYU_USE_EXTERNAL_SDL2=OFF \

actually means to use the system sdl, but about the idea behind the build config idk and you'll best just ask in the package comments. The various upstream build descriptions might have confused them and the PKGBUILD is simply misconfigured as result.

Generally one might want to bundle specific library versions at compile time because of API/ABI concerns (particuarly w/ fast developing early versions where this stuff breaks all the time) but sdl2 or libusb would rather not fall into that category.

Offline

Board footer

Powered by FluxBB