classification
Title: os.chflags() and os.lchflags() are not built when they should be be
Type: Stage: resolved
Components: Build Versions: Python 3.2, Python 3.3, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ned.deily Nosy List: Douglas.Leeder, Nick.Dowell, alexandre.vassalotti, doko, eric.araujo, georg.brandl, gregory.p.smith, ned.deily, python-dev, ronaldoussoren, yaneurabeya
Priority: critical Keywords: patch

Created on 2010-05-18 09:05 by yaneurabeya, last changed 2011-07-26 21:00 by python-dev. This issue is now closed.

Files
File name Uploaded Description Edit
config.log yaneurabeya, 2010-05-20 03:49 autoconf failure log
issue8746-py3k.patch ned.deily, 2010-09-10 22:35 patch for py3k
issue8746-31.patch ned.deily, 2010-09-10 22:36 patch for release31-maint
issue8746-27.patch ned.deily, 2010-09-10 22:36 patch for release27-maint
issue8746-trunk.patch yaneurabeya, 2010-09-11 16:52 patch for trunk with flags defined
issue8746-py3k.patch yaneurabeya, 2010-09-11 16:53 patch for py3k with flags defined
issue8746-test_posix.patch yaneurabeya, 2011-06-12 19:54
Messages (24)
msg105957 - (view) Author: NGie Cooper (yaneurabeya) Date: 2010-05-18 09:05
os.chflags isn't `available' even though chflags support is available on the system:

>>> filter(lambda x: x.startswith('chflags'), dir(os))
[]
>>> platform.uname()
('FreeBSD', 'bayonetta.local', '9.0-CURRENT', 'FreeBSD 9.0-CURRENT #0 r206173M: Mon Apr 26 22:45:06 PDT 2010     root@bayonetta.local:/usr/obj/usr/src/sys/BAYONETTA.ata', 'amd64', 'amd64')
>>> filter(lambda x: x.startswith('chflags'), dir(os))
[]
>>> sys.version
'2.6.5 (r265:79063, May 16 2010, 23:37:42) \n[GCC 4.2.1 20070719  [FreeBSD]]'

I'm looking into why this is not properly detected via configure (here's the snippet though):

configure:17257: checking for chflags
configure:17288: cc -o conftest -O2 -pipe -fno-strict-aliasing -pipe -O2 -march=nocona -D__wchar_t=wchar_t  -DTHREAD_STACK_SIZE=0x100000  -pthread  conftest.c  >&5
conftest.c:173: error: expected identifier or '(' before '[' token
In file included from /usr/include/sys/_types.h:33,
                 from /usr/include/sys/_timespec.h:37,
                 from /usr/include/sys/stat.h:42,
                 from conftest.c:174:
/usr/include/machine/_types.h:75: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__int_least8_t'
In file included from /usr/include/sys/time.h:37,
                 from /usr/include/sys/stat.h:99,
                 from conftest.c:174:
/usr/include/sys/types.h:64: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int8_t'
conftest.c:182: error: expected identifier or '(' before ']' token
configure:17291: $? = 1

Compiling the standalone test works:

$ cat ~/test_chflags.c 
#include <sys/stat.h>
#include <unistd.h>
int main(int argc, char*argv[])
{
  if(chflags(argv[0], 0) != 0)
    return 1;
  return 0;
}
$ gcc -o ~/test_chflags ~/test_chflags.c
$ echo $?
0

