#1219 Packages with sources in Fedora lookaside cache still fail to build SRPM trying to download from http Source URL
Closed: Fixed 3 years ago by praiskup. Opened 4 years ago by churchyard.

All of the trytond* packages fail to build from dit git.

Example: https://copr.fedorainfracloud.org/coprs/g/python/python3.9/build/1162692/

cmd: ['rpkg', 'srpm', '--outdir', '/var/lib/copr-rpmbuild/results52nyspci', '--spec', '/tmp/tmpll4ka_io/trytond-dashboard']
cwd: /tmp/tmpll4ka_io/trytond-dashboard
rc: 0
stdout: Downloading trytond_dashboard-4.0.1.tar.gz from lookaside cache at src.fedoraproject.org

Wrote: /var/lib/copr-rpmbuild/results52nyspci/trytond-dashboard.spec
stderr: warning: Downloading http://downloads.tryton.org/4.0/trytond-dashboard-4.0.1.tar.gz to /var/lib/copr-rpmbuild/results52nyspci/trytond-dashboard-4.0.1.tar.gz
curl: (1) Protocol "http" not supported or disabled in libcurl
error: Couldn't download http://downloads.tryton.org/4.0/trytond-dashboard-4.0.1.tar.gz
Failed to execute command.

There are several things I've noticed:

  • the sources are available in lookaside cache at src.fedoraproject.org
  • I don't need them to be downloaded from Source URL
  • I don't need http sources to stop the SRPM build, I don't need them used at all

I appreciate the security here, non-https URLs are dangerous, but in this case, the download should IMHO never be attempted in the first place.


BTW the Source URL is 404 and I remember this problem even when http URLs were working, the SRPM build used to fail because of the 404 error before, which is equally not needed.

This looks like something is broken in rpkg-util, because the Source0 actually
is downloaded:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.9/srpm-builds/01162692

Upstream ticket: https://pagure.io/rpkg-util/issue/24

Metadata Update from @praiskup:
- Issue tagged with: bug

4 years ago

Otherwise, better support of dist-git/s could help here:
https://pagure.io/copr/copr/issue/529

Per discussion in rpkg-util/issue/24, the problem is that at the time of evaluating
%global pkgname %(echo \"%{name}\" | sed 's/-/_/g')
there's no Name: defined yet. So it evaluates as unexpanded '%name' string.

Later, when it is defined, this re-expands to the variant with dash.

I can imagine this is probably contrary to what everyone suggests, but using
%define instead of %global would work fine. Or moving the definition of the
macro below Name: tag.

The rpkg-util will unlikely define _disable_source_fetch. So until we have
#529 implemented, I don't think it is wise to implement any hacks on copr
side for this minor case. Or how severe do you think this issue is?

Or how severe do you think this issue is?

I think this is pretty much just another symptom of https://pagure.io/copr/copr/issue/529 - we don't need no rpkg-util, it just makes things worse. Every quirk like this is caused by this tool being too clever. We just need to build from dist git. I don't have data, but I suspect a lot of other people do and they expect "rpkg" to mean that.

@churchyard @praiskup can you tell me what features you would like too see from rpkg to be a viable solution for building from distgit?

rpkg-util? no features at all.
rpkg? get sources from lookaside cache, create srpm from it

Another symptom of this bug is this failure of abrt that happens in Copr only:

+ autoconf
/usr/bin/autoconf: This script requires a shell more modern than all
/usr/bin/autoconf: the shells that I found on your system.
/usr/bin/autoconf: Please tell bug-autoconf@gnu.org about your system,
/usr/bin/autoconf: including any error possibly output before this
/usr/bin/autoconf: message. Then install a modern shell, or manually run
/usr/bin/autoconf: the script under such a shell if you do have one.
error: Bad exit status from /var/tmp/rpm-tmp.Pu1okt (%build)

https://copr.fedorainfracloud.org/coprs/g/python/sphinx-3.2.x/package/abrt/

While in Koji it works:

https://koschei.fedoraproject.org/package/abrt?collection=f33

That is caused by the fact that Copr downloads the sources from the internet and not the lookaside cache, which has different source tarball in it. See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/7VLW4UAEQCOG4VF4275YKX52C74NFKUF/

Per discussion in https://pagure.io/copr/copr/issue/529 , we have to disable the automatic
source fetching done by RPM. Doing %_disable_source_fetch 0 causes that RPM
tries to download (or somehow check) sources, even though these are already downloaded.

No, I already knew before what this is about (I mean the comment https://pagure.io/copr/copr/issue/1219#comment-621855), and I forgot about it -- and needed to re-debug this :-(

Anyway, even though I think that the package is buggy (we shouldn't expect
that %name macro is working before Name is defined), it doesn't make sense
to have %_disable_source_fetch 0. It only brings additional headaches and differences
from Koji.

Metadata Update from @praiskup:
- Issue assigned to praiskup

3 years ago

Login to comment on this ticket.

Metadata
Related Pull Requests
  • #1511 Merged 3 years ago