bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: Re: error.c: "Unknown system error" should report errno value


From: Martin Koeppe
Subject: Re: Fwd: Re: error.c: "Unknown system error" should report errno value
Date: Wed, 3 Oct 2007 15:07:48 +0200 (CEST)


On Thu, 27 Sep 2007, Jim Meyering wrote:

Martin Koeppe <address@hidden> wrote:
...
And yes, I'll of course try a new coreutils/gnulib version (but I
think in this case I shouldn't yet). Are there any coreutils snapshot
.tar.gz available?

Yes.  I made a new snapshot just a few hours ago, too:

 http://meyering.net/cu/coreutils-6.9-ss.tar.gz
 http://meyering.net/cu/coreutils-6.9-ss.tar.gz.sig

I now built the newer snapshot from 2-Oct-2007 and ran the tests. Long test output is attached. I killed the last test logged in there with ^C because it has hung for over one hour. With the current Debian snapshot (20070907) the tests run through, however. You can find the build log with the (short) test results for the Debian version at http://www.debian-interix.net/debian-interix/pool/experimental/coreutils/ currently file coreutils_6.10%7e20070907-2+interix.3_20071003-0017.gz


Please ignore some of the failing tests, there are some standard problems with interix with file ownership, root user and uid 0. Interix has no user "root" nor an "uid 0". It has user "Administrator" with uid 197108 which is equivalent to "root". I run the tests with that Administrator, so some permission problems are due to the fact that the tests don't expect root rights, but effectively have them.

Another issue due to that should be addressed however. I can't run "make check-root" when I am the equivalent of root, apparently just because of the username or uid. Didn't look into that yet.

A question arises: How should one portably test for "root"? Neither "root" nor uid 0 seem to be a POSIX requirement. I found one solution so far, but I'm not sure how good it really is:

For shell scripts run:
$ /usr/sbin/chroot / /bin/true
If successful, you have root rights.

I'm willing to (re-)run (more) tests, but currently can't say which might be bugs in coreutils and therefore worth investigating and which are only interix specific. Maybe you know better. If necessary, just ask about details on one test or another.

Another issue concerning gnulib:
Interix has a working getcwd(), but doesn't support auto malloc via getcwd(NULL, 0). The replacement in gnulib seems overkill, however, it's much slower than the original getcwd(). In the Debian build I only added the missing malloc() in xgetcwd() while otherwise using the system getcwd(). (For the patch see file coreutils_6.10%7e20070907-2_6.10%7e20070907-2+interix.3.interdiff.gz in the dir mentioned above.) For the snapshot build I didn't make this modification, so there the gnulib getcwd() is used.

I think I found the reason for the "Unknown system error" in between, too. For that interix seems buggy. You may look at
http://www.interopcommunity.com/tm.aspx?m=13238
for details. The workaround I found is to do a chdir(getcwd()) at the beginning of all coreutils binaries, just using initialize_main() for that. This shouldn't added to official coreutils yet, I think. OTOH, It worked without that patch in coreutils 5.97.


Martin

Attachment: makecheck.log.gz
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]