Also, another sidenote: nowhere is *chflags(2) considered a POSIX feature (I doublechecked opengroup.org and Google). It is strictly a _Unix_ feature. I say this because the POSIX functionality tester explicitly looks for this `POSIX' compatible feature.
msg106130 - (view) Author: NGie Cooper (yaneurabeya) Date: 2010-05-20 03:49
.
msg115452 - (view) Author: Nick Dowell (Nick.Dowell) Date: 2010-09-03 13:46
We've just noticed this same problem with Python 3.1.2 on Mac OS X.

The problem is that the program source in the configure script has extraneous '[' and ']' characters in it, causing compilation to fail.
Excerpt of configure from line 17357:
  cat >>conftest.$ac_ext <<_ACEOF
  /* end confdefs.h.  */
  [
  #include <sys/stat.h>
  #include <unistd.h>
  int main(int argc, char*argv[])
  {
    if(chflags(argv[0], 0) != 0)
      return 1;
    return 0;
  }
  ]
  _ACEOF

These extra '[' and ']' characters were added to configure.in in revision 74038:
http://svn.python.org/view/python/trunk/configure.in?r1=74033&r2=74038

I have locally modified my configure.in and configure scripts to back out that change, and found it resolves the issue.
msg115483 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-09-03 18:45
Nick, can you provide a unit test and a patch file for the issue against the currently maintained versions?  Adding Alexandre to comment on why the configure change was made.
msg116053 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-09-10 22:35
Thanks Garrett for reporting the problem and thank Nick for the patches.  It turns out the problem is more involved though the solution is similar. I've spent some time figuring out what went wrong here and documenting it in this issue so that no one else has to.  Ugh.

The relevant checkin events:

(1) (2009-07-16) r74038 changed the autoconf tests for chflags and lchflags to be m4a double-quoted (from '[' to '[[') to "ensure they don't get mangled".  The test continues to use the AC_TRY_RUN macro and is working correctly.

(2) (2009-11-02) r76050 checked in a modified version of a patch from Gentoo to help support cross-compiling. The original patch was against a pre-r74038 version; it wrapped the AC_TRY_RUN macro in an AC_CACHE_CHECK and a layer of quotes. In updating the patch for the then-current trunk (2.7), the significance of the r74038 change was apparently overlooked, resulting in an extra and faulty level of [...] quotes which end up in the configure test C source.  The test now gets compile errors on all Unix-y platforms but it is only significant on those that do support chflags and/or lchflags, i.e. BSD ones and OS X.

(3) (2010-01-30) The buggy test from trunk is merged into py3k (3.2) r77862, 3.1 r77863, and 2.6 r77864.

(4) (2010-05-08) As part of Issue8510 updates to configure.in to work with autoconf 2.65, r80478 for py3k (3.2) and r80969 for trunk (2.7) converted the AC_TRY_RUN macro calls to ones using AC_RUN_IFELSE and AC_LANG_SOURCE. An extra level of quoting is added to preserve the existing, albeit buggy syntax.  The net effect is that the configure test C code generated is the same and still always fails with a compile error.

While I have not tested this on any BSD-like systems other than OS X, I believe this means that os.chflags and/or os.lchflags have been missing-in-action from builds on OSes where they should be supported for the following releases (i.e since 2009-11-02):

2.6.5
2.6.6
2.7
3.1.2
3.2a2

A side note for OS X: Apple first introduced lchflags() support in OS X 10.5.  Since the python.org OS X installer pythons are traditionally built to an 10.3/10.4 ABI, none of the OS X installers for the above Python releases would have had os.lchflags anyway (only os.chflags), except for the new 2.7 32-bit/64-bit installer if the 2.7 test weren't otherwise broken.

The solution is to fix the buggy configure.in macros along the lines suggested by Nick.  I have created and tested three new patches to do this:

    issue8746-py3k.patch    for py3k (3.2a2+)
    issue8746-27.patch      for release-27-maint (2.7+)
    issue8746-31.patch      for release-31-maint (3.1.2+)

A variant of the 3.1 patch should apply to release-26-maint (2.6.6+) however 2.6 is now in security-fix-only mode.

In each case, the patch only modifies configure.in.  It is necessary to run autoreconf after applying and before checkin.  A simple test of the fix is to do ./configure before and after:

    $ rm -f config.log config.status
    $ ./configure
    $ grep "expected identifier or '(' before " config.log
    conftest.c:191: error: expected identifier or '(' before '[' token
    conftest.c:200: error: expected identifier or '(' before ']' token
    conftest.c:191: error: expected identifier or '(' before '[' token
    conftest.c:200: error: expected identifier or '(' before ']' token
    $ patch <issue8746-[...].patch
    $ autoreconf
    $ rm -f config.log config.status
    $ ./configure
    $ grep "expected identifier or '(' before " config.log
    $

Note that I have not attempted any cross-compiling testing either with or without the patches.
msg116077 - (view) Author: NGie Cooper (yaneurabeya) Date: 2010-09-11 05:16
That definitely fixes detection for FreeBSD CURRENT with 2.7 and py3k for me.

I'm looking into providing some unit-tests, but the problem is that whether or not chflags functions on the underlying filesystem is problematic. For instance, it won't function on msdosfs (Linux calls it vfat), it won't function on ext[23] (AFAIK), and it didn't function on ZFS (until recently? I'm not sure whether or not the latest patches for ZFS enhance the filesystem to support this functionality). So unfortunately adding tests for this feature (while nice) would potentially be error prone.

Something I tried was:

>>> UF_IMMUTABLE = 2
>>> import tempfile
>>> f = tempfile.mkstemp()[1]
>>> os.getuid()
1000
>>> os.chflags('/tmp', UF_IMMUTABLE)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 1] Operation not permitted: '/tmp'
>>> os.chflags(f, UF_IMMUTABLE)
>>> fd = open(f, 'w')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 1] Operation not permitted: '/tmp/tmpi_hwY7'
>>> fd = open(f, 'r')
>>> fd = open(f, 'r')
>>> fd.read()
''
>>> os.chflags(f, 0)
>>> fd = open(f, 'w')
>>> fd.write('foo')
>>> fd.close()
>>> fd = open(f, 'r')
>>> fd.read()
'foo'
>>> fd.close()

Also, the flags are missing that are described in the manpage. I'll provide a patch for those.

Otherwise, it looks like everything's functioning as expected for basic end-to-end tests with chflags(2).

Thanks!
msg116078 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-09-11 05:21
Additional tests would be great.  It is probably reasonable to make some simplifying assumptions about which file systems the test directory would be run on.  I'm guessing other similar file system function tests are not bulletproof on all potential file system types on any modern OS.
msg116107 - (view) Author: NGie Cooper (yaneurabeya) Date: 2010-09-11 16:52
I'll add new tests in the next submit for the bug, but here's the code to add the relevant symbols for common to *BSD and OSX, and the Snow Leopard+ and FreeBSD specific chflags of importance for python 2.7 and py3k.
msg116108 - (view) Author: NGie Cooper (yaneurabeya) Date: 2010-09-11 16:56
Do you prefer exhaustive tests, or just smoke tests? Honestly IMO, the OS should come prepackaged with tests to ensure that things function according to the requirements set forth in the manpage, so I would prefer the latter because the os methods in the posixmodule are nothing more than thin wrappers above the actual OS syscalls.
msg116152 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-09-12 07:07
Actually the flags do already exist: note "(as defined in the stat module)" (http://docs.python.org/py3k/library/os.html#os.chflags).  Other than the new UF_HIDDEN, it looks like they are all hardwired there in Lib/stat.py.  There is something to be said for the approach in your patch in that it guarantees that the flags match the build OS definitions; the downside is some lack of portability and cross-testing.  Considering that there are other stat flags in there and have been for a long time, I'd be inclined to not change things other than throwing in UF_HIDDEN.

Regarding testing, perhaps the single most important thing would be to add a test that os.chflags is in fact present on systems where it is expected (to catch any future build problems like the one in this issue).  As you say, these are relatively transparent wrappers and we have to accept the OS's implementation.  Testing for the presence of os.lchflags is a bit trickier in that on OS X it should only be present if Python was built with a MACOSX_DEPLOYMENT_TARGET of 10.5 or higher.
msg116161 - (view) Author: Nick Dowell (Nick.Dowell) Date: 2010-09-12 09:54
Why should it only be available on OS X if built with MACOSX_DEPLOYMENT_TARGET of 10.5 or higher?
chflags() should be available in earlier versions of the OS:
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/10.3/man2/chflags.2.html
msg116205 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-09-12 15:20
Nick: "lchflags". lchflags is only available in 10.5 or higher, unlike chflags which has been around for much longer.
msg116512 - (view) Author: NGie Cooper (yaneurabeya) Date: 2010-09-16 06:58
*NOUNLINK was not implemented by OSX, so there's actually a bug with the compile tests if you take that into consideration. And again, only FreeBSD defines *NOUNLINK. The other BSDs, not so much.

As far as the reason why I implemented the flags, the documentation that I was looking at didn't implement those flags. I looked at the latest documentation and it appears to be correct though. I will implement tests for *UNLINK and *HIDDEN (FWIW the tests I wrote are ok for cross-compilation because they just test for the existence of the values -- they don't test to ensure that the functionality is correct, like some of the logic in configure was recently `fixed' to do).
msg118323 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2010-10-10 09:30
This can be solved after 3.2a3.
msg121116 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2010-11-13 06:33
Same for a4.
msg125551 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2011-01-06 10:42
Ping - Garrett, any progress on updating the tests?  With dispatch, this could still make it into 3.2.
msg126443 - (view) Author: NGie Cooper (yaneurabeya) Date: 2011-01-18 01:03
Sorry -- got off-track for a while.

