Concering Kommander, includes port shar
Danny Pansters
danny at ricin.com
Mon Jun 21 16:49:09 PDT 2004
Hi,
Some explanation:
You might be aware of the kommander project over at KDE and quanta. Since
dot.kde.org seems to be down since yesterday, please see
http://sourceforge.net/projects/kommander/ and
http://kommander.kdewebdev.org/docs/introduction.html for some reading.
The idea is that you can pipe text/commands/scripts/whatever through stdin/out
into kde dialogs, running kde apps (through dcop, though some of this looks
to be broken with kde-3.2, maybe not with kde-3.2.9x, haven't tried their
cvs) or out of them. That "text" can be whole interpreted scripts.
So basically it gives you a very easy admin-level way to tap into many KDE
apps and dynamically make them do things or gather info from them, as well as
in the same way easily extend existing apps with your custom BOFH dialogs.
Or, most basic, and perhaps even most interesting, it's a very easy way to
put a KDE GUI onto many console apps at the admin level. There's actually a
Brazillian Linux distro that is already using this in their
install-from-live-cd routine. And that's also the field were I see most of
its initial possibilties. It somewhat reminded me of how the ROX desktop has
its py-gtk event loop be goverened by simple shell scripts. Kinda similar.
But with all of KDE/dcop already present kommander offers a much broader range
of possible short gui powered scripts all the way up to perhaps eventually
full featured apps some part of which are just kparts or plugins.
I haven't gotten around to really play with it myself, but I'm thinking of
putting together a few demos for FreeBSD (e.g. do cvsup, or even make world)
to see how easy it really is in practice (or if!).
Basically everything thats console- or KDE-oriented is a candidate for being
stitched together showing a dialog and piping commands to one another. If
anyone wanted to make a "Kissinstall" using good old sysinstall behind the
scenes this would be the thing to use.
Ports/packages:
Currently with KDE 3.2 we have a quanta port and corresponding KDE module that
hosts quanta, kommander (old version), and a bunch of other things. These are
going to become the kdewebdev package in the next KDE release. There's
already kdewebdev-3.2.90 right now.
Pros and cons of a seperate kommander port:
The big pro is that people can already play with it, and I'll try to keep it
updated up to 1.0 release which will materially be at kde-3.3 release/porting
time. The big con is that in terms of ports it would formally have to
conflict with quanta (and thus with all of kde-3.2 and lower), even though it
only overwrites part of quanta (the kommander part). It would be possible to
upgrade quanta to the kdewebdev pre-3.3 module as it is now (seems to have
gotten in synch with kommander lately) but it would still conflict with other
KDE modules and before you know it you might have a whole bunch of pre-3.3
ports. That wouldn't be desireable. Our ports are quite upgrade resilliant so
it would be my guess that the kde@ people expect to have a 3.3 ports set
within days after it gets released late August. That will include kommander.
Wrap-up & build note:
So I'm a bit hesitant to submit this port. Is there a general way to handle
this, can a port be slated to be deprecated after XX or removed after YY?
I should also add that there was one build issue, but I solved it in the port
(a few .ui files needed to be compiled into .h files and the provided build
scripts apparently didn't do that). I can talk to the author(s) later, they
have a mailing list. It looks like a very friendly community so I wouldn't
mind going embedded to serve the mighty Beastie :) ATM they are working with
Gentoo and Debian as far as I can tell from the ML archives. Willing to take
maintainership if required for longer term but then it would likely be the
whole kdeewebdev port to-come.
Questions:
Do we want a seperate kommander port (temporarily)? Is it the best solution?
Do we want a "beta" kdewebdev port (temporarily) as a quanta replacement
instead? Do we just wait until ~september (I'd be happy to help with some of
the KDE work BTW, I'm in over my neck already so what the heck)?
Unrelated but good news:
I read yesterday that py-qt and py-kde are going to be imported into KDE come
3.3. That's great, it makes the python platform much more supported and
(version-)stable for qt/kde. It will probably go into kdevel or kdesdk.
Finally:
So, what would you think would be best to do with this kommander port? Since
its only ~2 months I lean towards the golden answer "nothing" but then again
this is going to be regarded the killer app of KDE-3.3 and it would look good
if we were early, and also another user might try to build the thing and not
get over actioneditor.h being missing...
Your thoughts please.
Shar below. I put it in /usr/ports/devel, maybe it should be misc or
desktop-utils instead.
Regards,
Dan
# 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:
#
# kommander
# kommander/pkg-plist
# kommander/pkg-descr
# kommander/distinfo
# kommander/Makefile
# kommander/pkg-message
# kommander/scripts
# kommander/scripts/post-configure
#
echo c - kommander
mkdir -p kommander > /dev/null 2>&1
echo x - kommander/pkg-plist
sed 's/^X//' >kommander/pkg-plist << 'END-of-kommander/pkg-plist'
Xbin/kmdr-editor
Xbin/kmdr-executor
Xbin/kmdr-plugins
Xinclude/kommanderfactory.h
Xinclude/kommanderplugin.h
Xinclude/kommanderwidget.h
Xlib/libkommanderplugin.la
Xlib/libkommanderplugin.so
Xlib/libkommanderplugin.so.0
Xlib/libkommanderwidget.la
Xlib/libkommanderwidget.so
Xlib/libkommanderwidget.so.0
Xlib/libkommanderwidgets.la
Xlib/libkommanderwidgets.so
Xlib/libkommanderwidgets.so.0
Xshare/applnk/Editors/kmdr-editor.desktop
Xshare/applnk/.hidden/kmdr-executor.desktop
Xshare/examples/kommander/checkmail.kmdr
Xshare/examples/kommander/ex1.kmdr
Xshare/examples/kommander/execprogram.kmdr
Xshare/examples/kommander/firstform.kmdr.kmdr
Xshare/examples/kommander/form1.kmdr
Xshare/examples/kommander/form2.kmdr
Xshare/examples/kommander/form3.kmdr
Xshare/examples/kommander/form4.kmdr
Xshare/examples/kommander/form5.kmdr
Xshare/examples/kommander/newfile.kmdr
Xshare/examples/kommander/populate.kmdr
Xshare/examples/kommander/resize.kmdr
Xshare/examples/kommander/selectedwidgettext.kmdr
Xshare/examples/kommander/settings.kmdr
Xshare/examples/kommander/simplelist.kmdr
Xshare/examples/kommander/tar.kmdr
Xshare/examples/kommander/tidy.kmdr
Xshare/examples/kommander/widgetgenerator.kmdr
Xshare/examples/kommander/tutorial/README
Xshare/examples/kommander/tutorial/append.kmdr
Xshare/examples/kommander/tutorial/arrays.kmdr
Xshare/examples/kommander/tutorial/cmdline.kmdr
Xshare/examples/kommander/tutorial/dcop.kmdr
Xshare/examples/kommander/tutorial/globals.kmdr
Xshare/examples/kommander/tutorial/initialize.kmdr
Xshare/examples/kommander/tutorial/settings.kmdr
Xshare/examples/kommander/tutorial/slots.kmdr
Xshare/examples/kommander/tutorial/strings.kmdr
Xshare/icons/locolor/16x16/apps/kmdr/executor.png
Xshare/icons/locolor/32x32/apps/kmdr/executor.png
Xshare/mimelnk/application/x-kommander.desktop
X at dirrm share/examples/kommander/tutorial
X at dirrm share/examples/kommander
X at dirrm share/icons/locolor/16x16/apps/kmdr
X at dirrm share/icons/locolor/32x32/apps/kmdr
END-of-kommander/pkg-plist
echo x - kommander/pkg-descr
sed 's/^X//' >kommander/pkg-descr << 'END-of-kommander/pkg-descr'
XKommander is a set of tools that allow you to create dynamic GUI dialogs
Xthat generate, based on their state, a piece of text. The piece of text can
Xbe a command line to a program, any piece of code, business documents that
Xcontain a lot of repetitious or templated text and so on. The resulting
Xgenerated text can then be executed as a command line program (hence the
Xname "Kommander"), written to a file, passed to a script for extended
Xprocessing, and literally anything else you can think of. The best part of
Xit all? You aren't required to write a single line of code!
X
XWWW: http://kde-apps.org/content/show.php?content=12865
X http://kommander.kdewebdev.org/docs/
X
XThe new Kommander will be included in the upcoming kdewebdev module in
XKDE 3.3 (together with quanta and others). This should be a temporary port.
X
END-of-kommander/pkg-descr
echo x - kommander/distinfo
sed 's/^X//' >kommander/distinfo << 'END-of-kommander/distinfo'
XMD5 (KDE/kommander-1.0alpha5.tar.bz2) = 2bfce1e63dc349c484865f16b062e650
XSIZE (KDE/kommander-1.0alpha5.tar.bz2) = 1387011
END-of-kommander/distinfo
echo x - kommander/Makefile
sed 's/^X//' >kommander/Makefile << 'END-of-kommander/Makefile'
X# New ports collection makefile for: Kommander
X# Date created: 20 Jun 2004
X# Whom: Danny Pansters
<danny at ricin.com>
X#
X# $FreeBSD: $
X#
X
XPORTNAME= kommander
XPORTVERSION= 1.0.a5
XCATEGORIES= devel kde
XMASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR= kommander
XDISTNAME= ${PORTNAME}-1.0alpha5
XDIST_SUBDIR= KDE
X
XMAINTAINER= danny at ricin.com
XCOMMENT= KDE dialog builder and executor
X
XBUILD_DEPENDS= uic:${PORTSDIR}/x11-toolkits/qt33
XRUN_DEPENDS= kompare:${PORTSDIR}/devel/kdesdk3
X
XUSE_KDELIBS_VER=3
XPREFIX= ${KDE_PREFIX}
X
XUSE_BZIP2= yes
XUSE_REINPLACE= yes
XGNU_CONFIGURE= yes
X
XCONFLICTS= quanta-*
X
X.include <bsd.port.pre.mk>
X
XSHAREMODE= 644
X
Xpost-install:
X.if !defined(NOPORTDOCS)
X @${MKDIR} ${EXAMPLESDIR}
X @${MKDIR} ${EXAMPLESDIR}/tutorial
X ${INSTALL_DATA} ${WRKSRC}/kommander/examples/*.kmdr ${EXAMPLESDIR}
X ${INSTALL_DATA} ${WRKSRC}/kommander/examples/tutorial/* \
X ${EXAMPLESDIR}/tutorial
X.endif
X @${ECHO} && ${CAT} ${DESCR} ${PKGMESSAGE}
X
X.include <bsd.port.post.mk>
END-of-kommander/Makefile
echo x - kommander/pkg-message
sed 's/^X//' >kommander/pkg-message << 'END-of-kommander/pkg-message'
XTo test run one of the demos, e.g:
X
Xkmdr-executor /usr/local/share/examples/kommander/form5.kmdr
X
END-of-kommander/pkg-message
echo c - kommander/scripts
mkdir -p kommander/scripts > /dev/null 2>&1
echo x - kommander/scripts/post-configure
sed 's/^X//' >kommander/scripts/post-configure <<
'END-of-kommander/scripts/post-configure'
X#!/bin/sh
X
X# Prevent make from failing because some .ui files are not compiled
X# to corresponding .h files (which are later included)
X
Xcd ${WRKSRC}/kommander/editor
Xfor item in `ls *.ui | sed s/.ui//`
Xdo
X /usr/X11R6/bin/uic -L /usr/X11R6/lib/kde3/plugins/designer \
X -nounload -o ${item}.h ./${item}.ui
Xdone
X
END-of-kommander/scripts/post-configure
exit
More information about the freebsd-ports
mailing list