On a fresh installed Red Hat 7 ('install everithing' mode), using 'rpm -ba' to build a package ends without any of the source or binary package being created. For example, take the tidy package you can get at URL http://perso.club-internet.fr/dpo/rpm/tidy-4aug00-1.src.rpm after 'rpm -i tidy-4aug00-1.src.rpm; cd /usr/src/redhat/SPECS/; rpm -ba tidy.spec' the process exits with errorcode 0 but under /usr/src/redhat/{S}RPMS/* no packages can be found. Here are the output of 'rpm -ba' Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.96307 + umask 022 + cd /usr/src/redhat/BUILD + cd /usr/src/redhat/BUILD + rm -rf tidy4aug00 + /bin/gzip -dc /usr/src/redhat/SOURCES/tidy4aug00.tgz + tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd tidy4aug00 ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,g-w,o-w . + echo 'Patch #0 (tidy4aug00-html.patch):' Patch #0 (tidy4aug00-html.patch): + patch -p0 -s + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.96307 + umask 022 + cd /usr/src/redhat/BUILD + cd tidy4aug00 + make 'CFLAGS=-O2 -march=i386 -mcpu=i686' gcc -O2 -march=i386 -mcpu=i686 -c -o attrs.o attrs.c gcc -O2 -march=i386 -mcpu=i686 -c -o istack.o istack.c gcc -O2 -march=i386 -mcpu=i686 -c -o parser.o parser.c gcc -O2 -march=i386 -mcpu=i686 -c -o tags.o tags.c gcc -O2 -march=i386 -mcpu=i686 -c -o entities.o entities.c gcc -O2 -march=i386 -mcpu=i686 -c -o lexer.o lexer.c gcc -O2 -march=i386 -mcpu=i686 -c -o pprint.o pprint.c gcc -O2 -march=i386 -mcpu=i686 -c -o clean.o clean.c gcc -O2 -march=i386 -mcpu=i686 -c -o localize.o localize.c gcc -O2 -march=i386 -mcpu=i686 -c -o config.o config.c gcc -O2 -march=i386 -mcpu=i686 -c -o tidy.o tidy.c gcc -O2 -march=i386 -mcpu=i686 -o tidy attrs.o istack.o parser.o tags.o entities.o lexer.o pprint.o clean.o localize.o config.o tidy.o -lc + mv man_page.txt tidy.1 + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.50113 + umask 022 + cd /usr/src/redhat/BUILD + cd tidy4aug00 + install -d /tmp/tidy-4aug00-root/usr/bin + install -s tidy /tmp/tidy-4aug00-root/usr/bin + install -d /tmp/tidy-4aug00-root/usr/man/man1 + install tidy.1 /tmp/tidy-4aug00-root/usr/man/man1 + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip + /usr/lib/rpm/brp-strip-comment-note Processing files: tidy-4aug00-1 File not found: /tmp/tidy-4aug00-root/usr/man/man1/tidy.1 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.36125 + umask 022 + cd /usr/src/redhat/BUILD + cd tidy4aug00 + DOCDIR=/tmp/tidy-4aug00-root/usr/share/doc/tidy-4aug00 + export DOCDIR + rm -rf /tmp/tidy-4aug00-root/usr/share/doc/tidy-4aug00 + /bin/mkdir -p /tmp/tidy-4aug00-root/usr/share/doc/tidy-4aug00 + cp -pr Overview.html release-notes.html pending.html grid.gif tidy.gif /tmp/tidy-4aug00-root/usr/share/doc/tidy-4aug00 + exit 0 Everithing under /tmp/tidy-4aug00-root/ looksto be good and functioning. Any clue?
Here's the error File not found: /tmp/tidy-4aug00-root/usr/man/man1/tidy.1
So, why + exit 0 at the and, and no overall error statement?
Ok, my post was made in a hurry, but I still think that a bug, or a misfunctioning is present. As some other tests show me, the problem is that before collecting files /usr/lib/rpm/brp-compress is called to compress some docs. I think is not completely obvious that you list man files in the %install section as uncompressed and (without any way to contol it, or at least assuming it being the default) the packaging system compress them and hence if in the %list you omit the .gz an error occurs. A lot of "old" .spec files are broken in this way, what colud be perfectly built on a 6.2 no more works on 7, this is bad. I see two solution: don't compress by default, or let %files be smarter and add .gz appropriatley (even it seems not an easy task). And, moreover, why not giving some more useful error message than exitng with exitcode 0 and no package generated?