I assume these should go into Lib/test/test_os.py ?
msg126445 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2011-01-18 01:11
There is an existing test_lchflags in Lib/test/test_posix.py.  Additional test cases should go there.
msg126446 - (view) Author: NGie Cooper (yaneurabeya) Date: 2011-01-18 01:25
On Mon, Jan 17, 2011 at 5:11 PM, Ned Deily <report@bugs.python.org> wrote:
>
> Ned Deily <nad@acm.org> added the comment:
>
> There is an existing test_lchflags in Lib/test/test_posix.py.  Additional test cases should go there.

Ok, but again this isn't POSIX functionality -- it's a BSD functional piece.

    Another thing that's nasty that I've discovered is that the
function prototype isn't the same across the board. After things are
consolidated in FreeBSD I'll talk to the NetBSD and OpenBSD folks.
Thanks!
-Garrett
msg130876 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2011-03-14 18:59
Tests for the posix module should go in test_posix. The name 'posix' is used very loosely in python, it is basicly used as an alias for 'unixy'.

I'm not too happy about replicating the definition of the flags, as Ned noted the flags are also defined in Lib/stat.py.  I'd keep them out of posixmodule as the current definitions in Lib/stat.py should be valid on all platforms that currently support these flags.

W.r.t testing: there should be some simple smoke tests, basicly just enough to ensure that the function is available and that it links up to the right system call. There is no need to perform un exhaustive test of the system call, that should be done by the os vendor.
msg138217 - (view) Author: NGie Cooper (yaneurabeya) Date: 2011-06-12 19:54
I apologize for taking so long with this. The attached patch is for test_posix against trunk (I shuffled around some code and extended some things to improve PosixTester.tearDown). Let me know if I need to wash, rinse, repeat for py3k, etc.

