Hide Forgot
Description of problem: Sometimes dnf builddep fails because can't parse specfile providing no clue of what happened wrong Version-Release number of selected component (if applicable): dnf-plugins-core-4.0.2.2-3.el8.noarch How reproducible: Sometimes for some spec files Steps to Reproduce: 1. rpm2cpio systemd-239-13.el8_0.5.src.rpm | cpio -civ '*.spec' 2. dnf builddep systemd.spec Actual results: Failed to open: 'systemd.spec', not a valid spec file: can't parse specfile Error: Some packages could not be found Expected results: Build deps are installed or at least descriptive msg is provided of what is going on Additional info: - posting here not in systemd bug because systemd builds OK with this spec so, how it can be build with 'truly wrong spec' ? - rpmlint shows same error: 'not a valid spec' - it seems, that fc28 has the same bug (tested on systemd-238-12.git07f8cd5.fc28.src.rpm + dnf-plugins-core-2.1.5-4.fc28) - dnf builddep for same src.rpm works OK: # dnf builddep systemd-239-13.el8_0.5.src.rpm # -> builddeps are installed
I'm afraid all we can do here is to present error message from rpm in builddep command output. There is actually a pull request on this (https://github.com/rpm-software-management/dnf-plugins-core/pull/320). To find out build requirements from a .spec file we use rpm to parse it and in this case rpm fails (and so does rpmlint). However, by using rpmspec tool, you can see more details: # rpmspec -q systemd.spec error: Unable to open /root/rpmbuild/SOURCES/triggers.systemd: No such file or directory error: query of specfile systemd.spec failed, can't parse So basically rpm is not able to read source file mentioned in the spec file. You need to install this sourcerpm first to get list of requirements: # rpm -i systemd-239-13.el8_0.5.src.rpm # dnf builddep rpmbuild/SPECS/systemd.spec Updating Subscription Management repositories. Last metadata expiration check: 0:23:08 ago on Mon Jul 1 08:42:11 2019. Package firewalld-filesystem-0.6.3-7.el8.noarch is already installed. Package gawk-4.2.1-1.el8.x86_64 is already installed. Package gettext-0.19.8.1-14.el8.x86_64 is already installed. No matching package to install: 'gnu-efi' No matching package to install: 'gnu-efi-devel' No matching package to install: 'gobject-introspection-devel' No matching package to install: 'gperf' No matching package to install: 'kmod-devel' No matching package to install: 'libidn2-devel' No matching package to install: 'libmicrohttpd-devel' No matching package to install: 'libmount-devel' No matching package to install: 'libseccomp-devel' Package libxslt-1.1.32-3.el8.x86_64 is already installed. No matching package to install: 'meson >= 0.43' Package pkgconf-pkg-config-1.4.2-1.el8.x86_64 is already installed. Package python3-lxml-4.2.3-1.el8.x86_64 is already installed. Package xz-5.2.4-3.el8.x86_64 is already installed. Not all dependencies satisfied Error: Some packages could not be found. I do not have all needed repositories set on my RHEL8 virtual machine but as you see, now spec file is successfully parsed and dnf is trying to install missing dependencies. With patch https://github.com/rpm-software-management/dnf-plugins-core/pull/320 applied you will get more helpful output: # dnf builddep systemd.spec Last metadata expiration check: 0:23:51 ago on Po 1. července 2019, 14:50:19 CEST. error: Unable to open /root/rpmbuild/SOURCES/triggers.systemd: No such file or directory Failed to open: 'systemd.spec', not a valid spec file: can't parse specfile Error: Some packages could not be found.
PR: https://github.com/rpm-software-management/dnf-plugins-core/pull/320
*** Bug 1658292 has been marked as a duplicate of this bug. ***
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2019:3583