aboutsummaryrefslogtreecommitdiff
path: root/graphics/ipe
diff options
context:
space:
mode:
authorWill Andrews <will@FreeBSD.org>2001-04-07 03:12:08 +0000
committerWill Andrews <will@FreeBSD.org>2001-04-07 03:12:08 +0000
commit539dbbf75e2299e7da4a4d02b5ff2349f0f43583 (patch)
treee0e6ca22d54e750823915df1f7384b728d547e16 /graphics/ipe
parent1c02f45ba64675cb2fb1b79bb22f9fba84b0546d (diff)
downloadports-539dbbf75e2299e7da4a4d02b5ff2349f0f43583.tar.gz
ports-539dbbf75e2299e7da4a4d02b5ff2349f0f43583.zip
Notes
Diffstat (limited to 'graphics/ipe')
-rw-r--r--graphics/ipe/Makefile23
-rw-r--r--graphics/ipe/distinfo1
-rw-r--r--graphics/ipe/files/patch-Ipe324
-rw-r--r--graphics/ipe/files/patch-Ipe.app-defaults91
-rw-r--r--graphics/ipe/files/patch-Ium37
-rw-r--r--graphics/ipe/files/patch-Makefile72
-rw-r--r--graphics/ipe/files/patch-Plageo123
-rw-r--r--graphics/ipe/files/patch-tex80
-rw-r--r--graphics/ipe/pkg-comment1
-rw-r--r--graphics/ipe/pkg-descr16
-rw-r--r--graphics/ipe/pkg-plist90
11 files changed, 858 insertions, 0 deletions
diff --git a/graphics/ipe/Makefile b/graphics/ipe/Makefile
new file mode 100644
index 000000000000..e019a1769394
--- /dev/null
+++ b/graphics/ipe/Makefile
@@ -0,0 +1,23 @@
+# New ports collection makefile for: Ipe
+# Date created: October 25 2000
+# Whom: bremner@unb.ca
+#
+# $FreeBSD$
+#
+
+PORTNAME= Ipe
+PORTVERSION= 5.0
+CATEGORIES= graphics
+MASTER_SITES= ftp://ftp.cs.uni-magdeburg.de/pub/ipe/ \
+ ftp://ftp.cs.ruu.nl/pub/mirror/ipe/ \
+ ftp://ftp.cs.ust.hk/pub/ipe/
+
+MAINTAINER= bremner@unb.ca
+
+RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript6 \
+ latex:${PORTSDIR}/print/teTeX
+
+USE_XLIB= yes
+REQUIRES_MOTIF= yes
+
+.include <bsd.port.mk>
diff --git a/graphics/ipe/distinfo b/graphics/ipe/distinfo
new file mode 100644
index 000000000000..e15453c9420b
--- /dev/null
+++ b/graphics/ipe/distinfo
@@ -0,0 +1 @@
+MD5 (Ipe-5.0.tar.gz) = c550ee338f650a655a93e11f711643b3
diff --git a/graphics/ipe/files/patch-Ipe b/graphics/ipe/files/patch-Ipe
new file mode 100644
index 000000000000..8b673dadc223
--- /dev/null
+++ b/graphics/ipe/files/patch-Ipe
@@ -0,0 +1,324 @@
+diff -cr ../Ipe-5.0/Ipe/Makefile Ipe/Makefile
+*** ../Ipe-5.0/Ipe/Makefile Thu Nov 27 16:09:18 1997
+--- Ipe/Makefile Thu Oct 26 14:57:59 2000
+***************
+*** 26,42 ****
+
+ # define GFLAGS if you use g++
+ #GFLAGS =
+! GFLAGS = -fno-for-scope
+
+ # Need to find X and Motif
+! INCLUDE_DIRS = -I../Plageo -I/usr/local/include/Xm
+! LIB_DIRS = -L../Plageo -L/usr/lib/X11R5 -L/usr/local/lib/
+
+ # on a Dec Alpha, add -DNO_XMSTRINGS to CFLAGS
+ # if you get an error with signal handlers,
+ # add -DLONG_SIGNAL_HANDLER_ARG to CFLAGS
+! CFLAGS = $(GFLAGS) -O $(MIXED) $(INCLUDE_DIRS)
+! LFLAGS = $(LIB_DIRS) -s
+
+ # LIBRARIES when linking the mixed model (SGI Irix 4)
+ # LIBRARIES = -lXirisw -lXm -lXt -lfm_s -lgl_s -lPW -lplageo -lm
+--- 26,42 ----
+
+ # define GFLAGS if you use g++
+ #GFLAGS =
+! GFLAGS = -fno-for-scope -g
+
+ # Need to find X and Motif
+! INCLUDE_DIRS = -I../Plageo -I/usr/X11R6/include
+! LIB_DIRS = -L../Plageo -L/usr/X11R6/lib -L/usr/local/lib/
+
+ # on a Dec Alpha, add -DNO_XMSTRINGS to CFLAGS
+ # if you get an error with signal handlers,
+ # add -DLONG_SIGNAL_HANDLER_ARG to CFLAGS
+! CFLAGS = $(GFLAGS) $(MIXED) $(INCLUDE_DIRS)
+! LFLAGS = $(LIB_DIRS)
+
+ # LIBRARIES when linking the mixed model (SGI Irix 4)
+ # LIBRARIES = -lXirisw -lXm -lXt -lfm_s -lgl_s -lPW -lplageo -lm
+***************
+*** 83,89 ****
+ all: $(EXE)
+
+ $(EXE): $(OBJS)
+! $(CC) $(OBJS) $(LFLAGS) $(LIBRARIES) -o $(EXE)
+
+ .C.o:
+ $(CC) $(CFLAGS) -c $<
+--- 83,89 ----
+ all: $(EXE)
+
+ $(EXE): $(OBJS)
+! $(CC) -g $(OBJS) $(LFLAGS) $(LIBRARIES) -o $(EXE)
+
+ .C.o:
+ $(CC) $(CFLAGS) -c $<
+diff -cr ../Ipe-5.0/Ipe/advertise.h Ipe/advertise.h
+*** ../Ipe-5.0/Ipe/advertise.h Tue May 9 04:35:59 1995
+--- Ipe/advertise.h Wed Oct 25 15:16:18 2000
+***************
+*** 155,161 ****
+ advertise void show_m_ipe(void);
+ advertise void show_operation(const char *op, const char *key);
+ advertise void create_widgets(void);
+! advertise void show_message(char *str1, char *str2);
+ advertise void show_choice(char *str,
+ char *but1, IpeCallback call1,
+ char *but2, IpeCallback call2,
+--- 155,161 ----
+ advertise void show_m_ipe(void);
+ advertise void show_operation(const char *op, const char *key);
+ advertise void create_widgets(void);
+! advertise void show_message(const char *str1, const char *str2);
+ advertise void show_choice(char *str,
+ char *but1, IpeCallback call1,
+ char *but2, IpeCallback call2,
+***************
+*** 178,184 ****
+ advertise IpeButton enable_undo_bt, enable_latex_box_bt, enable_fifi_bt;
+ advertise IpeButton enable_interior_bt, enable_zoom_pan_bt, enable_stroke_bt;
+ advertise IpeButton enable_3_spline_bt;
+! advertise void set_ps_preamble(char *s);
+ advertise char *get_preamble(int which DefaultsTo(0));
+ advertise char *get_command(int which);
+ advertise void show_m_ipe_configuration(void);
+--- 178,184 ----
+ advertise IpeButton enable_undo_bt, enable_latex_box_bt, enable_fifi_bt;
+ advertise IpeButton enable_interior_bt, enable_zoom_pan_bt, enable_stroke_bt;
+ advertise IpeButton enable_3_spline_bt;
+! advertise void set_ps_preamble(const char *s);
+ advertise char *get_preamble(int which DefaultsTo(0));
+ advertise char *get_command(int which);
+ advertise void show_m_ipe_configuration(void);
+***************
+*** 313,319 ****
+ // from file.C:
+
+ advertise Boolean ps_save_picture(IpeCallback callback);
+! advertise Boolean ps_save_picture(char *fn DefaultsTo(filename),
+ int pagenum DefaultsTo(0),
+ Boolean force DefaultsTo(TRUE),
+ IpeCallback callback DefaultsTo(NIL));
+--- 313,319 ----
+ // from file.C:
+
+ advertise Boolean ps_save_picture(IpeCallback callback);
+! advertise Boolean ps_save_picture(const char *fn DefaultsTo(filename),
+ int pagenum DefaultsTo(0),
+ Boolean force DefaultsTo(TRUE),
+ IpeCallback callback DefaultsTo(NIL));
+diff -cr ../Ipe-5.0/Ipe/colors.C Ipe/colors.C
+*** ../Ipe-5.0/Ipe/colors.C Tue May 9 04:36:03 1995
+--- Ipe/colors.C Wed Oct 25 15:19:03 2000
+***************
+*** 123,129 ****
+ // COLOR I/O
+ //
+
+! void IColor::save(ostream& fh, char *save_ipe, char *save_ps)
+ // save color in file
+ {
+ if (!col)
+--- 123,129 ----
+ // COLOR I/O
+ //
+
+! void IColor::save(ostream& fh, const char *save_ipe, const char *save_ps)
+ // save color in file
+ {
+ if (!col)
+diff -cr ../Ipe-5.0/Ipe/configuration.C Ipe/configuration.C
+*** ../Ipe-5.0/Ipe/configuration.C Tue May 9 04:36:04 1995
+--- Ipe/configuration.C Wed Oct 25 15:24:38 2000
+***************
+*** 52,60 ****
+ // SET and READOUT values
+ //
+
+! advertise void set_ps_preamble(char *s)
+ {
+! XmTextSetString(psPreamble, s);
+ }
+
+ advertise char *get_preamble(int which DefaultsTo(0))
+--- 52,60 ----
+ // SET and READOUT values
+ //
+
+! advertise void set_ps_preamble(const char *s)
+ {
+! XmTextSetString(psPreamble,(char *)(s));
+ }
+
+ advertise char *get_preamble(int which DefaultsTo(0))
+diff -cr ../Ipe-5.0/Ipe/file.C Ipe/file.C
+*** ../Ipe-5.0/Ipe/file.C Tue May 9 04:36:04 1995
+--- Ipe/file.C Wed Oct 25 15:12:03 2000
+***************
+*** 164,170 ****
+ return ps_save_picture(filename, 0, TRUE, callback);
+ }
+
+! advertise Boolean ps_save_picture(char *fn DefaultsTo(filename),
+ int pagenum DefaultsTo(0),
+ Boolean force DefaultsTo(TRUE),
+ IpeCallback callback DefaultsTo(NIL))
+--- 164,170 ----
+ return ps_save_picture(filename, 0, TRUE, callback);
+ }
+
+! advertise Boolean ps_save_picture(const char *fn DefaultsTo(filename),
+ int pagenum DefaultsTo(0),
+ Boolean force DefaultsTo(TRUE),
+ IpeCallback callback DefaultsTo(NIL))
+diff -cr ../Ipe-5.0/Ipe/iface.h Ipe/iface.h
+*** ../Ipe-5.0/Ipe/iface.h Tue May 9 04:35:59 1995
+--- Ipe/iface.h Wed Oct 25 15:19:34 2000
+***************
+*** 257,263 ****
+ void setcol(void);
+ void syscol(short);
+
+! void save(ostream&, char *ipe, char *ps);
+ void save_latex(ostream&);
+ void read(int);
+
+--- 257,263 ----
+ void setcol(void);
+ void syscol(short);
+
+! void save(ostream&, const char *ipe, const char *ps);
+ void save_latex(ostream&);
+ void read(int);
+
+diff -cr ../Ipe-5.0/Ipe/interface.C Ipe/interface.C
+*** ../Ipe-5.0/Ipe/interface.C Tue May 9 04:36:06 1995
+--- Ipe/interface.C Wed Oct 25 15:14:23 2000
+***************
+*** 751,757 ****
+ // Show a message in a popup window
+ //
+
+! advertise void show_message(char *str1, char *str2)
+ // popup an (error) message window with one or two lines of text
+ // window stays, and is removed by its OK button
+ {
+--- 751,757 ----
+ // Show a message in a popup window
+ //
+
+! advertise void show_message(const char *str1, const char *str2)
+ // popup an (error) message window with one or two lines of text
+ // window stays, and is removed by its OK button
+ {
+Only in ../Ipe-5.0/Ipe: ipe
+Only in Ipe: ipe.core
+diff -cr ../Ipe-5.0/Ipe/itypes.h Ipe/itypes.h
+*** ../Ipe-5.0/Ipe/itypes.h Tue May 9 04:36:00 1995
+--- Ipe/itypes.h Wed Oct 25 11:32:14 2000
+***************
+*** 52,58 ****
+ enum Object_type { TEXT, SPLINE, LINE, MARK, SPLINEGON, POLYGON, ARC,
+ BOX, CIRCLE, BITMAP, GROUP, SEGMENTS};
+
+! const NUM_OBJECT_TYPES = 9;
+
+ // ============================================================
+
+--- 52,58 ----
+ enum Object_type { TEXT, SPLINE, LINE, MARK, SPLINEGON, POLYGON, ARC,
+ BOX, CIRCLE, BITMAP, GROUP, SEGMENTS};
+
+! const int NUM_OBJECT_TYPES = 9;
+
+ // ============================================================
+
+diff -cr ../Ipe-5.0/Ipe/preview.C Ipe/preview.C
+*** ../Ipe-5.0/Ipe/preview.C Sat Dec 20 11:16:43 1997
+--- Ipe/preview.C Fri Oct 27 14:18:51 2000
+***************
+*** 215,223 ****
+ sprintf(buf, "-g%dx%d", canvas_size.x, canvas_size.y);
+ DEBUG(DBG_GS, "Starting Ghostscript", buf);
+ if (app.debug & DBG_GS)
+! execl(app.ghostscript_name, "gs", buf, "-r72", NIL);
+ else
+! execl(app.ghostscript_name, "gs", buf, "-r72", "-q", NIL);
+ cerr << "could not start ghostscript\n";
+ exit(1);
+ }
+--- 215,223 ----
+ sprintf(buf, "-g%dx%d", canvas_size.x, canvas_size.y);
+ DEBUG(DBG_GS, "Starting Ghostscript", buf);
+ if (app.debug & DBG_GS)
+! execl(app.ghostscript_name, "gs", buf, "-r72", "-sDEVICE=x11", "-dNOPAUSE", NIL);
+ else
+! execl(app.ghostscript_name, "gs", buf, "-r72", "-sDEVICE=x11", "-dNOPAUSE" "-q", NIL);
+ cerr << "could not start ghostscript\n";
+ exit(1);
+ }
+***************
+*** 228,234 ****
+ // setup stream to ghostscript
+ close(to_ghs[0]);
+
+! to_gs.close();
+ // catch broken pipes from now on
+ signal(SIGPIPE, sig_pipe_broken);
+ to_gs.openfd(to_ghs[1], "w");
+--- 228,235 ----
+ // setup stream to ghostscript
+ close(to_ghs[0]);
+
+! if (to_gs.isopen())
+! to_gs.close();
+ // catch broken pipes from now on
+ signal(SIGPIPE, sig_pipe_broken);
+ to_gs.openfd(to_ghs[1], "w");
+diff -cr ../Ipe-5.0/Ipe/resources.C Ipe/resources.C
+*** ../Ipe-5.0/Ipe/resources.C Tue May 9 04:36:09 1995
+--- Ipe/resources.C Wed Oct 25 14:21:26 2000
+***************
+*** 83,89 ****
+
+ #define RESOURCE_COLOR(name, entry) { \
+ name, XtCColor, XmRString, sizeof(XColor), XtOffsetOf(AppData, entry),\
+! XmRString, "black" }
+
+ #define RESOURCE_BOOLEAN(name, cls, entry, value) { \
+ name, cls, XmRBoolean, sizeof(Boolean), XtOffsetOf(AppData, entry),\
+--- 83,89 ----
+
+ #define RESOURCE_COLOR(name, entry) { \
+ name, XtCColor, XmRString, sizeof(XColor), XtOffsetOf(AppData, entry),\
+! XmRString, XtPointer("black") }
+
+ #define RESOURCE_BOOLEAN(name, cls, entry, value) { \
+ name, cls, XmRBoolean, sizeof(Boolean), XtOffsetOf(AppData, entry),\
+***************
+*** 91,101 ****
+
+ #define RESOURCE_STRING(name, entry, value) { \
+ name, XmCString, XmRString, sizeof(char *), XtOffsetOf(AppData, entry),\
+! XmRImmediate, value }
+
+ #define RESOURCE_FLOAT(name, cls, entry, value) { \
+ name, cls, XtRFloat, sizeof(float), XtOffsetOf(AppData, entry),\
+! XmRString, value }
+
+ #define RESOURCE_INT(name, cls, entry, value) { \
+ name, cls, XmRInt, sizeof(int), XtOffsetOf(AppData, entry),\
+--- 91,101 ----
+
+ #define RESOURCE_STRING(name, entry, value) { \
+ name, XmCString, XmRString, sizeof(char *), XtOffsetOf(AppData, entry),\
+! XmRImmediate, XtPointer(value) }
+
+ #define RESOURCE_FLOAT(name, cls, entry, value) { \
+ name, cls, XtRFloat, sizeof(float), XtOffsetOf(AppData, entry),\
+! XmRString, XtPointer(value) }
+
+ #define RESOURCE_INT(name, cls, entry, value) { \
+ name, cls, XmRInt, sizeof(int), XtOffsetOf(AppData, entry),\
diff --git a/graphics/ipe/files/patch-Ipe.app-defaults b/graphics/ipe/files/patch-Ipe.app-defaults
new file mode 100644
index 000000000000..61157b7b801a
--- /dev/null
+++ b/graphics/ipe/files/patch-Ipe.app-defaults
@@ -0,0 +1,91 @@
+*** ../Ipe-5.0/Ipe.app-defaults Tue May 9 04:38:01 1995
+--- Ipe.app-defaults Wed Nov 1 11:21:40 2000
+***************
+*** 6,13 ****
+ !
+ ! Main Geometry
+ !
+! *mainWindow.width: 17500
+! *mainWindow.height: 17500
+
+ *mainForm.horizontalSpacing: 120
+ *mainForm.verticalSpacing: 120
+--- 6,13 ----
+ !
+ ! Main Geometry
+ !
+! *mainWindow.width: 27500
+! *mainWindow.height: 22500
+
+ *mainForm.horizontalSpacing: 120
+ *mainForm.verticalSpacing: 120
+***************
+*** 341,347 ****
+ !
+ ! INSTALL: Name and path of ghostscript interpreter
+ !
+! *ghostscriptName: /net/bin/gs
+ !
+ ! INSTALL: Command to call Dvips on DVI file
+ !
+--- 341,347 ----
+ !
+ ! INSTALL: Name and path of ghostscript interpreter
+ !
+! *ghostscriptName: /usr/local/bin/gs
+ !
+ ! INSTALL: Command to call Dvips on DVI file
+ !
+***************
+*** 358,372 ****
+ ! INSTALL: Command to start help system
+ !
+ *helpCommand: \
+! Mosaic http://www.cs.ruu.nl/people/otfried/html/Ipe/Ipe.html &
+ !
+ ! INSTALL: Directories where Ipe can find Ipe User Macros (IUMs)
+ !
+! *iumDirectories: /packages/ipe/lib/ium:/packages/ipe/lib/contrib
+ !
+ ! INSTALL: Command to print a Postscript file
+ !
+! *printCommand: laser -Plaspr2 %s &
+ !
+ ! Names of Screen fonts that will be used to represent text objects
+ !
+--- 358,373 ----
+ ! INSTALL: Command to start help system
+ !
+ *helpCommand: \
+! netscape file://localhost/usr/X11R6/lib/ipe/doc/Ipe.html &
+!
+ !
+ ! INSTALL: Directories where Ipe can find Ipe User Macros (IUMs)
+ !
+! *iumDirectories: /usr/local/lib/ipe/lib/ium:
+ !
+ ! INSTALL: Command to print a Postscript file
+ !
+! *printCommand: lpr %s
+ !
+ ! Names of Screen fonts that will be used to represent text objects
+ !
+***************
+*** 445,452 ****
+
+ ! Commands to call previewer on Postscript file
+ !
+! *mipePreviewCommand: gv -a4 -magstep -2 %s &
+! *ipePreviewCommand: gv -a4 -magstep -1 %s &
+ !
+ ! LaTeX preamble
+ !
+--- 446,453 ----
+
+ ! Commands to call previewer on Postscript file
+ !
+! *mipePreviewCommand: gv -magstep -2 %s &
+! *ipePreviewCommand: gv -magstep -1 %s &
+ !
+ ! LaTeX preamble
+ !
diff --git a/graphics/ipe/files/patch-Ium b/graphics/ipe/files/patch-Ium
new file mode 100644
index 000000000000..8940cc656a78
--- /dev/null
+++ b/graphics/ipe/files/patch-Ium
@@ -0,0 +1,37 @@
+diff -cr ../Ipe-5.0/Ium/Makefile Ium/Makefile
+*** ../Ipe-5.0/Ium/Makefile Thu Nov 27 16:49:47 1997
+--- Ium/Makefile Thu Oct 26 14:09:39 2000
+***************
+*** 10,17 ****
+ INCLUDE_DIRS = -I../Plageo
+ LIB_DIRS = -L../Plageo
+
+! CFLAGS = -O $(INCLUDE_DIRS)
+! LFLAGS = -s $(LIB_DIRS)
+
+ CC = g++
+ CPLUS = g++
+--- 10,17 ----
+ INCLUDE_DIRS = -I../Plageo
+ LIB_DIRS = -L../Plageo
+
+! CFLAGS = -O $(INCLUDE_DIRS) -DHAVE_BOOL -fno-for-scope
+! LFLAGS = $(LIB_DIRS)
+
+ CC = g++
+ CPLUS = g++
+diff -cr ../Ipe-5.0/Ium/ium.h Ium/ium.h
+*** ../Ipe-5.0/Ium/ium.h Tue May 9 04:36:13 1995
+--- Ium/ium.h Wed Oct 25 15:28:19 2000
+***************
+*** 61,67 ****
+--- 61,69 ----
+ #define IPE_BOLD 2
+ #define IPE_MATH 3
+
++ #ifndef HAVE_BOOL
+ typedef int bool;
++ #endif
+ #ifdef IUM_PLAGEO
+ typedef pl_vec vertex;
+ #else
diff --git a/graphics/ipe/files/patch-Makefile b/graphics/ipe/files/patch-Makefile
new file mode 100644
index 000000000000..b68e29ca2d86
--- /dev/null
+++ b/graphics/ipe/files/patch-Makefile
@@ -0,0 +1,72 @@
+*** ../Ipe-5.0/Makefile Sat Dec 20 12:05:11 1997
+--- Makefile Fri Oct 27 16:23:21 2000
+***************
+*** 1,33 ****
+ ###########################################################################
+ # Ipe Makefile for Linux
+! #
+ # Make and installation kit for linux
+ ###########################################################################
+ .PHONY : install build
+
+! INSTALL_DIR=/usr/local/lib/ipe
+
+! build:
+ cd Plageo/ ; make
+ cd Ipe/ ; make
+ cd Ium/ ; make
+
+! install: build
+! mkdir -p $(INSTALL_DIR) $(INSTALL_DIR)/bin $(INSTALL_DIR)/lib
+ mkdir -p $(INSTALL_DIR)/lib/ium
+ mkdir -p $(INSTALL_DIR)/doc
+! cp Ipe/ipe $(INSTALL_DIR)/bin/
+! rm -f /usr/local/bin/ipe
+! ln -s $(INSTALL_DIR)/bin/ipe /usr/local/bin/ipe
+! cp Ium/*.ium $(INSTALL_DIR)/lib/ium/
+! cp html/* $(INSTALL_DIR)/doc/
+! cp Ipe.app-defaults.linux /usr/lib/X11/app-defaults/Ipe
+! cp ipe2eps /usr/local/bin/
+
+- kitit:
+- cd Plageo/ ; rm -r -f *.o
+- cd Ipe/ ; rm -r -f *.o
+- cd Ium/ ; rm -r -f *.o
+- rm -f Ipe-5.0.tar Ipe-5.0.tar.gz
+- cd .. ; tar cf Ipe-5.0/Ipe-5.0.tar Ipe-5.0/*
+- gzip Ipe-5.0.tar
+--- 1,34 ----
+ ###########################################################################
+ # Ipe Makefile for Linux
+! # Modfied for FreeBSD ports, David Bremner
+ # Make and installation kit for linux
+ ###########################################################################
+ .PHONY : install build
+
+! INSTALL_DIR= ${PREFIX}/lib/ipe
+! IPETEXDIR= ${LOCALBASE}/share/texmf/tex/latex/ipe
+
+! all:
+ cd Plageo/ ; make
+ cd Ipe/ ; make
+ cd Ium/ ; make
+
+! install: all
+! mkdir -p $(INSTALL_DIR) $(INSTALL_DIR)/lib
+ mkdir -p $(INSTALL_DIR)/lib/ium
+ mkdir -p $(INSTALL_DIR)/doc
+! mkdir -p ${IPETEXDIR}
+! $(BSD_INSTALL_PROGRAM) Ipe/ipe $(PREFIX)/bin
+! $(BSD_INSTALL_PROGRAM) Ium/goodies.ium $(INSTALL_DIR)/lib/ium/
+! $(BSD_INSTALL_PROGRAM) Ium/gridalign.ium $(INSTALL_DIR)/lib/ium/
+! $(BSD_INSTALL_SCRIPT) Ium/postscript.ium $(INSTALL_DIR)/lib/ium/
+! $(BSD_INSTALL_PROGRAM) Ium/spline.ium $(INSTALL_DIR)/lib/ium/
+! $(BSD_INSTALL_DATA) html/* $(INSTALL_DIR)/doc/
+! $(BSD_INSTALL_DATA) Ipe.app-defaults ${X11BASE}/lib/X11/app-defaults/Ipe
+! $(BSD_INSTALL_DATA) ipe2eps $(PREFIX)/bin
+! $(BSD_INSTALL_DATA) tex/ipe.sty ${IPETEXDIR}
+! $(BSD_INSTALL_DATA) tex/mipe.sty ${IPETEXDIR}
+! $(BSD_INSTALL_DATA) tex/ipe_pages.tex ${IPETEXDIR}
+! $(BSD_INSTALL_DATA) tex/mipe.cls ${IPETEXDIR}
+! ${PREFIX}/bin/texconfig rehash
+
diff --git a/graphics/ipe/files/patch-Plageo b/graphics/ipe/files/patch-Plageo
new file mode 100644
index 000000000000..c05c8172f8ac
--- /dev/null
+++ b/graphics/ipe/files/patch-Plageo
@@ -0,0 +1,123 @@
+diff -cr ../Ipe-5.0/Plageo/Makefile Plageo/Makefile
+*** ../Ipe-5.0/Plageo/Makefile Thu Nov 27 15:15:48 1997
+--- Plageo/Makefile Thu Oct 26 14:41:49 2000
+***************
+*** 12,18 ****
+ CC = g++
+ # define GFLAGS if you use g++
+ #GFLAGS =
+! GFLAGS = -fno-for-scope
+
+ INCLUDE = -I.
+ CFLAGS = $(GFLAGS) -O $(INCLUDE)
+--- 12,18 ----
+ CC = g++
+ # define GFLAGS if you use g++
+ #GFLAGS =
+! GFLAGS = -fno-for-scope -g
+
+ INCLUDE = -I.
+ CFLAGS = $(GFLAGS) -O $(INCLUDE)
+diff -cr ../Ipe-5.0/Plageo/ipestream.h Plageo/ipestream.h
+*** ../Ipe-5.0/Plageo/ipestream.h Mon Dec 18 11:19:43 1995
+--- Plageo/ipestream.h Thu Oct 26 15:16:31 2000
+***************
+*** 21,28 ****
+ public:
+ ipestream(void) { _f = NULL; }
+ ipestream(FILE *fd) { _f = fd; }
+!
+! int open(char *fname, char *mode) {
+ _f = fopen(fname, mode); return (_f != NULL); }
+ int openfd(int fd, char *mode) {
+ _f = fdopen(fd, mode); return (_f != NULL); }
+--- 21,28 ----
+ public:
+ ipestream(void) { _f = NULL; }
+ ipestream(FILE *fd) { _f = fd; }
+! int isopen(void) { return (_f != NULL); };
+! int open(const char *fname, char *mode) {
+ _f = fopen(fname, mode); return (_f != NULL); }
+ int openfd(int fd, char *mode) {
+ _f = fdopen(fd, mode); return (_f != NULL); }
+diff -cr ../Ipe-5.0/Plageo/ireray.C Plageo/ireray.C
+*** ../Ipe-5.0/Plageo/ireray.C Tue May 9 04:35:50 1995
+--- Plageo/ireray.C Wed Oct 25 11:31:18 2000
+***************
+*** 40,46 ****
+ // template<class T>
+ reray_T::reray_T(const reray_T & a)
+ {
+! register i = a.sz;
+ reserved_size = sz = i;
+ if (i==0) {
+ v = 0;
+--- 40,46 ----
+ // template<class T>
+ reray_T::reray_T(const reray_T & a)
+ {
+! register unsigned int i = a.sz;
+ reserved_size = sz = i;
+ if (i==0) {
+ v = 0;
+Only in ../Ipe-5.0/Plageo: libplageo.a
+diff -cr ../Ipe-5.0/Plageo/pl_coincidence.C Plageo/pl_coincidence.C
+*** ../Ipe-5.0/Plageo/pl_coincidence.C Tue May 9 04:35:52 1995
+--- Plageo/pl_coincidence.C Wed Oct 25 11:28:53 2000
+***************
+*** 468,475 ****
+
+ typedef edgelist_link *edgelistp;
+
+! static const up = 0;
+! static const down = 1;
+
+ // sorted list of edges intersecting current sweep line
+ static edgelistp el = 0;
+--- 468,475 ----
+
+ typedef edgelist_link *edgelistp;
+
+! static const int up = 0;
+! static const int down = 1;
+
+ // sorted list of edges intersecting current sweep line
+ static edgelistp el = 0;
+diff -cr ../Ipe-5.0/Plageo/plageo.h Plageo/plageo.h
+*** ../Ipe-5.0/Plageo/plageo.h Tue May 9 04:35:50 1995
+--- Plageo/plageo.h Wed Oct 25 11:28:06 2000
+***************
+*** 1050,1065 ****
+
+ extern int lies_inside(const pl_fixedvec &, const pl_disc &);
+
+! inline do_overlap(const pl_fixedvec &vec, const pl_box &box)
+ { return lies_inside(vec, box); }
+
+! inline do_overlap(const pl_fixedvec &vec, const pl_pgn &pgn)
+ { return lies_inside(vec, pgn); }
+
+! inline do_overlap(const pl_fixedvec &vec, const pl_disc &disc)
+ { return lies_inside(vec, disc); }
+
+! inline do_overlap(const pl_fixedvec &vec, const pl_object &obj)
+ { return do_overlap(obj, vec); }
+
+ // ****** POINT ******
+--- 1050,1065 ----
+
+ extern int lies_inside(const pl_fixedvec &, const pl_disc &);
+
+! inline int do_overlap(const pl_fixedvec &vec, const pl_box &box)
+ { return lies_inside(vec, box); }
+
+! inline int do_overlap(const pl_fixedvec &vec, const pl_pgn &pgn)
+ { return lies_inside(vec, pgn); }
+
+! inline int do_overlap(const pl_fixedvec &vec, const pl_disc &disc)
+ { return lies_inside(vec, disc); }
+
+! inline int do_overlap(const pl_fixedvec &vec, const pl_object &obj)
+ { return do_overlap(obj, vec); }
+
+ // ****** POINT ******
diff --git a/graphics/ipe/files/patch-tex b/graphics/ipe/files/patch-tex
new file mode 100644
index 000000000000..82c7574635c4
--- /dev/null
+++ b/graphics/ipe/files/patch-tex
@@ -0,0 +1,80 @@
+diff -cr ../Ipe-5.0/tex/ipe_pages.tex tex/ipe_pages.tex
+*** ../Ipe-5.0/tex/ipe_pages.tex Tue May 9 04:38:01 1995
+--- tex/ipe_pages.tex Fri Oct 27 16:04:44 2000
+***************
+*** 41,50 ****
+ % To achieve this, we make a picture environment with this origin, and then
+ % ignore the picture environment in the Ipe file
+ %
+ \makeatletter\@ifundefined{IpeScale}{}{\IpeScale{100}}\makeatother
+ \unitlength=1bp
+ \setbox0=\hbox{\special{papersize=1000bp,1000bp}%
+! \makebox(0,0)[lt]{\begin{picture}(928,928)(-428,-500)
+ \bgroup
+ \def\picture(#1)(#2){}\let\endpicture\relax
+ \Ipe{page1.ipe}
+--- 41,51 ----
+ % To achieve this, we make a picture environment with this origin, and then
+ % ignore the picture environment in the Ipe file
+ %
++ % WARNING, modifed cluelessly by David Bremner, bremner@unb.ca
+ \makeatletter\@ifundefined{IpeScale}{}{\IpeScale{100}}\makeatother
+ \unitlength=1bp
+ \setbox0=\hbox{\special{papersize=1000bp,1000bp}%
+! \makebox(0,0)[lt]{\begin{picture}(928,928)(15,120)
+ \bgroup
+ \def\picture(#1)(#2){}\let\endpicture\relax
+ \Ipe{page1.ipe}
+diff -cr ../Ipe-5.0/tex/mipe.cls tex/mipe.cls
+*** ../Ipe-5.0/tex/mipe.cls Tue May 9 04:38:02 1995
+--- tex/mipe.cls Fri Oct 27 16:50:21 2000
+***************
+*** 81,93 ****
+ \def\Ipage#1{\vbox to \paperheight{\vfill
+ \hbox to \paperwidth{\hfill\Ipe{page#1.ipe}\hfill}\vfill}\newpage}
+
+! \ExecuteOptions{a4paper}
+ \ProcessOptions
+
+ % need ipe package
+
+ \RequirePackage{ipe}
+-
+ % use full paper for printing
+
+ \textwidth\paperwidth
+--- 81,92 ----
+ \def\Ipage#1{\vbox to \paperheight{\vfill
+ \hbox to \paperwidth{\hfill\Ipe{page#1.ipe}\hfill}\vfill}\newpage}
+
+! \ExecuteOptions{letterpaper}
+ \ProcessOptions
+
+ % need ipe package
+
+ \RequirePackage{ipe}
+ % use full paper for printing
+
+ \textwidth\paperwidth
+***************
+*** 296,304 ****
+ \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+ \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\relax}
+ \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\relax}
+! \renewcommand{\cal}{\protect\pcal}
+ \newcommand{\pcal}{\@fontswitch{\relax}{\mathcal}}
+! \renewcommand{\mit}{\protect\pmit}
+ \newcommand{\pmit}{\@fontswitch{\relax}{\mathnormal}}
+ \renewcommand\footnoterule{}
+ \def\thefootnote{\fnsymbol{footnote}}
+--- 295,303 ----
+ \DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+ \DeclareOldFontCommand{\sl}{\normalfont\slshape}{\relax}
+ \DeclareOldFontCommand{\sc}{\normalfont\scshape}{\relax}
+! %\renewcommand{\cal}{\protect\pcal}
+ \newcommand{\pcal}{\@fontswitch{\relax}{\mathcal}}
+! %\renewcommand{\mit}{\protect\pmit}
+ \newcommand{\pmit}{\@fontswitch{\relax}{\mathnormal}}
+ \renewcommand\footnoterule{}
+ \def\thefootnote{\fnsymbol{footnote}}
+Only in tex: mipe.log
diff --git a/graphics/ipe/pkg-comment b/graphics/ipe/pkg-comment
new file mode 100644
index 000000000000..34ef410241dc
--- /dev/null
+++ b/graphics/ipe/pkg-comment
@@ -0,0 +1 @@
+Extensible drawing editor
diff --git a/graphics/ipe/pkg-descr b/graphics/ipe/pkg-descr
new file mode 100644
index 000000000000..428ce151e310
--- /dev/null
+++ b/graphics/ipe/pkg-descr
@@ -0,0 +1,16 @@
+This is a port of Ipe, Otfried Cheong's Interactive Picture Editor.
+Ipe has a very nice integration of LaTeX text and PostScript drawings.
+There are a couple of gotchas that potential installers should be aware of
+
+1) Unfortunately Ipe only works in 8 bit colour. As far as I know this is
+a Motif limitation. Starting in higher colour depth will yield a core
+dump.
+
+2) The previewing features sensitive to which versions of teTeX and ghostscript
+are installed. They work with the versions listed in the Makefile, but
+I had problems with earlier versions. Ipe is quite useable without the
+preview features.
+
+David Bremner
+bremner@unb.ca
+
diff --git a/graphics/ipe/pkg-plist b/graphics/ipe/pkg-plist
new file mode 100644
index 000000000000..bb232ac3aee4
--- /dev/null
+++ b/graphics/ipe/pkg-plist
@@ -0,0 +1,90 @@
+bin/ipe
+bin/ipe2eps
+lib/ipe/lib/ium/goodies.ium
+lib/ipe/lib/ium/gridalign.ium
+lib/ipe/lib/ium/postscript.ium
+lib/ipe/lib/ium/spline.ium
+lib/ipe/doc/Ipe.html
+lib/ipe/doc/Ipe_1.html
+lib/ipe/doc/Ipe_10.html
+lib/ipe/doc/Ipe_11.html
+lib/ipe/doc/Ipe_12.html
+lib/ipe/doc/Ipe_13.html
+lib/ipe/doc/Ipe_14.html
+lib/ipe/doc/Ipe_15.html
+lib/ipe/doc/Ipe_16.html
+lib/ipe/doc/Ipe_17.html
+lib/ipe/doc/Ipe_18.html
+lib/ipe/doc/Ipe_19.html
+lib/ipe/doc/Ipe_2.html
+lib/ipe/doc/Ipe_20.html
+lib/ipe/doc/Ipe_21.html
+lib/ipe/doc/Ipe_22.html
+lib/ipe/doc/Ipe_23.html
+lib/ipe/doc/Ipe_24.html
+lib/ipe/doc/Ipe_25.html
+lib/ipe/doc/Ipe_26.html
+lib/ipe/doc/Ipe_27.html
+lib/ipe/doc/Ipe_28.html
+lib/ipe/doc/Ipe_29.html
+lib/ipe/doc/Ipe_3.html
+lib/ipe/doc/Ipe_30.html
+lib/ipe/doc/Ipe_31.html
+lib/ipe/doc/Ipe_32.html
+lib/ipe/doc/Ipe_33.html
+lib/ipe/doc/Ipe_34.html
+lib/ipe/doc/Ipe_35.html
+lib/ipe/doc/Ipe_36.html
+lib/ipe/doc/Ipe_37.html
+lib/ipe/doc/Ipe_38.html
+lib/ipe/doc/Ipe_39.html
+lib/ipe/doc/Ipe_4.html
+lib/ipe/doc/Ipe_40.html
+lib/ipe/doc/Ipe_41.html
+lib/ipe/doc/Ipe_42.html
+lib/ipe/doc/Ipe_43.html
+lib/ipe/doc/Ipe_44.html
+lib/ipe/doc/Ipe_45.html
+lib/ipe/doc/Ipe_46.html
+lib/ipe/doc/Ipe_47.html
+lib/ipe/doc/Ipe_48.html
+lib/ipe/doc/Ipe_49.html
+lib/ipe/doc/Ipe_5.html
+lib/ipe/doc/Ipe_50.html
+lib/ipe/doc/Ipe_51.html
+lib/ipe/doc/Ipe_52.html
+lib/ipe/doc/Ipe_53.html
+lib/ipe/doc/Ipe_54.html
+lib/ipe/doc/Ipe_55.html
+lib/ipe/doc/Ipe_56.html
+lib/ipe/doc/Ipe_57.html
+lib/ipe/doc/Ipe_6.html
+lib/ipe/doc/Ipe_7.html
+lib/ipe/doc/Ipe_8.html
+lib/ipe/doc/Ipe_9.html
+lib/ipe/doc/example1.gif
+lib/ipe/doc/example2.gif
+lib/ipe/doc/example3.gif
+lib/ipe/doc/example4.gif
+lib/ipe/doc/example5.gif
+lib/ipe/doc/example6.gif
+lib/ipe/doc/intersection.gif
+lib/ipe/doc/next.xbm
+lib/ipe/doc/parabola.gif
+lib/ipe/doc/previous.xbm
+lib/ipe/doc/setlinecap.gif
+lib/ipe/doc/up.xbm
+lib/ipe/doc/window.gif
+share/texmf/tex/latex/ipe/ipe.sty
+share/texmf/tex/latex/ipe/ipe_pages.tex
+share/texmf/tex/latex/ipe/mipe.cls
+share/texmf/tex/latex/ipe/mipe.sty
+@cwd %%X11BASE%%
+lib/X11/app-defaults/Ipe
+@cwd %%LOCALBASE%%
+@dirrm share/texmf/tex/latex/ipe
+@unexec %D/bin/texconfig rehash
+@dirrm lib/ipe/lib/ium
+@dirrm lib/ipe/lib
+@dirrm lib/ipe/doc
+@dirrm lib/ipe