Thanks!

# Standard ports copy of python 2.7 without the *chflags configure fix.

$ python2.7 Lib/test/test_posix.py 
testNoArgFunctions (__main__.PosixTester) ... ok
test_access (__main__.PosixTester) ... ok
test_chdir (__main__.PosixTester) ... ok
test_chflags (__main__.PosixTester) ... skipped 'test needs os.chflags()'
test_chown (__main__.PosixTester) ... ok
test_confstr (__main__.PosixTester) ... ok
test_dup (__main__.PosixTester) ... ok
test_dup2 (__main__.PosixTester) ... ok
test_fchown (__main__.PosixTester) ... ok
test_fdopen (__main__.PosixTester) ... ok
test_fstat (__main__.PosixTester) ... ok
test_fstatvfs (__main__.PosixTester) ... ok
test_ftruncate (__main__.PosixTester) ... ok
test_getcwd_long_pathnames (__main__.PosixTester) ... ok
test_getresgid (__main__.PosixTester) ... ok
test_getresuid (__main__.PosixTester) ... ok
test_initgroups (__main__.PosixTester) ... ok
test_lchflags_regular_file (__main__.PosixTester) ... skipped 'test needs os.lchflags()'
test_lchflags_symlink (__main__.PosixTester) ... skipped 'test needs os.lchflags()'
test_lchown (__main__.PosixTester) ... ok
test_lsdir (__main__.PosixTester) ... ok
test_osexlock (__main__.PosixTester) ... ok
test_osshlock (__main__.PosixTester) ... ok
test_pipe (__main__.PosixTester) ... ok
test_setresgid (__main__.PosixTester) ... ok
test_setresgid_exception (__main__.PosixTester) ... ok
test_setresuid (__main__.PosixTester) ... ok
test_setresuid_exception (__main__.PosixTester) ... ok
test_stat (__main__.PosixTester) ... ok
test_statvfs (__main__.PosixTester) ... ok
test_strerror (__main__.PosixTester) ... ok
test_tempnam (__main__.PosixTester) ... ok
test_tmpfile (__main__.PosixTester) ... ok
test_umask (__main__.PosixTester) ... ok
test_utime (__main__.PosixTester) ... ok

----------------------------------------------------------------------
Ran 35 tests in 0.020s

OK (skipped=3)

# Hand compiled version using sources from trunk.

