Subject: Re: Eterm-0.8.10 install from pkgsrc
To: Rui-Xiang Guo <rxg@ms25.url.com.tw>
From: Alistair Crooks <agc@wasabisystems.com>
List: netbsd-help
Date: 06/18/2002 00:14:18
Thanks for that - I've applied the patch to pkgsrc.
Regards,
Alistair
On Mon, Jun 17, 2002 at 10:44:44PM +0800, Rui-Xiang Guo wrote:
> [...]
> > utmp.c: In function `makeutent':
> > utmp.c:148: storage size of `utmp2' isn't known
> > utmp.c:214: `WTMPX_FILE' undeclared (first use in this function)
> > utmp.c:214: (Each undeclared identifier is reported only once
> > utmp.c:214: for each function it appears in.)
> > utmp.c: In function `cleanutent':
> > utmp.c:224: storage size of `utmp' isn't known
> > utmp.c:239: `WTMPX_FILE' undeclared (first use in this function)
> [...]
>
> Hi, maybe try this patch.(with this mail)
>
> -rxg
> $NetBSD$
>
> --- src/utmp.c.orig Mon Jun 17 21:53:34 2002
> +++ src/utmp.c
> @@ -39,6 +39,7 @@
> # undef HAVE_UTMPX_H
> #endif
> #ifdef HAVE_UTMPX_H
> +# include <utmp.h>
> # include <utmpx.h>
> # define USE_SYSV_UTMP
> #else
> @@ -95,7 +96,11 @@
>
> # ifdef HAVE_UTMPX_H
> # undef WTMP_FILENAME
> -# define WTMP_FILENAME WTMPX_FILE
> +# if defined(WTMPX_FILE)
> +# define WTMP_FILENAME WTMPX_FILE
> +# else
> +# define WTMP_FILENAME _PATH_WTMPX
> +# endif
> # define update_wtmp updwtmpx
> # else /* HAVE_UTMPX_H */
>
> @@ -179,7 +184,7 @@
> privileges(INVOKE);
> #ifdef HAVE_UTMPX_H
> getutmp(&utmp, &utmp2);
> - getutid(&utmp2); /* position to entry in utmp file */
> + getutxid(&utmp); /* position to entry in utmp file */
> #else
> getutid(&utmp); /* position to entry in utmp file */
> #endif
> @@ -203,16 +208,15 @@
> /*
> * write a utmp entry to the utmp file
> */
> - utmpname(UTMP_FILENAME);
> + utmpxname(UTMP_FILENAME);
> #ifdef HAVE_UTMPX_H
> getutmp(&utmp, &utmp2);
> - pututline(&utmp2);
> pututxline(&utmp);
> #else
> pututline(&utmp);
> #endif
> update_wtmp(WTMP_FILENAME, &utmp);
> - endutent(); /* close the file */
> + endutxent(); /* close the file */
> privileges(REVERT);
> }
>
> @@ -228,16 +232,16 @@
> return; /* entry not made */
>
> privileges(INVOKE);
> - utmpname(UTMP_FILENAME);
> - setutent();
> - if (getutid(&utmp) == NULL)
> + utmpxname(UTMP_FILENAME);
> + setutxent();
> + if (getutxid(&utmpx) == NULL)
> return;
> - utmp.ut_type = DEAD_PROCESS;
> + utmpx.ut_type = DEAD_PROCESS;
> utmp.ut_time = time(NULL);
> - pututline(&utmp);
> + pututxline(&utmpx);
> getutmpx(&utmp, &utmpx);
> update_wtmp(WTMP_FILENAME, &utmpx);
> - endutent();
> + endutxent();
> privileges(REVERT);
>
> #else /* HAVE_UTMPX_H */