diff options
author | Alan Eldridge <alane@FreeBSD.org> | 2003-01-07 18:07:54 +0000 |
---|---|---|
committer | Alan Eldridge <alane@FreeBSD.org> | 2003-01-07 18:07:54 +0000 |
commit | 460e1320a34e6d9e0f5188d0ee1455273aad8ca4 (patch) | |
tree | a0ae5916ca1f08e87d05351cf717a65c79c91055 /www | |
parent | ef6ea8c1f7180137ffce18e82db0fd39517f1936 (diff) | |
download | ports-460e1320a34e6d9e0f5188d0ee1455273aad8ca4.tar.gz ports-460e1320a34e6d9e0f5188d0ee1455273aad8ca4.zip |
Notes
Diffstat (limited to 'www')
-rw-r--r-- | www/elinks/Makefile | 11 | ||||
-rw-r--r-- | www/elinks/distinfo | 3 | ||||
-rw-r--r-- | www/elinks/files/patch-document-download.c | 119 | ||||
-rw-r--r-- | www/elinks/manpages.mk | 2 |
4 files changed, 9 insertions, 126 deletions
diff --git a/www/elinks/Makefile b/www/elinks/Makefile index a391611f8722..0463a10f1387 100644 --- a/www/elinks/Makefile +++ b/www/elinks/Makefile @@ -6,15 +6,18 @@ # PORTNAME= elinks -PORTVERSION= 0.5.p.0 +PORTVERSION= 0.3.2 CATEGORIES= www MASTER_SITES= http://elinks.or.cz/download/ -DISTNAME= ${PORTNAME}-0.5pre0 -MAINTAINER= alane@freebsd.org +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DISTNAME}${EXTRACT_SUFX}.asc + +MAINTAINER= jharris@widomaker.com GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --program-prefix=e USE_GMAKE= yes USE_BZIP2= yes -.include "${.CURDIR}/manpages.mk" +MAN1= elinks.1 + .include <bsd.port.mk> diff --git a/www/elinks/distinfo b/www/elinks/distinfo index faf66adecfb2..8f70b4fbf919 100644 --- a/www/elinks/distinfo +++ b/www/elinks/distinfo @@ -1 +1,2 @@ -MD5 (elinks-0.5pre0.tar.bz2) = b2bea9b6351ade786f499b4d06985fa3 +MD5 (elinks-0.3.2.tar.bz2) = 30e9012d5c9b0c0948f6212537da288c +MD5 (elinks-0.3.2.tar.bz2.asc) = eaeb77ed86bbfa353b6c067c1ad6b39b diff --git a/www/elinks/files/patch-document-download.c b/www/elinks/files/patch-document-download.c deleted file mode 100644 index 6e832941f68b..000000000000 --- a/www/elinks/files/patch-document-download.c +++ /dev/null @@ -1,119 +0,0 @@ ---- src/document/download.c.orig Mon Dec 16 17:47:54 2002 -+++ src/document/download.c Tue Dec 24 14:06:00 2002 -@@ -1,4 +1,4 @@ --/* Downloads managment */ -+/* session.c -*-mode: c; c-basic-offset: 8-*- - /* $Id: download.c,v 1.61 2002/12/16 22:47:54 zas Exp $ */ - - #ifdef HAVE_CONFIG_H -@@ -583,6 +583,95 @@ - } - } - -+int create_process(unsigned char *szfn) -+{ -+ int pid, rgfd[ 2 ]; -+ unsigned char *command = szfn; -+ -+ pipe(rgfd); -+ if ((pid = fork()) < 0) { -+ close(rgfd[ 0 ]); -+ close(rgfd[ 1 ]); -+ return -1; -+ } else if (pid > 0) { -+ /* parent: -+ 1. The write "handle" returned to the caller is -+ the canonical write end of the pipe pair. -+ 2. We close the "read" end since we are not using -+ it and we don't want fd leakage. -+ 3. The first thing the child is going to do is -+ fork and exit, so the process we want to run will -+ belong to init, not us. It's gross, but more -+ portable than becoming a session leader. So we wait. -+ */ -+ int status; -+ -+ wait(&status); -+ close(rgfd[ 0 ]); -+ return rgfd[ 1 ]; -+ } else { -+ /* child: -+ at this point, if something goes wrong, -+ there's really nothing we can do about it; -+ the parent will get a SIGPIPE when it -+ tries to write. -+ */ -+ int fdnull = open("/dev/null", O_WRONLY); -+ -+ /* -+ fork again, so we are re-parented to init -+ and avoid the whole SIGCHLD issue. if we -+ aren't the chile, we die. We use _exit so -+ we don't flush any output buffers. -+ */ -+ if ((pid = fork()) != 0) { -+ _exit(0); -+ } -+ -+ /* grandchild: -+ If we got here, we are in the grandchild process, -+ whose parent has died and been reaped. Our parent -+ should be init (the primordial process). -+ -+ Before we exec the command, we need to set up -+ stdin, stdout, and stderr. -+ 1. stdin gets a dup2 of the "read" end of the -+ pipe. -+ 2. stdout and stderr get copies of an fd opened -+ to "/dev/null". -+ */ -+ dup2(rgfd[ 0 ], 0); -+ dup2(fdnull, 1); -+ dup2(fdnull, 2); -+ -+ /* -+ Now we can close everything that is still -+ open, because we've dup'd what we needed. -+ */ -+ close(fdnull); -+ close(rgfd[ 0 ]); -+ close(rgfd[ 1 ]); -+ -+ /* -+ Let the shell handle the command. We use -+ a hard-coded /bin/sh to avoid someone setting -+ SHELL to an odd value and causing damage. -+ -+ Any damage that is done to the user should be -+ self-inflicted, not the result of a maliciously -+ set environment var. -+ */ -+ execlp("/bin/sh", "/bin/sh", "-c", command, 0); -+ -+ /* failure: -+ If we get here, there's not much to do but die. -+ We use _exit so we don't flush any output buffers. -+ */ -+ _exit(1); -+ } -+ /* Trust me, you can't get here. */ -+} -+ - - int - create_download_file(struct terminal *term, unsigned char *fi, int safe, int resume) -@@ -601,6 +690,14 @@ - - wd = get_cwd(); - set_cwd(term->cwd); -+ if (*fi == '|') { -+ /* -+ This will hook any command that saves -+ a file to disk and hijack it to write -+ to the input of a process. Cool, huh? -+ */ -+ return create_process(fi + 1); -+ } - - if (!get_opt_int("document.download.overwrite") || resume) { - file = expand_tilde(file); diff --git a/www/elinks/manpages.mk b/www/elinks/manpages.mk deleted file mode 100644 index 088a728947e5..000000000000 --- a/www/elinks/manpages.mk +++ /dev/null @@ -1,2 +0,0 @@ -MAN1+= elinks.1 -MAN5+= elinkskeys.5 |