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

PKGBUILD with multiple targets forces all packages to build & install #688

Open
ratijas opened this issue Jan 18, 2021 · 1 comment
Open
Labels
request A feature request from a user.

Comments

@ratijas
Copy link
Contributor

ratijas commented Jan 18, 2021

Summary

Installing one AUR package may actually install multiple as explicit.

Description

If one PKGBUILD describes multiple packages/targets at once, aura forces installation of all those packages, not just the ones explicitly asked by user. What's worse, other packages are installed as explicit (not dependencies), so it is impossible to simply remove the one you asked for earlier.

Expected behavior

Only build and install what was asked for, ignore the rest.

Actual behavior

sudo aura -A dotnet-host-bin

I'm not sure I wanted all that bouquet. Just the roses, please.

Note that dotnet-host-bin which was requested is pretty much self-contained, and declares no dependencies whatsoever.

❯ aura -Qi dotnet-host-bin
Name            : dotnet-host-bin
Version         : 5.0.2.sdk102-1
[...]
Provides        : dotnet-host  dotnet-host=5.0.2
Depends On      : None
Optional Deps   : None
Required By     : dotnet-runtime-bin
Optional For    : None
Conflicts With  : dotnet-host
Replaces        : None
[...]

Additional information

PKGBUILD for dotnet family of packages, which causes this problem: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=dotnet-core-bin

Alternatives

pacaur builds all packages specified in PKGBUILD, but in the end only installs what was asked for. I tried it after manually cleaning all the .NET packages installed by aura.

pacaur -S dotnet-host-bin

$ pacaur -S dotnet-host-bin
:: Package dotnet-host-bin not found in repositories, trying AUR...
:: resolving dependencies...
:: looking for inter-conflicts...

AUR Packages (1) dotnet-host-bin-5.0.2.sdk102-1

:: Proceed with installation? [Y/n]
:: Retrieving package(s)...
clone complete: /Volumes/ExtHD/archlinux/pacaur/dotnet-core-bin
:: View dotnet-core-bin PKGBUILD? [Y/n] y
:: dotnet-core-bin PKGBUILD viewed
:: Checking dotnet-host-bin integrity...
==> Making package: dotnet-core-bin 5.0.2.sdk102-1 (Mon 18 Jan 2021 10:38:48 AM MSK)
==> Retrieving sources...
-> Downloading dotnet-sdk-5.0.102-linux-x64.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 130M 100 130M 0 0 2631k 0 0:00:50 0:00:50 --:--:-- 2795k
==> Validating source_x86_64 files with sha512sums...
dotnet-sdk-5.0.102-linux-x64.tar.gz ... Passed
:: Preparing dotnet-host-bin...
==> Making package: dotnet-core-bin 5.0.2.sdk102-1 (Mon 18 Jan 2021 10:40:05 AM MSK)
==> WARNING: Skipping dependency checks.
==> Retrieving sources...
-> Found dotnet-sdk-5.0.102-linux-x64.tar.gz
==> WARNING: Skipping all source file integrity checks.
==> Extracting sources...
-> Extracting dotnet-sdk-5.0.102-linux-x64.tar.gz with bsdtar
==> Sources are ready.
:: Building dotnet-host-bin package(s)...
==> Making package: dotnet-core-bin 5.0.2.sdk102-1 (Mon 18 Jan 2021 10:41:02 AM MSK)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Entering fakeroot environment...
==> Starting package_dotnet-host-bin()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "dotnet-host-bin"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Starting package_aspnet-runtime-bin()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "aspnet-runtime-bin"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Starting package_dotnet-runtime-bin()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "dotnet-runtime-bin"...
-> Generating .PKGINFO file...
==> WARNING: Library listed in 'depends' is not required by any files: libcurl.so
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Starting package_dotnet-sdk-bin()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "dotnet-sdk-bin"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Starting package_netstandard-targeting-pack-bin()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "netstandard-targeting-pack-bin"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Starting package_dotnet-targeting-pack-bin()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "dotnet-targeting-pack-bin"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Starting package_aspnet-targeting-pack-bin()...
==> Tidying install...
-> Removing libtool files...
-> Purging unwanted files...
-> Stripping unneeded symbols from binaries and libraries...
-> Compressing man and info pages...
==> Checking for packaging issues...
==> Creating package "aspnet-targeting-pack-bin"...
-> Generating .PKGINFO file...
-> Generating .BUILDINFO file...
-> Generating .MTREE file...
-> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: dotnet-core-bin 5.0.2.sdk102-1 (Mon 18 Jan 2021 10:42:32 AM MSK)
==> Cleaning up...
:: Installing dotnet-host-bin package(s)...
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (1) dotnet-host-bin-5.0.2.sdk102-1

Total Installed Size: 0.57 MiB

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [---------------------------------------------] 100%
(1/1) checking package integrity [---------------------------------------------] 100%
(1/1) loading package files [---------------------------------------------] 100%
(1/1) checking for file conflicts [---------------------------------------------] 100%
(1/1) checking available disk space [---------------------------------------------] 100%
:: Running pre-transaction hooks...
(1/1) Performing snapper pre snapshots for the following configurations...
==> root: 2362
:: Processing package changes...
(1/1) installing dotnet-host-bin [---------------------------------------------] 100%
:: Running post-transaction hooks...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Removing unnecessary cached files (keeping the latest two)…
==> no candidate packages found for pruning
(3/3) Performing snapper post snapshots for the following configurations...
==> root: 2363

Version

aura-bin: 3.2.2-1

@fosskers
Copy link
Owner

Ah nice edge case you've found. Yes this is reasonable - Aura would have to refilter the list of tarballs that were created in the end to only match:

  1. The main package that was asked for.
  2. Dependencies of that main package that were also built via that same PKGBUILD.

@fosskers fosskers added the request A feature request from a user. label Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
request A feature request from a user.
Projects
None yet
Development

No branches or pull requests

2 participants