[M3devel] FW: cvsup

Jay jay.krell at cornell.edu
Sun Apr 12 13:34:49 CEST 2009


[truncated again..]

 cvsup builds and starts up on a few platforms now,
 including Cygwin/x86, Linux/x86, Linux/AMD64 (birch),
 Macosx/PowerPC, FreeBSD/x86. I  can verify more later..


 I expect there might be problems on Macosx/x86 and AMD64.
 And FreeBSD/x86 might not work until I commit the change to use Unix/common.
 That is -- these are the only platforms not using Unix/common.


 Some platforms store extra "flags" with files -- Darwin and *BSD.
    see man chflags and man 2 chflags.
 Historically cvsup only get/sets those on FreeBSD.
 I extended that to the others, though didn't build NetBSD/OpenBSD.
 (nor have I tested any of the functionality at all..)
 The source should be refactored some in this regard, the "FreeBSD"
 directory split into "FreeBSD" and "flags" or something. But
  I don't like moving files since history might not track well.
 (I also chose "m3-tools" arbitrarily..)


 It might not even have to be refactored -- instead of the static platform checks, the code can check of the #defines in Ustat are zero or not, and UstatC.c can provide empty chflags/fchflags functions instead of none at all. It's a tricky area though in terms of what is best, providing no functions, vs. providing functions that do nothing and succeed, vs. providing functions that do nothing and fail, vs. providing a more explicit way to query if the functionality is provided, as well as deciding between build-time vs. run-time checks (we don't have anything like autoconf in our system, for better and worse).


 Now hopefully we can switch to svn or monotone and cvsup won't matter to us. :)
 (Well, I never use it in any case. I know it is big in FreeBSD-land.)


 - Jay


More information about the M3devel mailing list