LINUX.ORG.RU
ФорумTalks

tkLOR - собрать с не системными Tcl/Tk - решено


0

0

tkLOR - собрать с не системными Tcl/Tk - решено:
cd /tmp
mkdir -p /tmp/SOFT/tkLOR
tar -xjvf tcl8.5.0-src.tar.bz2
cd tcl8.5.0
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH CFLAGS="-O2 -mcpu=i686" CXXFLAGS="-O2 -mcpu=i686" ./configure --prefix=/usr/local/libexec/TclTk
make
checkinstall -S --nodoc --addso=yes -y
mv tcl-8.5.0-i386-1.tgz ..
cd ..
installpkg tcl-8.5.0-i386-1.tgz
tar -xjvf tk8.5.0-src.tar.bz2
cd tk8.5.0
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH CFLAGS="-O2 -mcpu=i686" CXXFLAGS="-O2 -mcpu=i686" ./configure --prefix=/usr/local/libexec/TclTk \
--with-tcl=/usr/local/libexec/TclTk/lib
make
checkinstall -S --nodoc --addso=yes -y
mv tk-8.5.0-i386-1.tgz ..
cd ..
installpkg tk-8.5.0-i386-1.tgz
tar -xjvf tile-0.8.2.tar.bz2
cd tile-0.8.2
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH CFLAGS="-O2 -mcpu=i686" CXXFLAGS="-O2 -mcpu=i686" ./configure --prefix=/usr/local/libexec/TclTk \
--with-tcl=/usr/local/libexec/TclTk/lib \
--with-tk=/usr/local/libexec/TclTk/lib
make
checkinstall -S --nodoc --addso=yes -y
mv tile-0.8.2-i386-1.tgz ..
cd ..
installpkg tile-0.8.2-i386-1.tgz
tar -xjvf tcllib-1.10.tar.bz2
cd tcllib-1.10
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH CFLAGS="-O2 -mcpu=i686" CXXFLAGS="-O2 -mcpu=i686" ./configure --prefix=/usr/local/libexec/TclTk \
--with-tcl=/usr/local/libexec/TclTk/lib \
--with-tk=/usr/local/libexec/TclTk/lib
make
checkinstall -S --nodoc --addso=yes -y
mv tcllib-1.10-i386-1.tgz ..
cd ..
installpkg tcllib-1.10-i386-1.tgz
rm -rf tcl8.5.0 tk8.5.0 tile-0.8.2 tcllib-1.10
tar -xzvf tklor_0.9.4-1.tar.gz
bzcat tklor-0.9.4_path.patch.bz2|patch -p0
#############################################
diff -ruN tklor-0.9.4.orig/lib/lorBackend.tcl tklor-0.9.4/lib/lorBackend.tcl
--- tklor-0.9.4.orig/lib/lorBackend.tcl	2008-03-02 13:03:22.000000000 +0300
+++ tklor-0.9.4/lib/lorBackend.tcl	2008-03-17 18:37:24.000000000 +0300
@@ -20,7 +20,7 @@
 ############################################################################
 
 # \
-exec tclsh "$0" "$@"
+exec /usr/local/libexec/TclTk/bin/tclsh8.5 "$0" "$@"
 
 package require Tcl 8.4
 package require cmdline 1.2.5
@@ -30,11 +30,7 @@
 
 set configDir [ file join $::env(HOME) ".$appName" ]
 
-if {[ string first Windows $tcl_platform(os) ] == -1} {
-    set libDir "/usr/lib/tkLOR"
-} else {
-    set libDir "."
-}
+set libDir "/usr/local/libexec/tkLOR/lib"
 
 ############################################################################
 #                                 VARIABLES                                #
diff -ruN tklor-0.9.4.orig/tkLOR tklor-0.9.4/tkLOR
--- tklor-0.9.4.orig/tkLOR	2008-03-02 13:03:22.000000000 +0300
+++ tklor-0.9.4/tkLOR	2008-03-17 18:37:24.000000000 +0300
@@ -20,7 +20,7 @@
 ############################################################################
 
 # \
-exec wish "$0" "$@"
+exec /usr/local/libexec/TclTk/bin/wish8.5 "$0" "$@"
 
 package require Tcl 8.4
 package require Tk 8.4
@@ -36,11 +36,7 @@
 set configDir [ file join $::env(HOME) ".$appName" ]
 set threadSubDir "threads"
 
-if {[ string first Windows $tcl_platform(os) ] == -1} {
-    set libDir "/usr/lib/tkLOR"
-} else {
-    set libDir ".\\lib"
-}
+set libDir "/usr/local/libexec/tkLOR/lib"
 
 ############################################################################
 #                                 VARIABLES                                #
@@ -1938,7 +1934,7 @@
     exit
 }
 
-set backend [ list [ auto_execok tclsh ] [ file join $libDir lorBackend.tcl ] -configDir $configDir -libDir $libDir -appId $appId ]
+set backend [ list [ auto_execok /usr/local/libexec/TclTk/bin/tclsh8.5 ] [ file join $libDir lorBackend.tcl ] -configDir $configDir -libDir $libDir -appId $appId ]
 
 initMainWindow
 initMenu
