Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Jan 2012 10:40:08 GMT
From:      GD <gd@powernet.ru>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/164660: utmpx fix
Message-ID:  <201201311040.q0VAe8ho047150@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/164660; it has been noted by GNATS.

From: GD <gd@powernet.ru>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/164660: utmpx fix
Date: Tue, 31 Jan 2012 14:07:08 +0400

 This is a multi-part message in MIME format.
 
 --Multipart=_Tue__31_Jan_2012_14_07_08_+0400_SYTPXBou675id2do
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: 7bit
 
 Sorry, this patch break su2 for FreeBSD versions before 8.0
 I attach new patch.
 
 On Tue, 31 Jan 2012 09:33:55 GMT
 Denis Generalov <gd@rambler-co.ru> wrote:
 
 > 
 > >Number:         164660
 > >Category:       ports
 > >Synopsis:       utmpx fix
 > >Confidential:   no
 > >Severity:       non-critical
 > >Priority:       low
 > >Responsible:    freebsd-ports-bugs
 > >State:          open
 > >Quarter:        
 > >Keywords:       
 > >Date-Required:
 > >Class:          update
 > >Submitter-Id:   current-users
 > >Arrival-Date:   Tue Jan 31 09:40:11 UTC 2012
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Denis Generalov
 > >Release:        9.0-STABLE
 > >Organization:
 > Rambler
 > >Environment:
 > FreeBSD tyl2.park.rambler.ru 9.0-STABLE FreeBSD 9.0-STABLE #0: Sat Jan 14 02:35:27 MSK 2012     root@tyl2.park.rambler.ru:/usr/obj/usr/src/sys/GENERIC  amd64
 > >Description:
 > port marked as broken due to changes in accounting system
 > >How-To-Repeat:
 > su2 -r or su2 -s
 > >Fix:
 > 
 > 
 > Patch attached with submission follows:
 > 
 > ===> Generating patch
 > ===> Viewing diff with more
 > diff -ruN --exclude=CVS /usr/ports/sysutils/su2/Makefile /tmp/gd/su2/Makefile
 > --- /usr/ports/sysutils/su2/Makefile	2010-03-20 17:31:50.000000000 +0300
 > +++ /tmp/gd/su2/Makefile	2012-01-31 00:59:18.000000000 +0400
 > @@ -7,23 +7,20 @@
 >  
 >  PORTNAME=	su2
 >  PORTVERSION=	1.3
 > +PORTREVISION=	1
 >  CATEGORIES=	sysutils security
 >  MASTER_SITES=	ftp://ftp.ccs.neu.edu/pub/sysadmin/
 >  
 >  MAINTAINER=	ports@FreeBSD.org
 >  COMMENT=	An enhanced su, allows users to su with own password + more
 >  
 > -NO_CDROM=	"Don't sell for profit"
 > +NO_CDROM=	Don't sell for profit
 >  
 >  MAN1=		su2.1
 >  PLIST_FILES=	bin/su2
 >  
 >  .include <bsd.port.pre.mk>
 >  
 > -.if ${OSVERSION} > 900007
 > -BROKEN=		fails to build with new utmpx
 > -.endif
 > -
 >  post-patch:
 >  	${REINPLACE_CMD} -e 's,/etc/super,${PREFIX}/etc/super,g' ${WRKSRC}/su2.man
 >  
 > diff -ruN --exclude=CVS /usr/ports/sysutils/su2/files/patch-ad /tmp/gd/su2/files/patch-ad
 > --- /usr/ports/sysutils/su2/files/patch-ad	1970-01-01 03:00:00.000000000 +0300
 > +++ /tmp/gd/su2/files/patch-ad	2012-01-31 01:59:00.000000000 +0400
 > @@ -0,0 +1,69 @@
 > +--- su2.c.orig	2012-01-31 01:37:47.000000000 +0400
 > ++++ su2.c	2012-01-31 01:39:14.000000000 +0400
 > +@@ -151,7 +151,12 @@
 > + #include <fcntl.h>
 > + #include <stdio.h>
 > + #include <time.h>
 > ++#include <osreldate.h>
 > ++#if defined(__FreeBSD_version) && __FreeBSD_version > 900007
 > ++#include <utmpx.h>
 > ++#else
 > + #include <utmp.h>
 > ++#endif
 > + #include <signal.h>
 > + #ifdef IOCTL
 > + #include <sys/ioctl.h>
 > +@@ -383,7 +388,7 @@
 > +     if (FullTTY == (char *) 0)
 > + 	FullTTY = "/dev/TTY??";
 > + 
 > +-    TTY = strrchr (FullTTY, '/') + 1;
 > ++    TTY = strchr (FullTTY + 1, '/') + 1;
 > + 
 > +     Debug (1, "-> FullTTY=\"%s\"\n", FullTTY);
 > +     Debug (1, "-> TTY=\"%s\"\n", TTY);
 > +@@ -1315,7 +1320,11 @@
 > +  *	Copies name into an internal static buffer.
 > +  */
 > + 
 > ++#if defined(__FreeBSD_version) && __FreeBSD_version > 900007
 > ++#define MAXNAME sizeof(((struct utmpx *)nptr)->ut_user)
 > ++#else
 > + #define MAXNAME sizeof(((struct utmp *)nptr)->ut_name)
 > ++#endif
 > + 
 > + #ifdef BROKENCUSERID
 > + char *mycuserid ()
 > +@@ -1432,6 +1441,24 @@
 > + ModifyUtmp (NewUserName)
 > + register char  *NewUserName;
 > + {
 > ++#if defined(__FreeBSD_version) && __FreeBSD_version > 900007
 > ++    struct utmpx ut, *utr;
 > ++
 > ++    strncpy(ut.ut_line, TTY, sizeof(ut.ut_line));
 > ++    setutxent();
 > ++    if ((utr = getutxline(&ut)) == NULL) {
 > ++        endutxent();
 > ++        (void) fprintf (stderr, "Terminal %s not found\n", ut.ut_line);
 > ++        return (1);
 > ++    }
 > ++    strncpy(utr->ut_user, NewUserName, sizeof(utr->ut_user));
 > ++    if (pututxline(utr) == NULL) {
 > ++        endutxent();
 > ++        (void) fprintf (stderr, "pututxline failed\n");
 > ++        return (1);
 > ++    }
 > ++    endutxent();
 > ++#else
 > +     register int    fd;		/* /etc/utmp file */
 > +     register int    i;		/* index */
 > + #ifdef hpux
 > +@@ -1482,6 +1509,7 @@
 > + 
 > +     (void) write (fd, (char *) & Utmp, sizeof (Utmp));
 > +     (void) close (fd);
 > ++#endif
 > +     return (0);
 > + }
 > + 
 > ===> Done
 > 
 > 
 > >Release-Note:
 > >Audit-Trail:
 > >Unformatted:
 > _______________________________________________
 > freebsd-ports-bugs@freebsd.org mailing list
 > http://lists.freebsd.org/mailman/listinfo/freebsd-ports-bugs
 > To unsubscribe, send any mail to "freebsd-ports-bugs-unsubscribe@freebsd.org"
 
 
 -- 
 GD <gd@powernet.ru>
 
 --Multipart=_Tue__31_Jan_2012_14_07_08_+0400_SYTPXBou675id2do
 Content-Type: text/plain;
  name="patch.txt"
 Content-Disposition: attachment;
  filename="patch.txt"
 Content-Transfer-Encoding: 7bit
 
 ===> Generating patch
 ===> Viewing diff with more
 diff -ruN --exclude=CVS /usr/ports/sysutils/su2/Makefile /tmp/gd/su2/Makefile
 --- /usr/ports/sysutils/su2/Makefile	2012-01-31 13:59:33.000000000 +0400
 +++ /tmp/gd/su2/Makefile	2012-01-31 00:59:18.000000000 +0400
 @@ -7,23 +7,20 @@
  
  PORTNAME=	su2
  PORTVERSION=	1.3
 +PORTREVISION=	1
  CATEGORIES=	sysutils security
  MASTER_SITES=	ftp://ftp.ccs.neu.edu/pub/sysadmin/
  
  MAINTAINER=	ports@FreeBSD.org
  COMMENT=	An enhanced su, allows users to su with own password + more
  
 -NO_CDROM=	"Don't sell for profit"
 +NO_CDROM=	Don't sell for profit
  
  MAN1=		su2.1
  PLIST_FILES=	bin/su2
  
  .include <bsd.port.pre.mk>
  
 -.if ${OSVERSION} > 900007
 -#BROKEN=		fails to build with new utmpx
 -.endif
 -
  post-patch:
  	${REINPLACE_CMD} -e 's,/etc/super,${PREFIX}/etc/super,g' ${WRKSRC}/su2.man
  
 diff -ruN --exclude=CVS /usr/ports/sysutils/su2/files/patch-ad /tmp/gd/su2/files/patch-ad
 --- /usr/ports/sysutils/su2/files/patch-ad	1970-01-01 03:00:00.000000000 +0300
 +++ /tmp/gd/su2/files/patch-ad	2012-01-31 14:02:53.000000000 +0400
 @@ -0,0 +1,72 @@
 +--- su2.c.orig	2012-01-31 13:59:38.000000000 +0400
 ++++ su2.c	2012-01-31 14:02:28.000000000 +0400
 +@@ -151,7 +151,12 @@
 + #include <fcntl.h>
 + #include <stdio.h>
 + #include <time.h>
 ++#include <osreldate.h>
 ++#if defined(__FreeBSD_version) && __FreeBSD_version > 900007
 ++#include <utmpx.h>
 ++#else
 + #include <utmp.h>
 ++#endif
 + #include <signal.h>
 + #ifdef IOCTL
 + #include <sys/ioctl.h>
 +@@ -383,7 +388,11 @@
 +     if (FullTTY == (char *) 0)
 + 	FullTTY = "/dev/TTY??";
 + 
 ++#if defined(__FreeBSD_version) && __FreeBSD_version > 800007
 ++    TTY = strchr (FullTTY + 1, '/') + 1;
 ++#else
 +     TTY = strrchr (FullTTY, '/') + 1;
 ++#endif
 + 
 +     Debug (1, "-> FullTTY=\"%s\"\n", FullTTY);
 +     Debug (1, "-> TTY=\"%s\"\n", TTY);
 +@@ -1315,7 +1324,11 @@
 +  *	Copies name into an internal static buffer.
 +  */
 + 
 ++#if defined(__FreeBSD_version) && __FreeBSD_version > 900007
 ++#define MAXNAME sizeof(((struct utmpx *)nptr)->ut_user)
 ++#else
 + #define MAXNAME sizeof(((struct utmp *)nptr)->ut_name)
 ++#endif
 + 
 + #ifdef BROKENCUSERID
 + char *mycuserid ()
 +@@ -1432,6 +1445,24 @@
 + ModifyUtmp (NewUserName)
 + register char  *NewUserName;
 + {
 ++#if defined(__FreeBSD_version) && __FreeBSD_version > 900007
 ++    struct utmpx ut, *utr;
 ++
 ++    strncpy(ut.ut_line, TTY, sizeof(ut.ut_line));
 ++    setutxent();
 ++    if ((utr = getutxline(&ut)) == NULL) {
 ++        endutxent();
 ++        (void) fprintf (stderr, "Terminal %s not found\n", ut.ut_line);
 ++        return (1);
 ++    }
 ++    strncpy(utr->ut_user, NewUserName, sizeof(utr->ut_user));
 ++    if (pututxline(utr) == NULL) {
 ++        endutxent();
 ++        (void) fprintf (stderr, "pututxline failed\n");
 ++        return (1);
 ++    }
 ++    endutxent();
 ++#else
 +     register int    fd;		/* /etc/utmp file */
 +     register int    i;		/* index */
 + #ifdef hpux
 +@@ -1482,6 +1513,7 @@
 + 
 +     (void) write (fd, (char *) & Utmp, sizeof (Utmp));
 +     (void) close (fd);
 ++#endif
 +     return (0);
 + }
 + 
 ===> Done
 
 --Multipart=_Tue__31_Jan_2012_14_07_08_+0400_SYTPXBou675id2do--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201311040.q0VAe8ho047150>