Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/Gentoo?V=5
QUERY_STRINGV=5
CONTENT_TYPE
DOCUMENT_URI/revision/Gentoo
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.70.179.122
REMOTE_PORT9044
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR3.19.30.232
HTTP_CF_RAY87eb033238dc026c-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP3.19.30.232
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit Gentoo {A Linux source-based distribution located on http://www.gentoo.org very much inspired by the way they do things in *BSD.

Did have a reputation of being very bleeding edge for developers, but is not as up to date on [Tcl] and [Tk] as a developer would like.

If you have root access on your Gentoo machine you can more or less easily integrate new packages by making your own ebuild file and placing it somewhere where portage can find it, but not mess with it. Gentoo supports this through so-called overlay directories.

At the time of writing this, tcllib-1.8 was not present in the default Portage tree and I wanted to use that version. I also wanted to test out tktreectrl which was not included in Portage at all. Same applied for Tcl and Tk 8.5. These will be used as examples.

I did not want to challenge the task of having dependencies checked and so the first task is to make sure that a fairly recent version of Tcl and Tk are installed:
======bash
 $> sudo emerge dev-lang/tk
======
This will install the newest stable Tk and Tcl (because Tk depends on Tcl in Gentoo) depending on your settings and architecture. To install a testing or experimental package do something like:
======bash
 #> echo "dev-lang/tcl ~x86" >> /etc/portage/package.keywords
 #> echo "dev-lang/tk ~x86" >> /etc/portage/package.keywords
 #> emerge =dev-lang/tk-8.4.12
======
and the stable version should be replaced with a newer version. (In case the installed version is not new enough) Tcl and Tk 8.5 should be installed in parallell to the 8.4 tree, but that has to wait until we are ready.

The core packages of Tcl and Tk are located in dev-lang/tcl and dev-lang/tk. The rest is located in dev-tcltk/* in standard Portage. (Portage is the name of the package repository system used in Gentoo). It is important that the overlay directory structure follow the structure in Portage. Portage is normally located in /usr/portage. For the overlay directory structure it is suggested to use /usr/local/portage or, as I like to do, $HOME/portage.

To manage packages, Portage offers a python program called emerge. In order to tell emerge about the overlay directory edit the file /etc/make.conf and add the line:
======bash
 PORTDIR_OVERLAY="/usr/local/portage /home/myusername/portage"
======

We start with tcllib-1.8 and create a directory structure inside the overlay directory:
======bash
 $> mkdir -p $HOME/portage/dev-tcltk/tcllib 
======
Then we just copy the already existing tcllib-1.7.ebuild file from /usr/portage and rename it to tcllib-1.8.ebuild:
======bash
 $> cp /usr/portage/dev-tcltk/tcllib/tcllib-1.7.ebuild $HOME/portage/dev-tcltk/tcllib/tcllib-1.8.ebuild
======
We need to edit this ebuild because there are some paches applied which we want to ignore for now:
======bash
 $> vi $HOME/portage/dev-tcltk/tcllib/tcllib-1.8.ebuild
======
Comment out the epatch lines and save the file.  Now we can finish the preparation by running
======bash
 $> ebuild $HOME/portage/dev-tcltk/tcllib/tcllib-1.8.ebuild digest
======
This will download tcllib-1.8 and create a md5 checksum for emerge. Now we can install tcllib-1.8:
======bash
 #> echo "dev-tcltk/tcllib ~x86" >> /etc/portage/package.keywords
 $> sudo emerge dev-tcltk/tcllib
======
Now tcllib-1.8 should hopefully be downloaded (from the local cache) and installed. If it doesn't work as planned then do
======bash
 $> sudo emerge =dev-tcltk/tcllib-1.7
======
in order to put back an official version.

Now we move on to see if we can get tktreectrl version 2.1 installed (It is a part of ActiveTCL and logically important to have available on _any_ distribution)
======bash
 $> mkdir -p $HOME/portage/dev-tcltk/tktreectrl
 $> vi $HOME/portage/dev-tcltk/tktreectrl/tktreectrl-2.1.ebuild
======
Insert into that file:
======bash
 inherit eutils

 DESCRIPTION="TkTreeCtrl is a flexible listbox widget for Tk"
 HOMEPAGE="http://tktreectrl.sourceforge.net/"
 SRC_URI="mirror://sourceforge/tktreectrl/${P}.tar.gz"

 LICENSE="BSD"
 SLOT="0"
 IUSE=""
 KEYWORDS="~x86"

 DEPEND=">=dev-lang/tcl-8.3.1"

 src_unpack() {
     unpack ${A}
 }

 src_compile() {
    econf || die
 }

 src_install() {
    make DESTDIR=${D} install || die
    dodoc ChangeLog PACKAGES* README STATUS *.txt
 }
======
Then create the digest file
======bash
 $> ebuild $HOME/portage/dev-tcltk/tktreectrl/tktreectrl-2.1.ebuild digest
======
And then at the end install it:
======bash
 #> echo "dev-tcltk/tktreectrl ~x86" >> /etc/portage/package.keywords
 $> sudo emerge dev-tcltk/tktreectrl
======
and now the package should be compiled and installed for you. So far I have some problem with the documentation, but at least the important part is solved.

Next up is getting tkcon and then Tcl and Tk 8.5 onto the system. 

----
2006-04-07, [SB]: Got frustrated that many of the [package]s that [ActiveTcl] provides do not have an ebuild for Gentoo. The uttermost frust was to face the fact that [tkcon] is not a part of standard Gentoo.

2006-04-09, [SB]: Updating. I use kuroo (emerge app-portage/kuroo) to manage my Gentoo packages, and the packages in the overlay does not show up in there, so I have to use emerge from the command line, which is not a big problem, but it has to be solved sometime.

<<categories>> Distribution} regexp2} CALL {my render Gentoo {A Linux source-based distribution located on http://www.gentoo.org very much inspired by the way they do things in *BSD.

Did have a reputation of being very bleeding edge for developers, but is not as up to date on [Tcl] and [Tk] as a developer would like.

If you have root access on your Gentoo machine you can more or less easily integrate new packages by making your own ebuild file and placing it somewhere where portage can find it, but not mess with it. Gentoo supports this through so-called overlay directories.

At the time of writing this, tcllib-1.8 was not present in the default Portage tree and I wanted to use that version. I also wanted to test out tktreectrl which was not included in Portage at all. Same applied for Tcl and Tk 8.5. These will be used as examples.

I did not want to challenge the task of having dependencies checked and so the first task is to make sure that a fairly recent version of Tcl and Tk are installed:
======bash
 $> sudo emerge dev-lang/tk
======
This will install the newest stable Tk and Tcl (because Tk depends on Tcl in Gentoo) depending on your settings and architecture. To install a testing or experimental package do something like:
======bash
 #> echo "dev-lang/tcl ~x86" >> /etc/portage/package.keywords
 #> echo "dev-lang/tk ~x86" >> /etc/portage/package.keywords
 #> emerge =dev-lang/tk-8.4.12
======
and the stable version should be replaced with a newer version. (In case the installed version is not new enough) Tcl and Tk 8.5 should be installed in parallell to the 8.4 tree, but that has to wait until we are ready.

The core packages of Tcl and Tk are located in dev-lang/tcl and dev-lang/tk. The rest is located in dev-tcltk/* in standard Portage. (Portage is the name of the package repository system used in Gentoo). It is important that the overlay directory structure follow the structure in Portage. Portage is normally located in /usr/portage. For the overlay directory structure it is suggested to use /usr/local/portage or, as I like to do, $HOME/portage.

To manage packages, Portage offers a python program called emerge. In order to tell emerge about the overlay directory edit the file /etc/make.conf and add the line:
======bash
 PORTDIR_OVERLAY="/usr/local/portage /home/myusername/portage"
======

We start with tcllib-1.8 and create a directory structure inside the overlay directory:
======bash
 $> mkdir -p $HOME/portage/dev-tcltk/tcllib 
======
Then we just copy the already existing tcllib-1.7.ebuild file from /usr/portage and rename it to tcllib-1.8.ebuild:
======bash
 $> cp /usr/portage/dev-tcltk/tcllib/tcllib-1.7.ebuild $HOME/portage/dev-tcltk/tcllib/tcllib-1.8.ebuild
======
We need to edit this ebuild because there are some paches applied which we want to ignore for now:
======bash
 $> vi $HOME/portage/dev-tcltk/tcllib/tcllib-1.8.ebuild
======
Comment out the epatch lines and save the file.  Now we can finish the preparation by running
======bash
 $> ebuild $HOME/portage/dev-tcltk/tcllib/tcllib-1.8.ebuild digest
======
This will download tcllib-1.8 and create a md5 checksum for emerge. Now we can install tcllib-1.8:
======bash
 #> echo "dev-tcltk/tcllib ~x86" >> /etc/portage/package.keywords
 $> sudo emerge dev-tcltk/tcllib
======
Now tcllib-1.8 should hopefully be downloaded (from the local cache) and installed. If it doesn't work as planned then do
======bash
 $> sudo emerge =dev-tcltk/tcllib-1.7
======
in order to put back an official version.

Now we move on to see if we can get tktreectrl version 2.1 installed (It is a part of ActiveTCL and logically important to have available on _any_ distribution)
======bash
 $> mkdir -p $HOME/portage/dev-tcltk/tktreectrl
 $> vi $HOME/portage/dev-tcltk/tktreectrl/tktreectrl-2.1.ebuild
======
Insert into that file:
======bash
 inherit eutils

 DESCRIPTION="TkTreeCtrl is a flexible listbox widget for Tk"
 HOMEPAGE="http://tktreectrl.sourceforge.net/"
 SRC_URI="mirror://sourceforge/tktreectrl/${P}.tar.gz"

 LICENSE="BSD"
 SLOT="0"
 IUSE=""
 KEYWORDS="~x86"

 DEPEND=">=dev-lang/tcl-8.3.1"

 src_unpack() {
     unpack ${A}
 }

 src_compile() {
    econf || die
 }

 src_install() {
    make DESTDIR=${D} install || die
    dodoc ChangeLog PACKAGES* README STATUS *.txt
 }
======
Then create the digest file
======bash
 $> ebuild $HOME/portage/dev-tcltk/tktreectrl/tktreectrl-2.1.ebuild digest
======
And then at the end install it:
======bash
 #> echo "dev-tcltk/tktreectrl ~x86" >> /etc/portage/package.keywords
 $> sudo emerge dev-tcltk/tktreectrl
======
and now the package should be compiled and installed for you. So far I have some problem with the documentation, but at least the important part is solved.

Next up is getting tkcon and then Tcl and Tk 8.5 onto the system. 

----
2006-04-07, [SB]: Got frustrated that many of the [package]s that [ActiveTcl] provides do not have an ebuild for Gentoo. The uttermost frust was to face the fact that [tkcon] is not a part of standard Gentoo.

2006-04-09, [SB]: Updating. I use kuroo (emerge app-portage/kuroo) to manage my Gentoo packages, and the packages in the overlay does not show up in there, so I have to use emerge from the command line, which is not a big problem, but it has to be solved sometime.

<<categories>> Distribution}} CALL {my revision Gentoo} CALL {::oo::Obj5744104 process revision/Gentoo} CALL {::oo::Obj5744102 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4