I build rpm with internal file and pcreposix.h.
I finally got annoyed at these (harmless) messages:
error: magic_file(ms, /X/tmp/time-root/usr/share/doc/time-1.7/
COPYING) failed: line 8854: regexec error 17, (match failed)
error: magic_file(ms, /X/tmp/time-root/usr/share/doc/time-1.7/NEWS)
failed: line 8854: regexec error 17, (match failed)
error: magic_file(ms, /X/tmp/time-root/usr/share/doc/time-1.7/README)
failed: line 8854: regexec error 17, (match failed)
error: magic_file(ms, /X/tmp/time-root/usr/share/info/time.info.gz)
failed: line 8854: regexec error 17, (match failed)
to chase down the cause.
It turns out that PCRE's POSIX regex emulation has different return
codes
than the system regexec(3) errors.
Internal file is using the system, not the PCRE pcreposix.h, regexec.
So a failure to match, normally ignored, is promoted to an error instead
I'll add a bandaid check to disable the message in rpmio/rpmmg.c,
but a real fix either has to teach file internal to build with
<pcreposix.h>,
or (even better IMHO) pcreposix.h should rearrange its return
code enum to return exactly the same numerical values as, say, glibc
regexec(3).
73 de Jeff
Received on Fri Feb 29 21:07:45 2008