ports/59760: [maintainer update] Port change: zed

Sten Poldma exile at chamber.ee
Fri Nov 28 14:50:23 UTC 2003


>Number:         59760
>Category:       ports
>Synopsis:       [maintainer update] Port change: zed
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Nov 28 06:50:19 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Sten Poldma
>Release:        FreeBSD 4.9-STABLE i386
>Organization:
>Environment:
System: FreeBSD vault.chamber.ee 4.9-STABLE FreeBSD 4.9-STABLE #2: Tue Nov 25 19:28:26 EET 2003 exile at vault.chamber.ee:/usr/obj/usr/src/sys/VAULT i386

>Description:
	Change in port: zed console text editor, highly configurable.
        Current version of the port has problem of applying patch-zed.h possible
        change in the original packet. Additionally FreeBSD specific fix was done
        to main.cc which remedies the problem of Zombie childs upon using the built
        in shell/make utility which uses fork().

        o Pumped the portrevision.
        o Added last modification time to Makefile

        Tested under FreeBSD-4.x branch, no idea about 5.x
>How-To-Repeat:
	Current port refused to cleanly apply patches
>Fix:

# Enclosed is the diff file against the old port

--- zed.diff-1.0.5_1 begins here ---
diff -ruN zed.bak/Makefile zed/Makefile
--- zed.bak/Makefile	Tue Feb 25 22:34:23 2003
+++ zed/Makefile	Fri Nov 28 12:30:31 2003
@@ -1,5 +1,6 @@
 # New ports collection makefile for:	zed
 # Date created:        4 June 2002
+# Last modified:       28 November 2003
 # Whom:                Sten Poldma
 #
 # $FreeBSD: ports/editors/zed/Makefile,v 1.4 2003/02/21 11:38:28 knu Exp $
@@ -7,6 +8,7 @@
 
 PORTNAME=	zed
 PORTVERSION=	1.0.5
+PORTREVISION=   1
 CATEGORIES=	editors
 MASTER_SITES=	http://zed.c3po.it/
 
diff -ruN zed.bak/files/patch-main.cc zed/files/patch-main.cc
--- zed.bak/files/patch-main.cc	Thu Jan  1 03:00:00 1970
+++ zed/files/patch-main.cc	Fri Nov 28 16:18:33 2003
@@ -0,0 +1,61 @@
+--- main.cc.orig	Fri Nov 28 16:17:58 2003
++++ main.cc	Fri Nov 28 14:44:27 2003
+@@ -25,6 +25,7 @@
+ #include <unistd.h>
+ #include <signal.h>
+ #include <regex.h>
++#include <errno.h>
+ #ifdef X11
+  #include <X11/Xlib.h>
+ #endif
+@@ -91,6 +92,8 @@
+ 
+ /***************************************************************************/
+ 
++int fork2();
++
+ void resetcfg(int flag,char *str)
+ {
+  if (config.keys==(unsigned int *)0xffffffff) config.keys=0;
+@@ -554,7 +557,7 @@
+ 
+     if (piped) pipe(pp); else deinit(); // ripristino i settaggi del terminale
+ 
+-    if ((pid=fork())==0)
++    if ((pid=fork2())==0)
+     { // figlio
+      char *argv[100];
+      int argc=0;
+@@ -1352,6 +1355,32 @@
+  deinit();
+ 
+  return(0);
++}
++
++int fork2() {
++  pid_t pid;
++  int status;
++
++  if (!(pid = fork())) {
++    switch (fork()) {
++      case 0:  return 0;
++      case -1: _exit(errno);    /* assumes all errnos are <256 */
++      default: _exit(0);
++    }
++  }
++
++  if (pid < 0 || waitpid(pid,&status,0) < 0)
++    return -1;
++
++  if (WIFEXITED(status))
++    if (WEXITSTATUS(status) == 0)
++      return 1;
++    else
++      errno = WEXITSTATUS(status);
++  else
++    errno = EINTR;  /* well, sort of :-) */
++
++  return -1;
+ }
+ 
+ /***************************************************************************/
diff -ruN zed.bak/files/patch-zed.h zed/files/patch-zed.h
--- zed.bak/files/patch-zed.h	Fri Nov 28 10:27:09 2003
+++ zed/files/patch-zed.h	Fri Nov 28 10:37:14 2003
@@ -1,13 +1,11 @@
---- zed.h.orig	Sun Nov 17 22:35:46 2002
-+++ zed.h	Sun Nov 17 22:35:09 2002
-@@ -123,8 +123,8 @@
+--- zed.h	Fri Nov 28 10:31:49 2003
++++ zed.h.new	Fri Nov 28 10:32:57 2003
+@@ -123,7 +123,7 @@
    int lung;
    char dati[0];  // puntatore ai dati
  
 -  friend editor; // solo pero' all'interno di ZED.H
--  friend list;
 +  friend class editor; // solo pero' all'interno di ZED.H
-+  friend class list;
+   friend class list;
   };
  
-  protected:
--- zed.diff-1.0.5_1 ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list