Tito: ERROR: Please run 'dnf builddep mirafetch.spec' as root

Hi,

I am trying to follow How to Publish your Software on Copr, Fedora’s User Repository :: Fedora Docs to build GitHub - osalbahr/mirafetch.

I am at the step to tito build --rpm --test but I am getting the following error:

$ tito build --rpm --test
Creating output directory: /tmp/tito
Building package [mirafetch-0.1.0-1]
Wrote: /tmp/tito/mirafetch-git-0.8988efe.tar.gz
setting SOURCE_DATE_EPOCH=1759190400
Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.Z38cs4
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.jBNQgz
+ umask 022
+ cd /tmp/tito/rpmbuild-mirafetchhr9dsrfa/BUILD/mirafetch-0.1.0-build
+ cd /tmp/tito/rpmbuild-mirafetchhr9dsrfa/BUILD/mirafetch-0.1.0-build
+ rm -rf mirafetch-git-0.8988efe
+ /usr/lib/rpm/rpmuncompress -x /tmp/tito/rpmbuild-mirafetchhr9dsrfa/SOURCES/mirafetch-git-0.8988efe.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd mirafetch-git-0.8988efe
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/lib/rpm/rpmuncompress /tmp/tito/rpmbuild-mirafetchhr9dsrfa/SOURCES/mirafetch-fix-metadata-auto.diff
+ /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f
+ set -euo pipefail
+ /usr/bin/mkdir -p target/rpm
+ /usr/bin/ln -s rpm target/release
+ /usr/bin/rm -rf .cargo/
+ /usr/bin/mkdir -p .cargo
+ cat
+ cat
+ /usr/bin/rm -f Cargo.lock
+ /usr/bin/rm -f Cargo.toml.orig
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.yXkFG6
+ umask 022
+ cd /tmp/tito/rpmbuild-mirafetchhr9dsrfa/BUILD/mirafetch-0.1.0-build
+ cd mirafetch-git-0.8988efe
+ /usr/bin/cargo2rpm --path Cargo.toml buildrequires --with-check
+ RPM_EC=0
++ jobs -p
+ exit 0
error: Failed build dependencies:
	(crate(anyhow/default) >= 1.0.71 with crate(anyhow/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(arcstr) >= 1.2.0 with crate(arcstr) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(clap/default) >= 4.5.0 with crate(clap/default) < 5.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(clap/derive) >= 4.5.0 with crate(clap/derive) < 5.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(crossterm) >= 0.28.0 with crate(crossterm) < 0.29.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(crossterm/events) >= 0.28.0 with crate(crossterm/events) < 0.29.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(directories/default) >= 5.0.0 with crate(directories/default) < 6.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(exitcode/default) >= 1.1.0 with crate(exitcode/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(glob/default) >= 0.3.1 with crate(glob/default) < 0.4.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(itertools/default) >= 0.13.0 with crate(itertools/default) < 0.14.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(lazy_format/default) >= 2.0.0 with crate(lazy_format/default) < 3.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(lazy_static/default) >= 1.5.0 with crate(lazy_static/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(libc) >= 0.2.0 with crate(libc) < 0.3.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(num) >= 0.4.0 with crate(num) < 0.5.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(pci-ids/default) >= 0.2.0 with crate(pci-ids/default) < 0.3.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(platform-info/default) >= 2.0.0 with crate(platform-info/default) < 3.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(rayon/default) >= 1.10.0 with crate(rayon/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(regex) >= 1.10.0 with crate(regex) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(regex/perf) >= 1.10.0 with crate(regex/perf) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(regex/std) >= 1.10.0 with crate(regex/std) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(regex/unicode-perl) >= 1.10.0 with crate(regex/unicode-perl) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(rustc-hash/default) >= 2.0.0 with crate(rustc-hash/default) < 3.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(serde) >= 1.0.164 with crate(serde) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(serde/derive) >= 1.0.164 with crate(serde/derive) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(serde_with/default) >= 3.9.0 with crate(serde_with/default) < 4.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(serde_yaml/default) >= 0.9.0 with crate(serde_yaml/default) < 0.10.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(smallvec/default) >= 1.13.2 with crate(smallvec/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(time) >= 0.3.0 with crate(time) < 0.4.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(toml) >= 0.8.0 with crate(toml) < 0.9.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
	(crate(toml/parse) >= 0.8.0 with crate(toml/parse) < 0.9.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64
Wrote: /tmp/tito/mirafetch-0.1.0-1.fc43.git.0.8988efe.buildreqs.nosrc.rpm


ERROR: Error running command: rpmbuild   --eval '%undefine scl' --define "_topdir /tmp/tito/rpmbuild-mirafetchhr9dsrfa" --define "_sourcedir /tmp/tito/rpmbuild-mirafetchhr9dsrfa/SOURCES" --define "_builddir /tmp/tito/rpmbuild-mirafetchhr9dsrfa/BUILD" --define "_srcrpmdir /tmp/tito" --define "_rpmdir /tmp/tito"   --clean  -ba /tmp/tito/rpmbuild-mirafetchhr9dsrfa/SOURCES/mirafetch-git-0.8988efe/mirafetch.spec

Status code: 11

Command output: ['setting SOURCE_DATE_EPOCH=1759190400', 'Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.Z38cs4', 'Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.jBNQgz', '+ umask 022', '+ cd /tmp/tito/rpmbuild-mirafetchhr9dsrfa/BUILD/mirafetch-0.1.0-build', '+ cd /tmp/tito/rpmbuild-mirafetchhr9dsrfa/BUILD/mirafetch-0.1.0-build', '+ rm -rf mirafetch-git-0.8988efe', '+ /usr/lib/rpm/rpmuncompress -x /tmp/tito/rpmbuild-mirafetchhr9dsrfa/SOURCES/mirafetch-git-0.8988efe.tar.gz', '+ STATUS=0', "+ '[' 0 -ne 0 ']'", '+ cd mirafetch-git-0.8988efe', '+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .', '+ /usr/lib/rpm/rpmuncompress /tmp/tito/rpmbuild-mirafetchhr9dsrfa/SOURCES/mirafetch-fix-metadata-auto.diff', '+ /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f', '+ set -euo pipefail', '+ /usr/bin/mkdir -p target/rpm', '+ /usr/bin/ln -s rpm target/release', '+ /usr/bin/rm -rf .cargo/', '+ /usr/bin/mkdir -p .cargo', '+ cat', '+ cat', '+ /usr/bin/rm -f Cargo.lock', '+ /usr/bin/rm -f Cargo.toml.orig', '+ RPM_EC=0', '++ jobs -p', '+ exit 0', 'Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.yXkFG6', '+ umask 022', '+ cd /tmp/tito/rpmbuild-mirafetchhr9dsrfa/BUILD/mirafetch-0.1.0-build', '+ cd mirafetch-git-0.8988efe', '+ /usr/bin/cargo2rpm --path Cargo.toml buildrequires --with-check', '+ RPM_EC=0', '++ jobs -p', '+ exit 0', 'error: Failed build dependencies:', '\t(crate(anyhow/default) >= 1.0.71 with crate(anyhow/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(arcstr) >= 1.2.0 with crate(arcstr) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(clap/default) >= 4.5.0 with crate(clap/default) < 5.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(clap/derive) >= 4.5.0 with crate(clap/derive) < 5.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(crossterm) >= 0.28.0 with crate(crossterm) < 0.29.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(crossterm/events) >= 0.28.0 with crate(crossterm/events) < 0.29.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(directories/default) >= 5.0.0 with crate(directories/default) < 6.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(exitcode/default) >= 1.1.0 with crate(exitcode/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(glob/default) >= 0.3.1 with crate(glob/default) < 0.4.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(itertools/default) >= 0.13.0 with crate(itertools/default) < 0.14.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(lazy_format/default) >= 2.0.0 with crate(lazy_format/default) < 3.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(lazy_static/default) >= 1.5.0 with crate(lazy_static/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(libc) >= 0.2.0 with crate(libc) < 0.3.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(num) >= 0.4.0 with crate(num) < 0.5.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(pci-ids/default) >= 0.2.0 with crate(pci-ids/default) < 0.3.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(platform-info/default) >= 2.0.0 with crate(platform-info/default) < 3.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(rayon/default) >= 1.10.0 with crate(rayon/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(regex) >= 1.10.0 with crate(regex) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(regex/perf) >= 1.10.0 with crate(regex/perf) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(regex/std) >= 1.10.0 with crate(regex/std) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(regex/unicode-perl) >= 1.10.0 with crate(regex/unicode-perl) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(rustc-hash/default) >= 2.0.0 with crate(rustc-hash/default) < 3.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(serde) >= 1.0.164 with crate(serde) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(serde/derive) >= 1.0.164 with crate(serde/derive) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(serde_with/default) >= 3.9.0 with crate(serde_with/default) < 4.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(serde_yaml/default) >= 0.9.0 with crate(serde_yaml/default) < 0.10.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(smallvec/default) >= 1.13.2 with crate(smallvec/default) < 2.0.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(time) >= 0.3.0 with crate(time) < 0.4.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(toml) >= 0.8.0 with crate(toml) < 0.9.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', '\t(crate(toml/parse) >= 0.8.0 with crate(toml/parse) < 0.9.0~) is needed by mirafetch-0.1.0-1.fc43.git.0.8988efe.x86_64', 'Wrote: /tmp/tito/mirafetch-0.1.0-1.fc43.git.0.8988efe.buildreqs.nosrc.rpm']

ERROR: Please run 'dnf builddep mirafetch.spec' as root.

However, running the stated command at the end, I am getting:

$ sudo dnf builddep mirafetch.spec
Updating and loading repositories:
Repositories loaded.
Package "cargo-rpm-macros-26.4-1.fc43.noarch" is already installed.

Nothing to do.

And I still get the same error.

What might be causing this issue?

I’ve been packaging for fedora for 15 years and have never heard of tito, have you tried using mock instead?

I have not. Is there a guide for publishing on Copr using Mock?

I was able to find the following page on Copr but I don’t know how to proceed or how to test locally.

I am assuming the “script” would git clone the repo to obtain the spec file and source code. But what’s after that?

It turned out I can go to “SCM” then select “rpkg” to avoid using tito in Copr. There is also the “Upload” option to directly uploat a .spec file or SRPM file.


If anyone arrives to this thread, this is a known issue in dnf builddep: 1778786 – builddep should handle dynamic buildrequires somehow

You instead can use tito and mock to create the SRPM.

See also `ERROR: Please run ‘dnf builddep <package>.spec’ as root`, but `Nothing to do` · Issue #512 · rpm-software-management/tito · GitHub