#1584 [RFE] Support for NoSource RPM
Opened 4 years ago by kwizart. Modified 4 years ago

We want to support producing nosrc.rpm instead of src.rpm in few cases:

  • Some of the components we can redistribute permit the binary redistribution (with a dedicated usage term) but no source redistribution. (I can share the exact case if needed, but that's not that important).
  • We have a situation where some source content are extremely huge compared to the binary content redistributed. Unmodified chromium sources tarball are about 1G whereas binary is about 100M.
    Using several build of the same source tarball will Copy the same content several time and consume the disk on the infra. Same when we sign each build for different distro versions (with a dedicated GPG key).
    Even if we would used de-duplication, this cannot be assumed on mirrors and will put some "uneeded" pressure on them.

Instead in such cases, we would expect end-users to fetch the source tarball from upstream or from our lookside cache when relevant.

Currently koji builder fails when there is no src.rpm from a buildSRPMFromSCM task.
The suggested process is the following:
- Have a kojid config option named: allow_nosrc_rpm: 1
- use make source, to fetch from lookaside cache and produce {,no}src.rpm (or using the fedpkg-minimal and alike).
- When a nosrc.rpm is detected, (and allow_nosrc_rpm=1), try to compute the missing sources.
using spectool --lf .spec ; rpm -qpl .nosrc.rpm (or any other method).
- Pass any missing files to mock using "--copyin" along the nosrc.rpm (instead of a full src.rpm).


+1

I would move config option to hub config or (maybe better) to build tag - so some targets can use nosrc (as task parameter), while others could still require strictly src.rpm. Last option is to have it policy-driven - maybe best?

Configuration on builders side doesn't seem right to me.

Metadata Update from @tkopecek:
- Custom field Size adjusted to None

4 years ago

Login to comment on this ticket.

Metadata