I have some scripts which operate on packages to generate their 
(build)dependency tree for Fedora Modularity stuff. It relies on normal binary 
and source RPMs for dependency information. However, with dynamic 
BuildRequires, I need a way to rebuild sourcerpms with some macros defined. And 
I found out that there is no way to get src.rpm with dynamic buildrequires 
without installing them.

So I had to do something like

```diff
diff --git a/build/build.c b/build/build.c
index dec7d9608..c1f28b8f5 100644
--- a/build/build.c
+++ b/build/build.c
@@ -213,10 +213,12 @@ static int doBuildRequires(rpmSpec spec, int test)
        *packageDependencies(spec->sourcePackage, RPMTAG_REQUIRENAME),
        spec->sourcePackage->header);
 
+#if 0
     parseRCPOT(spec, spec->sourcePackage,
               "rpmlib(DynamicBuildRequires) = 4.15.0-1",
               RPMTAG_PROVIDENAME, 0, RPMSENSE_FIND_PROVIDES | RPMSENSE_RPMLIB,
               addReqProvPkg, NULL);
+#endif
     rc = RPMRC_MISSINGBUILDREQUIRES;
 
  exit:
@@ -305,6 +307,8 @@ static rpmRC buildSpec(rpmts ts, BTA_t buildArgs, rpmSpec 
spec, int what)
                (rc == RPMRC_MISSINGBUILDREQUIRES))
            rc = doCheckBuildRequires(ts, spec, test);
        if (rc == RPMRC_MISSINGBUILDREQUIRES) {
+           rc = RPMRC_OK;
+#if 0
            if (what & RPMBUILD_DUMPBUILDREQUIRES) {
                /* Create buildreqs package */
                char *nvr = headerGetAsString(spec->packages->header, 
RPMTAG_NVR);
@@ -318,6 +322,7 @@ static rpmRC buildSpec(rpmts ts, BTA_t buildArgs, rpmSpec 
spec, int what)
            } else {
                rc = RPMRC_OK;
            }
+#endif
        } else if (rc) {
            goto exit;
        }
```

and use `rpmbuild -rr -D "_module_build 1" --nodeps /path/to/srpm` and it does 
what I need.

So what I want is to say "I am expert, I know src.rpm will have all dynamic 
dependencies, just give me src.rpm and not buildreqs.nosrc.rpm.".

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/760
_______________________________________________
Rpm-maint mailing list
[email protected]
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to