Package: cpio Version: 2.6-16 Severity: important A recent LSB 3.1 runtime test journal reports, among other things:
200|700 5 18:36:15|TP Start 520|700 5 23550 1 1|* When -i option is specified, if extract files is selected in pattern form, '?' is matched 1 file-system-safe characters. 520|700 5 23550 1 2| 520|700 5 23550 1 3|The archive file doesn't preserve file contents. 220|700 5 1 18:36:15|FAIL 200|700 6 18:36:15|TP Start 520|700 6 23550 1 1|* When -i option is specified, if extract files is selected in pattern form, matching list expression '[...]' is matched any one of the enclosed file-system-safe characters. 520|700 6 23550 1 2| 520|700 6 23550 1 3|The archive file doesn't preserve file contents. 220|700 6 1 18:36:16|FAIL 200|700 7 18:36:16|TP Start 520|700 7 23550 1 1|* When -i option is specified, if extract files is selected in pattern form, a range expression '[c-c]' is matched any symbol between the pair (inclusive). The range expression may not be matched multi-character collating element and the range expression can be based on code point order instead of collating element order. 520|700 7 23550 1 2| 520|700 7 23550 1 3|The archive file doesn't preserve file contents. 220|700 7 1 18:36:16|FAIL The tests check that various Unicode characters in file names can be extracted properly when referenced via globs. cpio 2.5 from sarge (and most other distros) passes these tests, while cpio from Fedora Core 5 is also known to fail these tests. The problem turns out to be in the build system. As you may be aware, part of the cpio source actually lives in the "paxutils" project on Savannah, and on occasion cpio and paxutils can get a little out of sync. At some point, paxutils started using more than one m4 file for its autoconf-age, and one of the new files use AC_CHECK_FUNCS_ONCE to look for the setlocale function. However, cpio did not pick up on this change, and did not include the new m4 file. This meant that HAVE_SETLOCALE was not being set in cpio's config.h. The header file lib/system.h in cpio comes from paxutils, and includes the following code: #if !HAVE_SETLOCALE # define setlocale(category, locale) /* empty */ #endif Thus, even though Debian has a proper setlocale(), the call to that function in cpio was removed. There are a few ways to fix it: - Include AC_CHECK_FUNCS_ONCE(setlocale) directly in configure.ac, and regenerate configure and config.h.in. - #define HAVE_SETLOCALE 1 in lib/system.h. - Remove the three lines starting with "#if !HAVE_SETLOCALE" from lib/system.h. I can confirm that the last of those solutions works, in that the cpio 2.6-16 package plus that change compiles, installs, and passes the LSB tests that it failed before. All of this was discovered by examining cpio CVS, which has since fixed the problem with the build system, and which passes the tests. Fixing the build system the way it was done upstream would probably generate a much larger change, since it would also incorporate irrelevant changes in paxutils and cpio. Severity set to "important" because this is a show-stopper for LSB certification. I will let the release managers decide whether this merits a release-critical priority. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]