[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: chown: root: invaid user name (Re: another 1.5V snapshot/20010524)
>「/etc/pwd.db が入っていればいい」としてですが、
といえばまあそれでもいいんですが (その場合は
src/distrib/macppc/floppies/ramdisk/list で消してるところをやめれば
いい)、本来 pwd.db を必要としているのは libc の getpwent なんですね。
libhack の getpwent ならは pwd.db を必要としないはずです。
で、なぜ libc のが使われているかというと、たぶん以下のような感じの
ことをlibhack にある関数すべてに対してしなきゃいけないんだとおもい
ます。どうするのが正しいのかよくわかんないけど。#define してるところ
は libc/include/namespace.h を #include するべきかも。
うまく対処して libhack に対するパッチを send-pr しといてもらえると
うれしい。:-)
Index: src/distrib/utils/libhack/getpwent.c
*** getpwent.c~ Fri Mar 26 23:48:27 1999
--- getpwent.c Mon May 28 23:25:26 2001
***************
*** 43,48 ****
--- 43,63 ----
#define PWNULL (struct passwd *)0
#define MAXFIELD 8
+ #ifdef __weak_alias
+ __weak_alias(endpwent,_endpwent)
+ __weak_alias(getpwent,_getpwent)
+ __weak_alias(getpwnam,_getpwnam)
+ __weak_alias(getpwuid,_getpwuid)
+ __weak_alias(setpassent,_setpassent)
+ __weak_alias(setpwent,_setpwent)
+ #define endpwent _endpwent
+ #define getpwent _getpwent
+ #define getpwnam _getpwnam
+ #define getpwuid _getpwuid
+ #define setpassent _setpassent
+ #define setpwent _setpwent
+ #endif
+
static char *pw_file = "/etc/passwd";
static FILE *pw_fp;
static char pw_line[128];