$ /scratch/python/2.7/bin/python Lib/test/test_posix.py 
testNoArgFunctions (__main__.PosixTester) ... ok
test_access (__main__.PosixTester) ... ok
test_chdir (__main__.PosixTester) ... ok
test_chflags (__main__.PosixTester) ... ok
test_chown (__main__.PosixTester) ... ok
test_confstr (__main__.PosixTester) ... ok
test_dup (__main__.PosixTester) ... ok
test_dup2 (__main__.PosixTester) ... ok
test_fchown (__main__.PosixTester) ... ok
test_fdopen (__main__.PosixTester) ... ok
test_fstat (__main__.PosixTester) ... ok
test_fstatvfs (__main__.PosixTester) ... ok
test_ftruncate (__main__.PosixTester) ... ok
test_getcwd_long_pathnames (__main__.PosixTester) ... ok
test_getresgid (__main__.PosixTester) ... ok
test_getresuid (__main__.PosixTester) ... ok
test_initgroups (__main__.PosixTester) ... ok
test_lchflags_regular_file (__main__.PosixTester) ... ok
test_lchflags_symlink (__main__.PosixTester) ... ok
test_lchown (__main__.PosixTester) ... ok
test_lsdir (__main__.PosixTester) ... ok
test_osexlock (__main__.PosixTester) ... ok
test_osshlock (__main__.PosixTester) ... ok
test_pipe (__main__.PosixTester) ... ok
test_setresgid (__main__.PosixTester) ... ok
test_setresgid_exception (__main__.PosixTester) ... ok
test_stat (__main__.PosixTester) ... ok
test_statvfs (__main__.PosixTester) ... ok
test_strerror (__main__.PosixTester) ... ok
test_tempnam (__main__.PosixTester) ... ok
test_tmpfile (__main__.PosixTester) ... ok
test_umask (__main__.PosixTester) ... ok
test_utime (__main__.PosixTester) ... ok

----------------------------------------------------------------------
Ran 35 tests in 0.009s

OK
msg139345 - (view) Author: Roundup Robot (python-dev) Date: 2011-06-28 07:13
New changeset abfe28e7e5cd by Ned Deily in branch '2.7':
Issue #8746: Correct faulty configure checks so that os.chflags() and
http://hg.python.org/cpython/rev/abfe28e7e5cd

New changeset 529e26aa4fa3 by Ned Deily in branch '3.2':
Issue #8746: Correct faulty configure checks so that os.chflags() and
http://hg.python.org/cpython/rev/529e26aa4fa3

New changeset 9da64c0bdc33 by Ned Deily in branch 'default':
Issue #8746: Correct faulty configure checks so that os.chflags() and
http://hg.python.org/cpython/rev/9da64c0bdc33
msg139346 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2011-06-28 07:24
Thanks for the additional tests, Garrett.  I've applied them (modulo a fix).  I've also applied the corrections to configure which should make os.chflags() and os.lchflags() reappear again in BSD and OS X builds where supported.  I've also added and documented two new OS X specific file flags: UF_HIDDEN and UF_COMPRESSED. Applied in default (for 3.3), 3.2 (3.2.1), and 2.7 (2.7.3).
msg141181 - (view) Author: Roundup Robot (python-dev) Date: 2011-07-26 21:00
New changeset ca236138f0ce by Ned Deily in branch '2.7':
Issue #8746: Use tempfile module to get tempdir and randomize the
http://hg.python.org/cpython/rev/ca236138f0ce

New changeset 4e4554aa1453 by Ned Deily in branch '3.2':
Issue #8746: Use tempfile module to get tempdir and randomize the
http://hg.python.org/cpython/rev/4e4554aa1453

New changeset 080035e58bab by Ned Deily in branch 'default':
Issue #8746: Use tempfile module to get tempdir and randomize the
http://hg.python.org/cpython/rev/080035e58bab
History
Date User Action Args
2011-07-26 21:00:20python-devsetmessages: + msg141181
2011-07-26 20:59:51ned.deilysetnosy: + eric.araujo
2011-06-29 00:18:58ned.deilysetstatus: pending -> closed
2011-06-28 07:24:36ned.deilysetstatus: open -> pending
type: compile error ->
messages: + msg139346

assignee: ronaldoussoren -> ned.deily
resolution: fixed
stage: patch review -> resolved
2011-06-28 07:13:50python-devsetnosy: + python-dev
messages: + msg139345
2011-06-12 19:54:37yaneurabeyasetfiles: + issue8746-test_posix.patch

