diff --git a/build/rpmfc.c b/build/rpmfc.c index f3064739c3..f6b66bf30c 100644 --- a/build/rpmfc.c +++ b/build/rpmfc.c @@ -1184,13 +1184,15 @@ static int initAttrs(rpmfc fc) /* Discover known attributes from pathnames + initialize them */ if (rpmGlob(attrPath, NULL, &files) == 0) { - nattrs = argvCount(files); + int nfiles = argvCount(files); + nattrs = nfiles + 1; fc->atypes = xcalloc(nattrs + 1, sizeof(*fc->atypes)); - for (int i = 0; i < nattrs; i++) { + for (int i = 0; i < nfiles; i++) { char *bn = basename(files[i]); bn[strlen(bn)-strlen(".attr")] = '\0'; fc->atypes[i] = rpmfcAttrNew(bn); } + fc->atypes[nattrs - 1] = rpmfcAttrNew("local_generator"); fc->atypes[nattrs] = NULL; argvFree(files); } diff --git a/tests/rpmbuild.at b/tests/rpmbuild.at index bf04a51b65..267dbbea9a 100644 --- a/tests/rpmbuild.at +++ b/tests/rpmbuild.at @@ -860,6 +860,22 @@ runroot rpm -qp --requires /build/RPMS/noarch/shebang-0.1-1.noarch.rpm|grep -v ^ []) RPMTEST_CLEANUP +AT_SETUP([Local dependency generator]) +AT_KEYWORDS([build]) +RPMTEST_CHECK([ +RPMDB_INIT + +runroot rpmbuild -bb --quiet \ + --define '__local_generator_provides() foo(%{basename:%{1}})' \ + /data/SPECS/shebang.spec +runroot rpm -qp --provides /build/RPMS/noarch/shebang-0.1-1.noarch.rpm|grep -v ^rpmlib +], +[0], +[foo(shebang) +], +[]) +RPMTEST_CLEANUP + AT_SETUP([elf dependencies]) AT_KEYWORDS([build]) RPMDB_INIT