openSUSE / open-build-service

Build and distribute Linux packages from sources in an automatic, consistent and reproducible way #obs
https://openbuildservice.org
GNU General Public License v2.0
933 stars 438 forks source link

Regression: OBS does not install gzip when building Arch Linux packages, which breaks builds #13403

Closed antermin closed 1 year ago

antermin commented 1 year ago

Issue Description

gzip, which is part of the base-devel group, and required by the base package on Arch Linux, should be already installed when building packages.

https://wiki.archlinux.org/title/PKGBUILD says:

The group base-devel is assumed to be already installed when building with makepkg. Members of this group should not be included in makedepends array.

Recently, for unknown reason, OBS no longer installs gzip (unless gzip is explicitly specified in makedepends array). Arch Linux package builds thus fail with ERROR: Cannot find the gzip binary required for compressing man and info pages..

Expected Result

OBS should make sure that:

  1. All dependencies required by the base package are installed. (base is the "minimal package set to define a basic Arch Linux installation".)
  2. All members in the base-devel group are installed.

How to Reproduce

  1. Try to build an Arch Linux package, e.g. virtualbox-host-modules-arch
  2. View the build log

Further Information

danidoni commented 1 year ago

Sorry, but I will have to close this as well. There's nothing we can do about this in the OBS source code.

What you are reporting here is a "packaging issue".

You should forward your issue to the packaging mailinglist. I'm sure you will get help regarding why this package is not building.

Thanks for your consideration.

luc14n0 commented 1 year ago

Actually this is not a packaging issue. Arch Linux builds were working fine -- obviously gzip was, somehow, being pulled before -- and now it's not.

Let's take osc from openSUSE:Tools project as an example. Currently it's on version 0.182.0. The last change to PKGBUILD was this:

@@ -1,5 +1,5 @@
 pkgname=osc
-pkgver=0.181.0
+pkgver=0.182.0
 pkgrel=0
 pkgdesc="Open Build Service client"
 arch=('x86_64')

That's from revision 371. It built fine, since we have binaries for it.

Than something changed and now it fails with:

warning: /etc/pacman.conf installed as /etc/pacman.conf.pacnew
now finalizing build dir...
SIOCSIFADDR: File exists
Running build time source services...
Preparing sources...
==> ERROR: Cannot find the gzip binary required for compressing man and info pages.
failed to prepare sources

See the job history.

In Arch:Core project we can see the wary red triangle, meaning something's not right and in the project configuration we can see that gzip is no longer a Preinstall requirement -- that is, assuming this is how gzip was being there before for Arch builds without the need to explicitly requiring it.


P.S.

Of course this problem still doesn't fit this repo. The first thing to try, IMO, would be the buildservice mailing list. If the maintainer of Arch:Core doesn't reply there, a direct email to them seems a reasonable next step.

In cases like this I wish there was a way to send a request to modify the project's configuration too :smile:

antermin commented 1 year ago

@roman-neuhauser

Can you please look into this issue?

danidoni commented 1 year ago

Actually this is not a packaging issue. Arch Linux builds were working fine -- obviously gzip was, somehow, being pulled before -- and now it's not.

Thanks for the explanation @luc14n0!

antermin commented 1 year ago

The maintainer of Arch:Core still has not responded to the ping.

Are there any other admins / mods who can make changes to the Arch:Core project? I hope there will be at least a temporary fix, so that we can continue building Arch packages.

danidoni commented 1 year ago

I've been told that you can ask for help in the Factory mailing list

DimStar77 commented 1 year ago

I've been told that you can ask for help in the Factory mailing list

Factory mailing list deals with openSUSE distributions in development (i.e. Tumbleweed, MicroOS, Leap, 'future'). Arch building is not related to any openSUSE distribution -> so, no, that list won't be useful for this issue

danidoni commented 1 year ago

I've been told that you can ask for help in the Factory mailing list

Factory mailing list deals with openSUSE distributions in development (i.e. Tumbleweed, MicroOS, Leap, 'future'). Arch building is not related to any openSUSE distribution -> so, no, that list won't be useful for this issue

Okay, my bad then. Sorry for the noise.

hellcp-work commented 1 year ago

What Luciano said is valuable, try the Build Service mailing list

DimStar77 commented 1 year ago

osc rdiff -r 36:37 Arch:Core/_project

That eliminated -Required: base-devel from the prjconf, which, reading this ticket, seems like ARch packagers would rely on.

OTOH that happened in September 2020; feels a bit long to be the relevant change

luc14n0 commented 1 year ago

What Luciano said is valuable, try the Build Service mailing list

I should've reported back, as I had taken a look at the Pulse of Arch:Core and, just like Dominique said, there's no recent changes to the project configuration that would result in the problem we're seeing.

Also, I'm gonna propose a PR to our obs-build repo that should fix this problem.

luc14n0 commented 1 year ago

osc rdiff -r 36:37 Arch:Core/_project

That eliminated -Required: base-devel from the prjconf, which, reading this ticket, seems like ARch packagers would rely on.

OTOH that happened in September 2020; feels a bit long to be the relevant change

I don't know if back in 2020 things were different, but nowadays base-devel is a package group, so if we use Required: base-devel we get a unresolvable :disappointed:


P.S.

No, there was no base-devel package, it seems.

antermin commented 1 year ago

Can this issue be transferred (and reopened) to openSUSE/obs-build?

hennevogel commented 1 year ago

This is not a code issue. You will need to contact the maintainers of build.o.o, they are reachable at admin@opensuse.org

antermin commented 1 year ago

Hello @hennevogel, I have followed your suggestion and created the ticket 8 days ago, but there is still no update.

mlschroe commented 1 year ago

I've added 'gzip' to the support packages list.

mlschroe commented 1 year ago

Regarding base-devel: the package list of a group is coming from the packages itself, right? I.e. "base-devel" is all packages that have "base-devel" in their groups attribute? If that's the case then we can't really use it in OBS, nothing looks at the "groups" definition. (It's also kinda weird that any package from anywhere can make itself be a part of the "base-devel" set)

luc14n0 commented 1 year ago

You got that part almost right, the list is defined in the group itself - it's not a package.

I think there's a "smart" way we could go about this, @mlschroe. We could make a meta package containing all the packages from the base-devel package group, but only packages that are really useful in our build environment. This way it's easier to add/exclude packages from it, a package maintainer could take care of this, and no need to tweak the project configuration - regarding this matter -, and we could keep a changelog, something that project configurations also have, but are well hidden from the most users. I could create this meta package, if it's of interest.


P.S.

After revisiting this idea, it won't really fit best for us due to the nuances of using Required and Support in the project configuration. Making a meta-package will steal the ability of separating the packages between those two definitions.

antermin commented 1 year ago

base-devel is now a meta package instead of a group.

See also: https://archlinux.org/news/switch-to-the-base-devel-meta-package-requires-manual-intervention/