messages: + msg138217
2011-06-12 18:34:44terry.reedysetversions: + Python 3.3, - Python 3.1
2011-03-14 18:59:56ronaldoussorensetnosy: georg.brandl, doko, gregory.p.smith, ronaldoussoren, alexandre.vassalotti, ned.deily, yaneurabeya, Nick.Dowell, Douglas.Leeder
messages: + msg130876
2011-01-18 01:25:06yaneurabeyasetnosy: georg.brandl, doko, gregory.p.smith, ronaldoussoren, alexandre.vassalotti, ned.deily, yaneurabeya, Nick.Dowell, Douglas.Leeder
messages: + msg126446
2011-01-18 01:11:01ned.deilysetnosy: georg.brandl, doko, gregory.p.smith, ronaldoussoren, alexandre.vassalotti, ned.deily, yaneurabeya, Nick.Dowell, Douglas.Leeder
messages: + msg126445
2011-01-18 01:03:16yaneurabeyasetnosy: georg.brandl, doko, gregory.p.smith, ronaldoussoren, alexandre.vassalotti, ned.deily, yaneurabeya, Nick.Dowell, Douglas.Leeder
messages: + msg126443
2011-01-15 16:40:00georg.brandlsetpriority: deferred blocker -> critical
nosy: georg.brandl, doko, gregory.p.smith, ronaldoussoren, alexandre.vassalotti, ned.deily, yaneurabeya, Nick.Dowell, Douglas.Leeder
2011-01-06 10:42:48ned.deilysetnosy: georg.brandl, doko, gregory.p.smith, ronaldoussoren, alexandre.vassalotti, ned.deily, yaneurabeya, Nick.Dowell, Douglas.Leeder
messages: + msg125551
2010-11-13 06:33:05georg.brandlsetpriority: release blocker -> deferred blocker

messages: + msg121116
2010-10-12 12:41:54georg.brandlsetpriority: deferred blocker -> release blocker
2010-10-10 09:30:07georg.brandlsetpriority: release blocker -> deferred blocker

nosy: + georg.brandl, ronaldoussoren
messages: + msg118323

assignee: ronaldoussoren
2010-09-16 06:59:00yaneurabeyasetmessages: + msg116512
2010-09-12 15:20:26ned.deilysetmessages: + msg116205
2010-09-12 09:54:21Nick.Dowellsetmessages: + msg116161
2010-09-12 07:07:11ned.deilysetmessages: + msg116152
2010-09-11 16:56:06yaneurabeyasetmessages: + msg116108
2010-09-11 16:53:31yaneurabeyasetfiles: + issue8746-py3k.patch
2010-09-11 16:52:50yaneurabeyasetfiles: + issue8746-trunk.patch

messages: + msg116107
2010-09-11 05:21:31ned.deilysetmessages: + msg116078
2010-09-11 05:16:48yaneurabeyasetmessages: + msg116077
2010-09-10 22:37:08ned.deilysetfiles: - 8746-2.6.6.patch
2010-09-10 22:37:02ned.deilysetfiles: - 8746-2.7.patch
2010-09-10 22:36:56ned.deilysetfiles: - 8746-3.1.2.patch
2010-09-10 22:36:48ned.deilysetfiles: + issue8746-27.patch
2010-09-10 22:36:19ned.deilysetfiles: + issue8746-31.patch
2010-09-10 22:35:37ned.deilysetfiles: + issue8746-py3k.patch
priority: normal -> release blocker

title: *chflags detection broken on FreeBSD 9-CURRENT -> os.chflags() and os.lchflags() are not built when they should be be
nosy: + doko, gregory.p.smith

messages: + msg116053
stage: test needed -> patch review
2010-09-03 20:30:09Nick.Dowellsetfiles: + 8746-2.6.6.patch
2010-09-03 20:29:52Nick.Dowellsetfiles: + 8746-2.7.patch
2010-09-03 20:29:38Nick.Dowellsetfiles: + 8746-3.1.2.patch
keywords: + patch
2010-09-03 18:45:37ned.deilysetversions: + Python 2.7, Python 3.2, - Python 2.6
nosy: + alexandre.vassalotti, ned.deily

messages: + msg115483

components: + Build
stage: test needed
2010-09-03 14:02:40Douglas.Leedersetnosy: + Douglas.Leeder
2010-09-03 13:46:41Nick.Dowellsetnosy: + Nick.Dowell
messages: + msg115452
2010-05-20 03:49:07yaneurabeyasetfiles: + config.log

messages: + msg106130
2010-05-18 09:05:18yaneurabeyacreate