Skip to content

Fetching packages for local build requires expensive/failing API call #2067

@ItachiSan

Description

@ItachiSan

Describe the bug
Downloading packages for a local build performs a call such as:

GET https://api.opensuse.org/build/Arch:Extra/standard/x86_64/_repository?binary=cudnn&binary=git&binary=cuda&binary=nvidia-utils&binary=perl-mailtools&binary=zlib-ng&binary=perl-error&binary=opencl-nvidia&binary=libglvnd&binary=egl-wayland&binary=egl-gbm&binary=egl-wayland2&binary=egl-x11&binary=perl-timedate&binary=libxext&binary=wayland&binary=libdrm&binary=eglexternalplatform&binary=libx11&binary=libxcb&binary=xorgproto&binary=default-cursors&binary=libxau&binary=libxdmcp&binary=xcb-proto&binary=mesa&binary=llvm-libs&binary=libxxf86vm&binary=libxshmfence&binary=lm_sensors&binary=spirv-tools&binary=python-yaml&binary=breezy&binary=mercurial&binary=python-dateutil&binary=subversion&binary=libyaml&binary=python-configobj&binary=python-dulwich&binary=python-merge3&binary=python-fastbencode&binary=python-patiencediff&binary=python-six&binary=libutf8proc&binary=apr&binary=apr-util&binary=serf&binary=python-urllib3&view=cpio

I believe this call requests a cpio archive of all needed dependencies.
However, in case of big dependencies, such as cuda, this might fail, leaving no packages in the cache and forcing a re-download which will fail.

Versions

  • Operating system: Arch Linux
  • Packages: osc 1.24.0-0 (from openSUSE:Tools)

To Reproduce
Steps to reproduce the behavior:

  1. Create a new package with the provided PKGBUILD:
    PKGBUILD
  2. Run: osc build; provide --http-debug to see all HTTP requests
  3. On a personal connection, the request will likely take a very long time and/or fail

Expected behavior
Dependencies are downloaded properly and build succeed.

I would recommend downloading each package (can be done in parallel) or split the cpio accordingly

Screenshots, console outputs
Log of osc build --http-debug has been attached.
build.log

Additional context
I was hoping to get the packages via curl but it seems the URLs do not work.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions