From owner-freebsd-ports-bugs@FreeBSD.ORG Fri Jul 29 19:50:20 2005 Return-Path: X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9DD8C16A41F for ; Fri, 29 Jul 2005 19:50:20 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6726043D68 for ; Fri, 29 Jul 2005 19:50:15 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j6TJoFp7055253 for ; Fri, 29 Jul 2005 19:50:15 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j6TJoFHo055252; Fri, 29 Jul 2005 19:50:15 GMT (envelope-from gnats) Resent-Date: Fri, 29 Jul 2005 19:50:15 GMT Resent-Message-Id: <200507291950.j6TJoFHo055252@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Sylvio Cesar Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2911E16A41F for ; Fri, 29 Jul 2005 19:42:10 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1548B43D7C for ; Fri, 29 Jul 2005 19:41:59 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id j6TJfwRJ015543 for ; Fri, 29 Jul 2005 19:41:58 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id j6TJfwph015542; Fri, 29 Jul 2005 19:41:58 GMT (envelope-from nobody) Message-Id: <200507291941.j6TJfwph015542@www.freebsd.org> Date: Fri, 29 Jul 2005 19:41:58 GMT From: Sylvio Cesar To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Cc: Subject: ports/84321: Patch for eject device X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jul 2005 19:50:20 -0000 >Number: 84321 >Category: ports >Synopsis: Patch for eject device >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Fri Jul 29 19:50:14 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Sylvio Cesar >Release: FreeBSD 6.0-BETA1 i386 >Organization: >Environment: System: FreeBSD sylvioc.sistel.com.br 6.0-BETA1 FreeBSD 6.0-BETA1 #4: Thu Jul 28 16:03:17 BRT 2005 >Description: Added file(s): - files/patch-eject.2 Removed file(s): - files/patch-eject.c >How-To-Repeat: >Fix: Index: Makefile =================================================================== RCS file: /home/ncvs/ports/sysutils/eject/Makefile,v retrieving revision 1.10 diff -u -r1.10 Makefile --- Makefile 19 Jul 2005 20:48:26 -0000 1.10 +++ Makefile 29 Jul 2005 19:33:53 -0000 @@ -7,7 +7,7 @@ PORTNAME= eject PORTVERSION= 1.5 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= sysutils MASTER_SITES= ftp://ports.jp.FreeBSD.org/pub/FreeBSD-jp/OD/ \ ftp://ftp4.jp.FreeBSD.org/pub/FreeBSD-jp/OD/ \ Index: files/patch-eject.2 =================================================================== RCS file: files/patch-eject.2 diff -N files/patch-eject.2 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-eject.2 29 Jul 2005 19:33:53 -0000 @@ -0,0 +1,90 @@ +diff -u eject-1.5/eject.1 eject-1.5new/eject.1 +--- eject.1.orig Sun Sep 24 15:12:50 2000 ++++ eject.1 Wed Jul 20 14:31:03 2005 +@@ -47,6 +47,8 @@ + .Pp + The following options are available: + .Bl -tag -width Ds ++.It Fl c ++Close tray if supported. + .It Fl f + Force unmounts the device if it was mounted. + .It Fl n +diff -u eject-1.5/eject.c eject-1.5new/eject.c +--- eject.c.orig Wed Sep 6 15:40:12 2000 ++++ eject.c Wed Jul 20 14:35:22 2005 +@@ -51,6 +51,7 @@ + + int fflag; /* force unmount filesystem */ + int nflag; /* not execute operation */ ++int cflag; /* close cdrom */ + int vflag; /* verbose operation */ + + /* +@@ -69,10 +70,10 @@ + char *err; + char *defdev; + +- fflag = nflag = vflag = 0; ++ fflag = nflag = cflag = vflag = 0; + defdev = getenv("EJECT"); + +- while ((ch = getopt(argc, argv, "fnv?")) != EOF) { ++ while ((ch = getopt(argc, argv, "cfnv?")) != EOF) { + switch (ch) { + case 'f' : + fflag = 1; +@@ -83,6 +84,9 @@ + case 'v' : + vflag = 1; + break; ++ case 'c' : ++ cflag = 1; ++ break; + case '?' : + default : + usage(); +@@ -133,7 +137,7 @@ + int sts; + struct stat sb; + +- if (asprintf(device, "/dev/%sc", name) == -1) ++ if (asprintf(device, "/dev/%s", name) == -1) + return sts; + if (vflag || nflag) { + printf("%s: using device %s\n", program, device); +@@ -256,14 +260,23 @@ + } + if (!nflag) { + if (vflag) { +- printf("%s: ejecting media from %s\n", program, name); ++ if (cflag == 0) ++ printf("%s: ejecting media from %s\n", program, name); ++ else ++ printf("%s: closing tray of %s\n", program, name); + } + sts = ioctl(fd, CDIOCALLOW); + if (sts >= 0) { +- sts = ioctl(fd, CDIOCEJECT); ++ if (cflag == 0) ++ sts = ioctl(fd, CDIOCEJECT); ++ else ++ sts = ioctl(fd, CDIOCCLOSE); + } + } else { +- printf("%s: ejecting media from %s\n", program, name); ++ if (cflag == 0) ++ printf("%s: ejecting media from %s\n", program, name); ++ else ++ printf("%s: closing tray of %s\n", program, name); + sts = 0; + } + close(fd); +@@ -278,6 +291,6 @@ + void + usage(void) + { +- fprintf(stderr, "usage: %s [-fnv] device\n", program); ++ fprintf(stderr, "usage: %s [-cfnv] device\n", program); + exit(1); + } Index: files/patch-eject.c =================================================================== RCS file: files/patch-eject.c diff -N files/patch-eject.c --- files/patch-eject.c 19 Jul 2005 20:48:26 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,49 +0,0 @@ ---- eject.c.orig Tue Jul 19 13:43:37 2005 -+++ eject.c Tue Jul 19 14:14:24 2005 -@@ -122,7 +122,7 @@ - } - - /* -- * check device is exists. -+ * check whether device exists. - */ - - int -@@ -133,8 +133,14 @@ - int sts; - struct stat sb; - -- if (asprintf(device, "/dev/%sc", name) == -1) -- return sts; -+ if (strncmp("/dev/", name, strlen("/dev/")) == 0) { -+ if (asprintf(device, "%s", name) == -1) -+ return sts; -+ } -+ else { -+ if (asprintf(device, "/dev/%s", name) == -1) -+ return sts; -+ } - if (vflag || nflag) { - printf("%s: using device %s\n", program, device); - } -@@ -174,11 +180,16 @@ - /* get proper mount information into the list */ - len = strlen(name); - for (n = 0; n < mnts; n++) { -- p = rindex(mntbuf[n].f_mntfromname, '/'); -- if (p == NULL) { -- continue; -+ if (strncmp("/dev/", name, strlen("/dev/")) == 0) -+ p = mntbuf[n].f_mntfromname; -+ else { -+ p = rindex(mntbuf[n].f_mntfromname, '/'); -+ if (p == NULL) -+ continue; -+ ++p; - } -- for (i = 0, ++p, q = name; *p != '\0' && *q != '\0'; ++i, ++p, ++q) { -+ -+ for (i = 0, p, q = name; *p != '\0' && *q != '\0'; ++i, ++p, ++q) { - if (*p != *q) { - break; - } >Release-Note: >Audit-Trail: >Unformatted: