ports/52125: New port: The devel branch of the ion windows manager
Rasmus Meldgaard
rasmusm at diku.dk
Mon Jun 2 21:50:15 UTC 2003
The following reply was made to PR ports/52125; it has been noted by GNATS.
From: Rasmus Meldgaard <rasmusm at diku.dk>
To: FreeBSD-gnats-submit at FreeBSD.org
Cc:
Subject: Re: ports/52125: New port: The devel branch of the ion windows manager
Date: Mon, 2 Jun 2003 23:42:44 +0200
On Sat, May 31, 2003 at 11:49:25PM +0200, Rasmus Meldgaard wrote:
There is a new version of ion-devel (20030602-1)
--- ion-devel.shar begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# x11-wm/ion-devel/
# x11-wm/ion-devel/files
# x11-wm/ion-devel/files/patch-ion-edit
# x11-wm/ion-devel/files/patch-ion-view
# x11-wm/ion-devel/files/patch-ion-ssh
# x11-wm/ion-devel/files/patch-ion-man
# x11-wm/ion-devel/files/patch-ioncore-bindings-lua
# x11-wm/ion-devel/files/patch-querylib-lua
# x11-wm/ion-devel/files/patch-system-mk
# x11-wm/ion-devel/files/patch-readconfig-c
# x11-wm/ion-devel/Makefile
# x11-wm/ion-devel/distinfo
# x11-wm/ion-devel/pkg-descr
# x11-wm/ion-devel/pkg-plist
# x11-wm/ion-devel/pkg-message
#
echo c - x11-wm/ion-devel/
mkdir -p x11-wm/ion-devel/ > /dev/null 2>&1
echo c - x11-wm/ion-devel/files
mkdir -p x11-wm/ion-devel/files > /dev/null 2>&1
echo x - x11-wm/ion-devel/files/patch-ion-edit
sed 's/^X//' >x11-wm/ion-devel/files/patch-ion-edit << 'END-of-x11-wm/ion-devel/files/patch-ion-edit'
X--- share/ion-edit.orig Fri May 30 23:17:53 2003
X+++ share/ion-edit Sat May 31 21:31:11 2003
X@@ -1,2 +1,2 @@
X #!/bin/sh
X-exec run-mailcap --action=edit "$1" > /dev/null
X+exec ion-devel-runinxterm -T $1 $EDITOR "$1" > /dev/null
END-of-x11-wm/ion-devel/files/patch-ion-edit
echo x - x11-wm/ion-devel/files/patch-ion-view
sed 's/^X//' >x11-wm/ion-devel/files/patch-ion-view << 'END-of-x11-wm/ion-devel/files/patch-ion-view'
X--- share/ion-view.orig Fri May 30 23:17:53 2003
X+++ share/ion-view Sat May 31 21:31:11 2003
X@@ -1,7 +1,7 @@
X #!/bin/sh
X if echo "$1"|grep -E '^([a-zA-Z]+://|www.)' > /dev/null; then
X- exec netscape-remote "$1"
X+ exec netscape "$1"
X else
X- exec run-mailcap --action=view "$1" > /dev/null
X+ exec ion-runinxterm -T $1 $EDITOR "$1" > /dev/null
X fi
X
END-of-x11-wm/ion-devel/files/patch-ion-view
echo x - x11-wm/ion-devel/files/patch-ion-ssh
sed 's/^X//' >x11-wm/ion-devel/files/patch-ion-ssh << 'END-of-x11-wm/ion-devel/files/patch-ion-ssh'
X--- share/ion-ssh.orig Fri May 30 23:17:53 2003
X+++ share/ion-ssh Sat May 31 21:31:11 2003
X@@ -1,2 +1,2 @@
X #!/bin/sh
X-test $# -ge 1 && exec ion-runinxterm -T $1 ssh $1
X+test $# -ge 1 && exec ion-devel-runinxterm -T $1 ssh $1
END-of-x11-wm/ion-devel/files/patch-ion-ssh
echo x - x11-wm/ion-devel/files/patch-ion-man
sed 's/^X//' >x11-wm/ion-devel/files/patch-ion-man << 'END-of-x11-wm/ion-devel/files/patch-ion-man'
X--- share/ion-man.orig Fri May 30 23:17:53 2003
X+++ share/ion-man Sat May 31 21:31:11 2003
X@@ -1,4 +1,4 @@
X #!/bin/sh
X-topic=ion
X+topic=ion-devel
X test $# -ge 1 && topic=$*
X-exec ion-runinxterm -T "$topic manual" man $topic
X+exec ion-devel-runinxterm -T "$topic manual" man $topic
END-of-x11-wm/ion-devel/files/patch-ion-man
echo x - x11-wm/ion-devel/files/patch-ioncore-bindings-lua
sed 's/^X//' >x11-wm/ion-devel/files/patch-ioncore-bindings-lua << 'END-of-x11-wm/ion-devel/files/patch-ioncore-bindings-lua'
X--- etc/ioncore-bindings.lua.orig Sat May 17 15:08:58 2003
X+++ etc/ioncore-bindings.lua Sat May 31 22:04:14 2003
X@@ -42,7 +42,7 @@
X kpress(DEFAULT_MOD .. "Shift+Left", goto_next_screen),
X kpress(DEFAULT_MOD .. "Shift+Right", goto_prev_screen),
X
X- kpress(DEFAULT_MOD .. "F1", make_exec_fn("ion-man ion")),
X+ kpress(DEFAULT_MOD .. "F1", make_exec_fn("ion-devel-man ion-devel")),
X kpress("F2", make_exec_fn("xterm")),
X }
X
END-of-x11-wm/ion-devel/files/patch-ioncore-bindings-lua
echo x - x11-wm/ion-devel/files/patch-querylib-lua
sed 's/^X//' >x11-wm/ion-devel/files/patch-querylib-lua << 'END-of-x11-wm/ion-devel/files/patch-querylib-lua'
X--- share/querylib.lua.orig Sat May 31 17:33:05 2003
X+++ share/querylib.lua Mon Jun 2 22:57:17 2003
X@@ -141,7 +141,7 @@
X
X function QueryLib.exec_handler(frame, cmd)
X if string.sub(cmd, 1, 1)==":" then
X- local ix=get_script_warn(frame, "ion-runinxterm")
X+ local ix=get_script_warn(frame, "ion-devel-runinxterm")
X if not ix then return end
X cmd=ix.." "..string.sub(cmd, 2)
X end
X@@ -402,7 +402,7 @@
X
X local results={}
X
X- -- ion-completefile will return possible common part of path on
X+ -- ion-devel-completefile will return possible common part of path on
X -- the first line and the entries in that directory on the
X -- following lines.
X for a in string.gfind(data, "([^\n]*)\n") do
X@@ -416,7 +416,7 @@
X end
X
X str=string.gsub(str, "'", "'\\''")
X- local ic=lookup_script("ion-completefile")
X+ local ic=lookup_script("ion-devel-completefile")
X if ic then
X popen_bgread(ic.." '"..str.."' "..(wp or ""),
X coroutine.wrap(receive_data))
X@@ -503,24 +503,24 @@
X -- This function asks for a command to execute with \file{/bin/sh}.
X -- If the command is prefixed with a colon (':'), the command will
X -- be run in an XTerm (or other terminal emulator) using the script
X--- \file{ion-runinxterm}.
X+-- \file{ion-devel-runinxterm}.
X QueryLib.query_exec=QueryLib.make_frame_fn(
X "Run:", nil, QueryLib.exec_handler, QueryLib.exec_completor
X )
X
X --DOC
X -- This query asks for a host to connect to with SSH. It starts
X--- up ssh in a terminal using \file{ion-ssh}. To enable tab completion,
X+-- up ssh in a terminal using \file{ion-devel-ssh}. To enable tab completion,
X -- put the names of often-used hosts in the table \var{query_ssh_hosts}.
X QueryLib.query_ssh=QueryLib.make_execwith_fn(
X- "SSH to:", nil,
X- QueryLib.make_script_lookup_fn("ion-ssh"),
X+ "SSH to:", nil,
X+ QueryLib.make_script_lookup_fn("ion-devel-ssh"),
X QueryLib.make_completor(QueryLib.complete_ssh)
X )
X
X --DOC
X -- This query asks for a manual page to display. It uses the command
X--- \file{ion-man} to run \file{man} in a terminal emulator. By customizing
X+-- \file{ion-devel-man} to run \file{man} in a terminal emulator. By customizing
X -- this script it is possible use some other man page viewer. To enable
X -- tab-completion you must list paths with manuals in the table
X -- \var{query_man_path}. For example,
X@@ -531,28 +531,28 @@
X --}
X --\end{verbatim}
X QueryLib.query_man=QueryLib.make_execwith_fn(
X- "Manual page (ion):", nil,
X- QueryLib.make_script_lookup_fn("ion-man"),
X+ "Manual page (ion-devel):", nil,
X+ QueryLib.make_script_lookup_fn("ion-devel-man"),
X QueryLib.man_completor
X )
X
X --DOC
X--- Asks for a file to be edited. It uses the script \file{ion-edit} to
X+-- Asks for a file to be edited. It uses the script \file{ion-devel-edit} to
X -- start a program to edit the file. This script uses \file{run-mailcap}
X -- by default, but if you don't have it, you may customise the script.
X QueryLib.query_editfile=QueryLib.make_execfile_fn(
X "Edit file:", QueryLib.get_initdir,
X- QueryLib.make_script_lookup_fn("ion-edit"),
X+ QueryLib.make_script_lookup_fn("ion-devel-edit"),
X QueryLib.file_completor
X )
X
X --DOC
X--- Asks for a file to be viewed. It uses the script \file{ion-view} to
X+-- Asks for a file to be viewed. It uses the script \file{ion-devel-view} to
X -- start a program to view the file. This script uses \file{run-mailcap}
X -- by default, but if you don't have it, you may customise the script.
X QueryLib.query_runfile=QueryLib.make_execfile_fn(
X "View file:", QueryLib.get_initdir,
X- QueryLib.make_script_lookup_fn("ion-view"),
X+ QueryLib.make_script_lookup_fn("ion-devel-view"),
X QueryLib.file_completor
X )
X
END-of-x11-wm/ion-devel/files/patch-querylib-lua
echo x - x11-wm/ion-devel/files/patch-system-mk
sed 's/^X//' >x11-wm/ion-devel/files/patch-system-mk << 'END-of-x11-wm/ion-devel/files/patch-system-mk'
X--- system.mk.orig Sat May 31 15:20:09 2003
X+++ system.mk Mon Jun 2 15:35:21 2003
X@@ -7,8 +7,6 @@
X ## Installation paths
X ##
X
X-PREFIX=/usr/local/ion-devel
X-
X # Unless you are creating a package conforming to some OS's standards, you
X # probably do not want to modify the following directories:
X
X@@ -21,9 +19,9 @@
X # Manual pages
X MANDIR=$(PREFIX)/man
X # Some documents
X-DOCDIR=$(PREFIX)/doc/ion-devel
X+DOCDIR=$(PREFIX)/share/doc/ion-devel
X # Nothing at the moment
X-INCDIR=$(PREFIX)/include/ion-devel
X+INCDIR=$(PREFIX)/include
X # Nothing at the moment
X LIBDIR=$(PREFIX)/lib
X # Modules
X@@ -45,8 +43,8 @@
X MODULE_LIST=ionws floatws query
X
X # Settings for compiling and linking to ltdl
X-LTDL_INCLUDES=
X-LTDL_LIBS=-lltdl
X+LTDL_INCLUDES= -I${LOCALBASE}/include
X+LTDL_LIBS=-L${LOCALBASE}/lib -lltdl
X
X
X ##
X@@ -59,7 +57,7 @@
X
X # If you, for example, have lua 4.0 in /usr/lib and 5.0 somewhere else,
X # the following settings might be what you need.
X-LUA_PATH=/usr/local
X+LUA_PATH=${LOCALBASE}
X LUA_LIBS = -L$(LUA_PATH)/lib -R$(LUA_PATH)/lib -llua -llualib
X LUA_INCLUDES = -I$(LUA_PATH)/include
X
X@@ -71,7 +69,7 @@
X ## X libraries, includes and options
X ##
X
X-X11_PREFIX=/usr/X11R6
X+X11_PREFIX=${X11BASE}
X # SunOS/Solaris
X #X11_PREFIX=/usr/openwin
X
X@@ -147,8 +145,8 @@
X # following should optimize function calls to Lua a little.
X #C99_SOURCE=-std=c99 -DCF_HAS_VA_COPY
X
X-CFLAGS=-g -Os $(WARN) $(DEFINES) $(INCLUDES) $(EXTRA_INCLUDES)
X-LDFLAGS=-g -Os $(LIBS) $(EXTRA_LIBS)
X+CFLAGS=-g $(WARN) $(DEFINES) $(INCLUDES) $(EXTRA_INCLUDES)
X+LDFLAGS=-g $(LIBS) $(EXTRA_LIBS)
X
X
X ##
END-of-x11-wm/ion-devel/files/patch-system-mk
echo x - x11-wm/ion-devel/files/patch-readconfig-c
sed 's/^X//' >x11-wm/ion-devel/files/patch-readconfig-c << 'END-of-x11-wm/ion-devel/files/patch-readconfig-c'
X--- ioncore/readconfig.c.orig Mon Jun 2 12:04:00 2003
X+++ ioncore/readconfig.c Mon Jun 2 20:49:11 2003
X@@ -72,7 +72,24 @@
X
X bool ioncore_add_moduledir(const char *dir)
X {
X- return (lt_dlinsertsearchdir(lt_dlgetsearchpath(), dir)==0);
X+ const char *oldpath;
X+ char *newpath;
X+ bool ret;
X+
X+ oldpath=lt_dlgetsearchpath();
X+ if(oldpath==NULL){
X+ return (lt_dlsetsearchpath(dir)==0);
X+ }else{
X+ libtu_asprintf(&newpath, "%s:%s", dir, oldpath);
X+ if(newpath==NULL){
X+ warn_err();
X+ return FALSE;
X+ }else{
X+ ret=(lt_dlsetsearchpath(newpath)==0);
X+ free(newpath);
X+ return ret;
X+ }
X+ }
X }
X
X
END-of-x11-wm/ion-devel/files/patch-readconfig-c
echo x - x11-wm/ion-devel/Makefile
sed 's/^X//' >x11-wm/ion-devel/Makefile << 'END-of-x11-wm/ion-devel/Makefile'
X# New ports collection makefile for: ion-devel
X# Date created: 6 May 2003
X# Whom: Rasmus Meldgaard <rasmusm at diku.dk>
X#
X# $FreeBSD$
X#
X
XPORTNAME= ion-devel
XPORTVERSION= 20030602-1
XCATEGORIES= x11-wm
XMASTER_SITES= http://modeemi.cs.tut.fi/~tuomov/dl/
X
XMAINTAINER= rasmusm at diku.dk
XCOMMENT= A window manager with a text-editorish, keyboard friendly interface
X
XMAN1= ion-devel.1x
X
XUSE_X_PREFIX= yes
XUSE_GMAKE= yes
XBUILD_DEPENDS= libtool:${PORTSDIR}/devel/libtool
XBUILD_DEPENDS= lua:${PORTSDIR}/lang/lua
X
XETC_FILES= common-frame-bindings.lua\
X floatws.lua\
X ioncore-bindings.lua\
X ioncore-example.lua\
X ionws.lua\
X kludges.lua\
X look-blackwheat.lua\
X look-brownsteel.lua\
X look-clean.lua\
X look-dusky.lua\
X look-greyviolet.lua\
X look-ios.lua\
X look-simpleblue.lua\
X look-wheat.lua\
X pwm-ioncore-example.lua\
X query.lua
X
XSHARE_DATA= ioncorelib.lua\
X compat.lua\
X querylib.lua
X
XMODULE_INSTALL= $(LIBTOOL) --mode=install $(INSTALL_PROGRAM)
X
Xdo-install:
X @ ${MKDIR} ${PREFIX}/etc/ion-devel.sampel
X @ ${MKDIR} ${PREFIX}/lib/ion-devel
X @ ${MKDIR} ${PREFIX}/share/ion-devel
X.for i in ${ETC_FILES}
X @ ${INSTALL_DATA} ${WRKSRC}/etc/${i} ${PREFIX}/etc/ion-devel.sampel
X.endfor
X.for i in ${SHARE_DATA}
X @ ${INSTALL_DATA} ${WRKSRC}/share/${i} ${PREFIX}/share/ion-devel
X.endfor
X @ ${INSTALL_DATA} ${WRKSRC}/etc/ioncore-example.lua \
X ${PREFIX}/etc/ion-devel.sampel/ioncore.lua
X @ ${INSTALL_DATA} ${WRKSRC}/etc/look-clean.lua \
X ${PREFIX}/etc/ion-devel.sampel/draw.lua
X @ ${INSTALL_MAN} ${WRKSRC}/man/ion.1x ${PREFIX}/man/man1/ion-devel.1x
X @ ${INSTALL_SCRIPT} ${WRKSRC}/scripts/ion ${PREFIX}/bin/ion-devel
X @ ${INSTALL_SCRIPT} ${WRKSRC}/scripts/pwm ${PREFIX}/bin/pwm-devel
X @ ${INSTALL_PROGRAM} ${WRKSRC}/ioncore/ioncore ${PREFIX}/bin/ioncore
X @ ${INSTALL_PROGRAM} ${WRKSRC}/query/ion-completefile/ion-completefile\
X ${PREFIX}/lib/ion-devel/ion-devel-completefile
X @ ${INSTALL_SCRIPT} ${WRKSRC}/share/ion-edit \
X ${PREFIX}/share/ion-devel/ion-devel-edit
X @ ${INSTALL_SCRIPT} ${WRKSRC}/share/ion-man \
X ${PREFIX}/share/ion-devel/ion-devel-man
X @ ${INSTALL_SCRIPT} ${WRKSRC}/share/ion-view \
X ${PREFIX}/share/ion-devel/ion-devel-view
X @ ${INSTALL_SCRIPT} ${WRKSRC}/share/ion-ssh \
X ${PREFIX}/share/ion-devel/ion-devel-ssh
X @ ${INSTALL_SCRIPT} ${WRKSRC}/share/ion-runinxterm \
X ${PREFIX}/share/ion-devel/ion-devel-runinxterm
X @ ${MODULE_INSTALL} ${WRKSRC}/ionws/ionws.la ${PREFIX}/lib/ion-devel
X @ ${MODULE_INSTALL} ${WRKSRC}/floatws/floatws.la ${PREFIX}/lib/ion-devel
X @ ${MODULE_INSTALL} ${WRKSRC}/query/query.la ${PREFIX}/lib/ion-devel
X @ ${LIBTOOL} --finish ${PREFIX}/lib/ion-devel
X
Xpost-install:
X @${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.mk>
END-of-x11-wm/ion-devel/Makefile
echo x - x11-wm/ion-devel/distinfo
sed 's/^X//' >x11-wm/ion-devel/distinfo << 'END-of-x11-wm/ion-devel/distinfo'
XMD5 (ion-devel-20030602-1.tar.gz) = 6c6e52c4aeb09d3601a0a029c05ab21f
END-of-x11-wm/ion-devel/distinfo
echo x - x11-wm/ion-devel/pkg-descr
sed 's/^X//' >x11-wm/ion-devel/pkg-descr << 'END-of-x11-wm/ion-devel/pkg-descr'
XIon (based on PWM) is a new kind of window manager that brings a
Xtext-editorish, keyboard friendly user interface to window management.
X
XModern GUIs are unusable. Overlapping windows are hard to manage, especially
Xfrom the keyboard, and the user often ends up in a jungle. Not to mention the
Xapplication programs, which are even worse. Mouse-based search-and-click
Xinterfaces are slow - keyboard is fast having learnt the commands. Ion (the
Xlast three letters of vision =-) was written as an example and an experiment of
Xsomething presumably better (just the window manager, though).
X
XIon simply divides the screen into frames that take the whole screen. Big
Xdisplays have so much space that this is convenient and smaller displays
Xcouldn't show more than one window at a time anyway. The frames can be split
Xand growing the size of one will shrink others. Alike in PWM, clients can be
Xmoved between frames and multiple clients can be attached to one frame.
X
XWith Ion you will hardly ever have to touch the mouse again for navigation
Xbetween windows and the windows are always in order.
X
XWWW: http://modeemi.cs.tut.fi/~tuomov/ion/
X
X-- Robert Ricci
X ricci at cs.utah.edu
END-of-x11-wm/ion-devel/pkg-descr
echo x - x11-wm/ion-devel/pkg-plist
sed 's/^X//' >x11-wm/ion-devel/pkg-plist << 'END-of-x11-wm/ion-devel/pkg-plist'
Xbin/ioncore
Xbin/ion-devel
Xbin/pwm-devel
Xshare/ion-devel/ion-devel-edit
Xshare/ion-devel/ion-devel-man
Xshare/ion-devel/ion-devel-runinxterm
Xshare/ion-devel/ion-devel-ssh
Xshare/ion-devel/ion-devel-view
Xetc/ion-devel.sampel/ioncore.lua
Xetc/ion-devel.sampel/draw.lua
Xetc/ion-devel.sampel/common-frame-bindings.lua
Xetc/ion-devel.sampel/floatws.lua
Xetc/ion-devel.sampel/ioncore-bindings.lua
Xetc/ion-devel.sampel/ioncore-example.lua
Xetc/ion-devel.sampel/ionws.lua
Xetc/ion-devel.sampel/kludges.lua
Xetc/ion-devel.sampel/look-blackwheat.lua
Xetc/ion-devel.sampel/look-brownsteel.lua
Xetc/ion-devel.sampel/look-clean.lua
Xetc/ion-devel.sampel/look-dusky.lua
Xetc/ion-devel.sampel/look-greyviolet.lua
Xetc/ion-devel.sampel/look-ios.lua
Xetc/ion-devel.sampel/look-simpleblue.lua
Xetc/ion-devel.sampel/look-wheat.lua
Xetc/ion-devel.sampel/pwm-ioncore-example.lua
Xetc/ion-devel.sampel/query.lua
Xshare/ion-devel/compat.lua
Xshare/ion-devel/ioncorelib.lua
Xshare/ion-devel/querylib.lua
Xlib/ion-devel/ion-devel-completefile
Xlib/ion-devel/floatws.la
Xlib/ion-devel/floatws.so
Xlib/ion-devel/ionws.la
Xlib/ion-devel/ionws.so
Xlib/ion-devel/query.la
Xlib/ion-devel/query.so
X at unexec rmdir %D/etc/ion-devel.sampel
X at unexec rmdir %D/lib/ion-devel
X at unexec rmdir %D/share/ion-devel
END-of-x11-wm/ion-devel/pkg-plist
echo x - x11-wm/ion-devel/pkg-message
sed 's/^X//' >x11-wm/ion-devel/pkg-message << 'END-of-x11-wm/ion-devel/pkg-message'
X******************************************************************
X* Copy ${PREFIX}/etc/ion-devel.sampel to ${PREFIX}/etc/ion-devel *
X* before runing ion-devel *
X******************************************************************
END-of-x11-wm/ion-devel/pkg-message
exit
--- ion-devel.shar ends here ---
--
Rasmus Meldgaard
More information about the freebsd-ports-bugs
mailing list