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