diff -ruN tklor-0.9.4.orig/tklor.desktop tklor-0.9.4/tklor.desktop
--- tklor-0.9.4.orig/tklor.desktop	2008-03-02 13:03:22.000000000 +0300
+++ tklor-0.9.4/tklor.desktop	2008-03-17 18:28:02.000000000 +0300
@@ -2,7 +2,7 @@
 Comment=
 Comment[ru]=
 Encoding=UTF-8
-Exec=tkLOR
+Exec=/usr/local/libexec/tkLOR/tkLOR.sh
 GenericName=п п╩п╦п╣п╫я┌ п╢п╩я▐ я┤я┌п╣п╫п╦я▐ п⌡п·п═
 GenericName[ru]=п п╩п╦п╣п╫я┌ п╢п╩я▐ я┤я┌п╣п╫п╦я▐ п⌡п·п═
 Icon=tklor.xpm
@@ -11,7 +11,7 @@
 Name[ru]=tkLOR
 Path=
 StartupNotify=false
-Terminal=false
+Terminal=true
 Type=Application
 X-DCOP-ServiceType=
 X-KDE-SubstituteUID=false
diff -ruN tklor-0.9.4.orig/tkLOR.sh tklor-0.9.4/tkLOR.sh
--- tklor-0.9.4.orig/tkLOR.sh	1970-01-01 03:00:00.000000000 +0300
+++ tklor-0.9.4/tkLOR.sh	2008-03-17 18:37:24.000000000 +0300
@@ -0,0 +1 @@
+/usr/local/libexec/TclTk/bin/wish8.5 /usr/local/libexec/tkLOR/tkLOR -configDir=$HOME/.tkLOR
#############################################
mkdir -p tklor-0.9.4-noarch-1/usr/local/libexec/tkLOR
mkdir -p tklor-0.9.4-noarch-1/usr/share/applications
mkdir -p tklor-0.9.4-noarch-1/usr/share/pixmaps
mv tklor.xpm tklor-0.9.4-noarch-1/usr/share/pixmaps
mv tklor.desktop tklor-0.9.4-noarch-1/usr/share/applications
mv -rf tklor-0.9.4/* tklor-0.9.4-noarch-1/usr/local/libexec/tkLOR
chmod -R 644 tklor-0.9.4-noarch-1
chmod -R +X tklor-0.9.4-noarch-1
chmod +x tklor-0.9.4-noarch-1/usr/local/libexec/tkLOR/tkLOR
chmod +x tklor-0.9.4-noarch-1/usr/local/libexec/tkLOR/tkLOR.sh
chown -R root:root tklor-0.9.4-noarch-1
cd tklor-0.9.4-noarch-1
makepkg ../tklor-0.9.4-noarch-1.tgz
cd ..
installpkg tklor-0.9.4-noarch-1.tgz
rm -rf tklor-0.9.4 tklor-0.9.4-noarch-1

Ответ на: комментарий от KRoN73

в принципе так же можно и под дебиан - только я уже не помню man команды к dpkg-create (аналог макеpkg)

botrops-schlegelii ★★
() автор топика

1)можно/нужно исключить "--addso=yes" в строке
вместо checkinstall -S --nodoc --addso=yes -y
будет checkinstall -S --nodoc -y
2)
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH CFLAGS="-O2 -mcpu=i686" CXXFLAGS="-O2 -mcpu=i686" ./configure --prefix=/usr/local/libexec/TclTk
можно заменить на
./configure --prefix=/usr/local/libexec/TclTk

botrops-schlegelii ★★
() автор топика
Ответ на: комментарий от botrops-schlegelii

я просто делал не несколько пакетов tcl tk tile tcllib tklor, а два - tcltk-8.5.0-i686-3.tgz(со всем кроме tklor) и tklor-0.9.4-noarch-3.tgz

botrops-schlegelii ★★
() автор топика

Ой, зачем всё так страшно? ;)

Авторское решение:

Вместо

-if {[ string first Windows $tcl_platform(os) ] == -1} { - set libDir "/usr/lib/tkLOR" -} else { - set libDir "." -} +set libDir "/usr/local/libexec/tkLOR/lib"

Надо:

запускать программу с ключом -libDir=/usr/local/libexec/tkLOR/lib

gaa ★★
()
Ответ на: комментарий от gaa

Предоставьте пожалуйста адрес бугзиллы вашего поделия, я обнаужил фундаментальный баг в программе, хочу сообщить о нём официально.

anonymous
()
Ответ на: комментарий от anonymous

> Предоставьте пожалуйста адрес бугзиллы вашего поделия, я обнаужил фундаментальный баг в программе, хочу сообщить о нём официально.

http://code.google.com/p/tklor/issues/list , можно было и самому найти.

P.S. Только советую сразу прочитать FAQ: http://code.google.com/p/tklor/wiki/FAQ

gaa ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.