From fd6e4142505093ca91aafcba1351bb33820ae39a Mon Sep 17 00:00:00 2001 From: Paul Nasrat Date: Mon, 16 Apr 2007 13:12:32 +0100 Subject: [PATCH] Add support for a new macro, %{_docdir}. It can be used to specify the name of the directory for %doc files. Default is "%{NAME}-%{VERSION}", SUSE uses just "%{NAME}". rh#125514 Patch from OpenSuSE --- build/files.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/build/files.c b/build/files.c index 49188a4..f1d6a19 100644 --- a/build/files.c +++ b/build/files.c @@ -1006,11 +1006,23 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char * buf, res = 1; } else { /* XXX WATCHOUT: buf is an arg */ - { const char *ddir, *n, *v; - - (void) headerNVR(pkg->header, &n, &v, NULL); - - ddir = rpmGetPath("%{_docdir}/", n, "-", v, NULL); + { + static char *_docdir_fmt= 0; + static int oneshot = 0; + const char *ddir, *fmt, *errstr; + if (!oneshot) { + _docdir_fmt = rpmExpand("%{?_docdir_fmt}", NULL); + if (!_docdir_fmt || !*_docdir_fmt) + _docdir_fmt = "%{NAME}-%{VERSION}"; + oneshot = 1; + } + fmt = headerSprintf(pkg->header, _docdir_fmt, rpmTagTable, rpmHeaderFormats, &errstr); + if (!fmt) { + rpmError(RPMERR_BADSPEC, _("illegal _docdir_fmt: %s\n"), errstr); + fl->processingFailed = 1; + res = 1; + } + ddir = rpmGetPath("%{_docdir}/", fmt, NULL); strcpy(buf, ddir); ddir = _free(ddir); } -- 2.7.4