Confirmed,
Libtool version mismatch resulting in undeclared 'to_tool_file_cmd' is common
to all tde modules requiring autoconf. With tdeaddons, after issuing:
autoreconf --force --install
to get past the initial libtool version mismatch, the build again failed with:
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../.. -I/opt/trinity/include
-I/opt/tqt3/include -I. -include tqt.h -I/opt/trinity/include/tde
-DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef -ansi
-D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W
-Wpointer-arith -fno-builtin -g3 -fno-inline -march=x86-64 -mtune=generic -O2
-pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2
-Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common -I/usr/include/tqt
-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT
-DQT_NO_TRANSLATION -MT geo_xxport.lo -MD -MP -MF .deps/geo_xxport.Tpo -c ""
-fPIC -DPIC -o .libs/geo_xxport.o
g++: error: : No such file or directory
g++: fatal error: no input files
Note the empty filename:
.deps/geo_xxport.Tpo -c "" -fPIC -DPIC -o .libs/geo_xxport.o
^^^^^^
So here is our third point in the line. I've updated
http://bugs.pearsoncomputing.net/show_bug.cgi?id=924 with the new information.
Additionally, I have additional work to do on tdeaddons. After sorting the
libtool issue, I ran into:
geo_xxport.cpp:114:26: fatal error: geo_xxport.moc: No such file or directory
compilation terminated.
So there is something going on there I don't quite understand...
--
David C. Rankin, J.D.,P.E.
I have the Trinity composition manager enabled. I'm not seeing any eye candy effects. I have just about everything checked/enabled.
Is there something else I need to do to see these effects?
I do not have any special compiz package installed.
This is on a physical machine using the proprietary Nvidia drivers and not a virtual machine.
Darrell
Tim, Darrell, All,
I finally got tdeutils to build on Arch. The old version of libtool in the GIT
tree does not correctly create the designation for 'to_tool_file_cmd' in the
'libtool' file that is created by running ./configure. The solution was to hack
the libtool file produced by configure and set:
to_tool_file_cmd=func_convert_file_noop
I just used sed to add it to the top of the libtool file after #! /bin/sh.
That is the default value according to:
http://www.gnu.org/software/libtool/manual/html_node/libtool-script-content…
— Variable: to_tool_file_cmd
If the toolchain is not native to the build platform (e.g. if you are using
some Unix to drive the scripting together with a Windows toolchain running in
Wine) this variable describes how to convert file names from the format used by
the build platform to the format used by the toolchain. Normally set to
‘func_convert_file_noop’.
I do not understand why the GIT libtool version does not correctly do this
when run against the stable 2.4.2 version of libtool. This is a bug that will
need to be fixed. But:
==> Finished making: tde-tdeutils 3513_tqt-1 (Wed Mar 21 16:25:37 UTC 2012)
--
David C. Rankin, J.D.,P.E.
Darrell, All,
I ran into a build error with tqscintilla that looks like I'm missing
something or I have stumbled onto a gcc issue. The build proceeds normally for a
good while, then:
g++ -c -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/usr/include/tqt
-I/opt/trinity/include -I/opt/tqt3/include -I/usr/include/tqt
-I/opt/trinity/include -I/opt/tqt3/include -I/usr/share/qt/mkspecs/linux-g++-64
-I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include -I. -I../include
-I../src -I/usr/include/tqt -I. -o ExternalLexer.o ../src/ExternalLexer.cpp
In file included from ../src/ExternalLexer.cpp:22:0:
../src/ExternalLexer.h:25:30: error: expected ')' before '*' token
../src/ExternalLexer.h:27:30: error: expected ')' before '*' token
../src/ExternalLexer.h:29:31: error: expected ')' before '*' token
../src/ExternalLexer.h:29:31: error: expected initializer before '*' token
../src/ExternalLexer.h:30:29: error: expected ')' before '*' token
../src/ExternalLexer.h:31:30: error: expected ')' before '*' token
../src/ExternalLexer.h:38:2: error: 'ExtLexerFunction' does not name a type
../src/ExternalLexer.h:39:2: error: 'ExtFoldFunction' does not name a type
../src/ExternalLexer.h:52:27: error: 'ExtLexerFunction' has not been declared
../src/ExternalLexer.h:52:52: error: 'ExtFoldFunction' has not been declared
../src/ExternalLexer.cpp: In member function 'virtual void
ExternalLexerModule::Lex(unsigned int, int, int, WordList**, Accessor&) const':
../src/ExternalLexer.cpp:63:7: error: 'fneLexer' was not declared in this scope
../src/ExternalLexer.cpp:74:74: error: 'fneLexer' was not declared in this scope
../src/ExternalLexer.cpp: In member function 'virtual void
ExternalLexerModule::Fold(unsigned int, int, int, WordList**, Accessor&) const':
../src/ExternalLexer.cpp:82:7: error: 'fneFolder' was not declared in this scope
../src/ExternalLexer.cpp:93:75: error: 'fneFolder' was not declared in this scope
../src/ExternalLexer.cpp: At global scope:
../src/ExternalLexer.cpp:99:39: error: variable or field 'SetExternal' declared void
../src/ExternalLexer.cpp:99:39: error: 'ExtLexerFunction' was not declared in
this scope
../src/ExternalLexer.cpp:99:64: error: 'ExtFoldFunction' was not declared in
this scope
../src/ExternalLexer.cpp:99:89: error: expected primary-expression before 'int'
../src/ExternalLexer.cpp: In constructor 'LexerLibrary::LexerLibrary(const char*)':
../src/ExternalLexer.cpp:121:3: error: 'GetLexerCountFn' was not declared in
this scope
../src/ExternalLexer.cpp:121:19: error: expected ';' before 'GetLexerCount'
../src/ExternalLexer.cpp:123:7: error: 'GetLexerCount' was not declared in this
scope
../src/ExternalLexer.cpp:128:4: error: 'GetLexerNameFn' was not declared in this
scope
../src/ExternalLexer.cpp:128:19: error: expected ';' before 'GetLexerName'
../src/ExternalLexer.cpp:129:4: error: 'ExtLexerFunction' was not declared in
this scope
../src/ExternalLexer.cpp:129:21: error: expected ';' before 'Lexer'
../src/ExternalLexer.cpp:130:4: error: 'ExtFoldFunction' was not declared in
this scope
../src/ExternalLexer.cpp:130:20: error: expected ';' before 'Folder'
../src/ExternalLexer.cpp:139:33: error: 'GetLexerName' was not declared in this
scope
../src/ExternalLexer.cpp:156:22: error: 'Lexer' was not declared in this scope
../src/ExternalLexer.cpp:156:29: error: 'Folder' was not declared in this scope
The code complained about in ExternalLexer.h begins with:
// External Lexer function definitions...
typedef void (EXT_LEXER_DECL *ExtLexerFunction)(unsigned int lexer, unsigned int
startPos, int length, int initStyle,
char *words[], WindowID window, char *props);
typedef void (EXT_LEXER_DECL *ExtFoldFunction)(unsigned int lexer, unsigned int
startPos, int length, int initStyle,
char *words[], WindowID window, char *props);
typedef void* (EXT_LEXER_DECL *GetLexerFunction)(unsigned int Index);
typedef int (EXT_LEXER_DECL *GetLexerCountFn)();
typedef void (EXT_LEXER_DECL *GetLexerNameFn)(unsigned int Index, char *name,
int buflength);
Is there some new directive required to have it use the 'EXT_LEXER_DECL *'
typedef?
--
David C. Rankin, J.D.,P.E.
I submitted a small patch to resolve one of the biggest irritants on my hit list, bug report 392 (http://bugs.pearsoncomputing.net/show_bug.cgi?id=392), Desktop Device Icon Placement.
The patch is small and restores a snippet of code that was deleted long ago.
I found the solution by persistent trial-and-error and not any elegant C++ sleuthing. Thus, I ask for a signoff review to inspect the restored code.
I am using the patch here but I'd like to push to GIT.
Thanks!
Darrell
I am typing this message from a Trinity session built from GIT.
Trinity is noticeably snappier than my KDE3 setup. Even Firefox responds faster, both in page rendering speed and interface response. Except for the startup speed Firefox almost feels native.
I feel as though I have new hardware, the difference is that noticeable.
After we eliminate some build issues and resolve some usability bugs I think R14 will be nice indeed. Very nice.
Much faster.
Thanks everybody!
Darrell
Darrel, All,
After examining the way Arch handled the building and installation of sip and
python2-sip, I believe the same can be applied to the sip4-tqt package to build
and provide both python2 and python3 support. I have setup the arch build of
sip4-tqt to do this. It can probably be done the exact same for all distros. The
build proceeds as follows:
pkgbase=tde-sip4-tqt
pkgname=('tde-sip' "${pkgbase}")
build() {
CFLAGS="${CFLAGS} -I/usr/include/tqt -I${TDEDIR}/include -I${QTDIR}/include"
cd ${srcdir} # the directory holding sip4-tqt source dir
## copy source for Python3 build
cp -r ${pkgbase#*-} sipPy3
## Python3 version
cd ${srcdir}/sipPy3
python configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
make
## Python2 version
cd ${srcdir}/${pkgbase#*-}
python2 configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
make
}
## package Python3 version as 'tde-sip'
package_tde-sip() {
pkgdesc="The TDE SIP C/C++ Bindings Generator for Python3 - Trinity upstream
GIT version"
depends=('python')
replaces=('python-sip' 'sip')
provides=('python-sip' 'sip')
cd "${srcdir}/sipPy3"
make DESTDIR="${pkgdir}" install
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
## package Python2 version as 'tde-sip4-tqt'
package_tde-sip4-tqt() {
pkgdesc="The TDE SIP C/C++ Bindings Generator for Python2 - Trinity upstream
GIT version"
depends=('sip' 'python2')
replaces=('python2-sip')
provides=('python2-sip')
cd "${srcdir}/${pkgbase#*-}"
make DESTDIR="${pkgdir}" install
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
# Provided by tde-sip
rm "${pkgdir}/usr/bin/sip"
}
The resulting packages avoid the /usr/bin/sip conflict by removing the version
produced by python2 in the package stage resulting in packages that install
nicely together. The file list provided is:
08:57 nirvana:~/tde/bld/tde-sip4-tqt> pacman -Qpl
tde-sip4-tqt-3513_tqt-2-x86_64.pkg.tar.xz
tde-sip4-tqt /usr/
tde-sip4-tqt /usr/bin/
tde-sip4-tqt /usr/include/
tde-sip4-tqt /usr/include/python2.7/
tde-sip4-tqt /usr/include/python2.7/sip.h
tde-sip4-tqt /usr/lib/
tde-sip4-tqt /usr/lib/python2.7/
tde-sip4-tqt /usr/lib/python2.7/site-packages/
tde-sip4-tqt /usr/lib/python2.7/site-packages/sip.so
tde-sip4-tqt /usr/lib/python2.7/site-packages/sipconfig.py
tde-sip4-tqt /usr/lib/python2.7/site-packages/sipdistutils.py
tde-sip4-tqt /usr/share/
tde-sip4-tqt /usr/share/licenses/
tde-sip4-tqt /usr/share/licenses/tde-sip4-tqt/
tde-sip4-tqt /usr/share/licenses/tde-sip4-tqt/LICENSE
08:58 nirvana:~/tde/bld/tde-sip4-tqt> pacman -Qpl
tde-sip-3513_tqt-2-x86_64.pkg.tar.xz
tde-sip /usr/
tde-sip /usr/bin/
tde-sip /usr/bin/sip
tde-sip /usr/include/
tde-sip /usr/include/python3.2mu/
tde-sip /usr/include/python3.2mu/sip.h
tde-sip /usr/lib/
tde-sip /usr/lib/python3.2/
tde-sip /usr/lib/python3.2/site-packages/
tde-sip /usr/lib/python3.2/site-packages/sip.so
tde-sip /usr/lib/python3.2/site-packages/sipconfig.py
tde-sip /usr/lib/python3.2/site-packages/sipdistutils.py
tde-sip /usr/share/
tde-sip /usr/share/licenses/
tde-sip /usr/share/licenses/tde-sip/
tde-sip /usr/share/licenses/tde-sip/LICENSE
May be worth looking at for other distros as well.
--
David C. Rankin, J.D.,P.E.
All,
I am working to build sip4-tqt and I'm running into problems telling python
configure.py where to find the include files. I patched sipgen/sip.h to #include
<tqt/tqt.h> which allow it to find tqt.h, but then it failed to find the next
include:
/usr/include/tqt/tqt.h:54:23: fatal error: ntqglobal.h: No such file or directory
which is in
/opt/tqt3/include/ntqglobal.h
So with a python configure, how do I set the include search path to include
/opt/tqt3/include:/opt/whatever/else/I/need? python2 configure.py --help tells
me how to flag where the completed files go, but not where to help configure.py
look for them. What's the trick?
--
David C. Rankin, J.D.,P.E.
Darrell, All,
Investigating the default sip packages provided by arch I find: sip (python3)
and python2-sip (python2). What arch has done is build /usr/bin/sip with
python3, but still provides all the packages we provide in sip4-tqt in the
python2-sip package. I wonder if this might not be a better setup. Specifically
here is the current arch package setup:
22:44 valkyrie:~/Documents/bld/tde-sip4-tqt> pacman -Ql python2-sip
python2-sip /usr/
python2-sip /usr/bin/
python2-sip /usr/include/
python2-sip /usr/include/python2.7/
python2-sip /usr/include/python2.7/sip.h
python2-sip /usr/lib/
python2-sip /usr/lib/python2.7/
python2-sip /usr/lib/python2.7/site-packages/
python2-sip /usr/lib/python2.7/site-packages/sip.so
python2-sip /usr/lib/python2.7/site-packages/sipconfig.py
python2-sip /usr/lib/python2.7/site-packages/sipdistutils.py
python2-sip /usr/share/
python2-sip /usr/share/licenses/
python2-sip /usr/share/licenses/python2-sip/
python2-sip /usr/share/licenses/python2-sip/LICENSE
22:45 valkyrie:~/Documents/bld/tde-sip4-tqt> pacman -Ql sip
sip /usr/
sip /usr/bin/
sip /usr/bin/sip
sip /usr/include/
sip /usr/include/python3.2mu/
sip /usr/include/python3.2mu/sip.h
sip /usr/lib/
sip /usr/lib/python3.2/
sip /usr/lib/python3.2/site-packages/
sip /usr/lib/python3.2/site-packages/sip.so
sip /usr/lib/python3.2/site-packages/sipconfig.py
sip /usr/lib/python3.2/site-packages/sipdistutils.py
sip /usr/share/
sip /usr/share/licenses/
sip /usr/share/licenses/sip/
sip /usr/share/licenses/sip/LICENSE
The sip4-tqt provides essentially what the arch python2-sip package provides
EXCEPT /usr/bin/sip which is provided by the python3 based sip package. If the
python3 sip is backwards compatible with the sip4-tqt needs, then couldn't I
simply replace the python2-sip package on arch with the sip2-tqt package without
the binary and keep both the original Arch sip package and sip4-tqt installed
and use the existing sip binary?
The sip4-tqt package I just built includes the following:
22:45 valkyrie:~/Documents/bld/tde-sip4-tqt> pacman -Qpl
tde-sip4-tqt-3513_tqt-1-x86_64.pkg.tar.xz
tde-sip4-tqt /usr/
tde-sip4-tqt /usr/bin/
tde-sip4-tqt /usr/bin/sip
tde-sip4-tqt /usr/include/
tde-sip4-tqt /usr/include/python2.7/
tde-sip4-tqt /usr/include/python2.7/sip.h
tde-sip4-tqt /usr/lib/
tde-sip4-tqt /usr/lib/python2.7/
tde-sip4-tqt /usr/lib/python2.7/site-packages/
tde-sip4-tqt /usr/lib/python2.7/site-packages/sip.so
tde-sip4-tqt /usr/lib/python2.7/site-packages/sipconfig.py
tde-sip4-tqt /usr/lib/python2.7/site-packages/sipdistutils.py
That would be a neat way to have sip cover both python2 as well as python3.
What say the experts?
--
David C. Rankin, J.D.,P.E.