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.
It's time for our TDE spring fundraiser!
The TDE project relies on your financial support to continue development
of this reliable and easy-to-use desktop environment. As my way of saying
thank you I have developed a new theme engine for Qt4 that allows you to
use your TDE styles and file dialogs in new Qt4 applications, as well as
interface methods required to easily convert common Qt4 objects to TQt3
objects and vice versa.
If we can raise the $2,000 required to keep the TDE project running for
the rest of the year by April 30, 2012, I will release the source code for
this new theme engine under the GPL and also integrate it into the next
TDE release. Once this engine and the conversion methods are part of TDE,
the foundation will have been laid for work to begin on a Webkit-based
replacement for the aging KHTML engine.
Donations can be securely made to the project at this address:
http://trinitydesktop.org/donate.php I will also update that page from
time to time with progress made towards the $2,000 goal.
TECHNICAL SPECIFICATIONS
Library requirements: TQt3, Qt4, and TDE core
Lines of C++ source code: 4207 (theme engine and Qt4 object translator)
License: GPL
Functional quality: ALPHA
Screenshots of the theme engine in action are attached, showing common TDE
styles in use with Qt4 applications. If you want to see this engine
released and think the TDE project is worth a few dollars, please donate
to help keep the TDE project going!
Timothy Pearson
Trinity Desktop Project
I would appreciate anybody who knows sharing how to perform a multiple pushes with GIT.
I have some low level patches I want to push. Patching my local repository is straightforward with find and sed.
The trick thereafter is diiscovering which modules were changed, creating a commit message for each individual module, and then pushing each individual module.
My understanding is that each module must be pushed individually. Also each module push requires typing a password.
There are 117 modules (packages) in TDE. Doing this manually I foresee myself missing or overlooking a few modules.
My only solution thus far is to write a script that can recurse through my local repository, but even that seems like a lot of work because of all the error checking that should occur.
Is there a simpler way?
Thanks!
Darrell
Forgive me for not bringing this up earlier.
We invite everyone to attend the March Meeting on IRC
(irc.freenode.net, #trinity-desktop-meeting).
It will take place on 25 March 2012, at 1200 EST (that's 1600 for my
friends in London, and 1100 for Central Time).
If you cannot make it, or you are busy, please let me know ASAP so
that I can change the date or time.
You may also leave topics to be discussed with any opinions or such.
And this is also a friendly reminder that Etherpad still exists
(etherpad.trinitydesktop.org).
Thanks,
Robert Xu
I would like us to improve our bug report triage efforts.
If you filed bug reports related to build issues, please consider updating them as follows:
* Any package that fails to build from source (FTBFS), change to Blocker P1. Ensure the acronym FTBFS is in the description.
* Any package that builds without failure but requires work-arounds or nominal patching, change to Critical P1.
* Any package that builds without failure but builds incompletely, such as missing components, or causes other problems, change to Major P1.
Thanks!
Darrell
Tim, Darrell,
applications-gtk-qt-engine had KDE -> TDE issues. See:
http://www.3111skyline.com/dl/dt/trinity/ss/gtk-styles-kde-fix.jpg
The patch file K2T.patch corrects this issue. I just need someone to push it.
Let me know if we need a bug report, otherwise, you can just add it to the GIT code.
--
David C. Rankin, J.D.,P.E.
Tim, All,
I've started another thread as I think I have narrowed down the problem I'm
having with TDE on xorg 1.12 to just the initializing of the TDE desktop. As a
test, I launched all the TDE apps that I normally use in fluxbox running on xorg
1.12 -- they all work! Have a look:
http://www.3111skyline.com/dl/dt/trinity/ss/tde-in-flux.jpg
So the tde failure on xorg 1.12 seems to be limited to the initialization
process when the splash screen is running (ksplash maybe?). What I need is to
identify what is running when the crash occurs to help narrow it down. I'm not
familiar with the 'startup sequence' so it would help if somebody who know could
chime in.
The best I can describe the point at which the crash occurs is this: The
splash screen gets to the 'hard drive icon' (Initializing system services) chugs
away for a while and then crashes. I also notice that during this part of the
startup, there is no background image shown as it was originally. Now only a
light-blue desktop color is shown. Can somebody help fill in the list of
potential processes running at this point so I can take a look? I can think of
one to add:
List of potential processes:
ksplash
What else is running at this point in time?
--
David C. Rankin, J.D.,P.E.
Tim, Darrell,
Fixing knetworkmanager8, I patched the first QString reference that was
causing the build failure with:
--- knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp
+++
knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp
2012-03-20 00:55:13.388877442 -0500
@@ -74,7 +74,7 @@
{
kdDebug() << "Activate Connection " <<
_conn->getObjectPath().data() << " on Device " << _dev->getObjectPath().ascii()
<< endl;
#if NM_CHECK_VERSION(0,8,992)
- if (!nm->ActivateConnectionAsync(id,
"org.freedesktop.NetworkManagerUserSettings", _conn->getObjectPath(),
TQT_DBusObjectPath(QCString(_dev->getObjectPath())), _conn->getObjectPath(), err))
+ if (!nm->ActivateConnectionAsync(id,
"org.freedesktop.NetworkManagerUserSettings", _conn->getObjectPath(),
TQT_DBusObjectPath(TQCString(_dev->getObjectPath())), _conn->getObjectPath(), err))
#else
if (!nm->ActivateConnectionAsync(id,
NM_DBUS_SERVICE_USER_SETTINGS, _conn->getObjectPath(),
TQT_DBusObjectPath(TQCString(_dev->getObjectPath())), _conn->getObjectPath(), err))
#endif
This solved the error:
[ 75%] Building CXX object
knetworkmanager-0.8/src/CMakeFiles/tdeinit_knetworkmanager-shared.dir/knetworkmanager-wireless_menuitem.cpp.o
cd /build/src/build/knetworkmanager-0.8/src && /usr/bin/c++
-Dtdeinit_knetworkmanager_shared_EXPORTS -DHAVE_CONFIG_H -march=x86-64
-mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4
-D_FORTIFY_SOURCE=2 -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include
tqt.h -fPIC -I/build/src/build/knetworkmanager-0.8/src -I/build/src/build
-I/opt/trinity/include -I/opt/tqt3/include -I/usr/include/tqt
-I/opt/trinity/include/dbus-1-tqt -I/usr/include/NetworkManager
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0
-I/usr/lib/dbus-1.0/include -UQT_NO_ASCII_CAST -o
CMakeFiles/tdeinit_knetworkmanager-shared.dir/knetworkmanager-wireless_menuitem.cpp.o
-c
/build/src/knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp
/build/src/knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp:
In member function 'void WirelessNetworkItem::slotActivate()':
/build/src/knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-wireless_menuitem.cpp:77:160:
error: 'QCString' was not declared in this scope
make[2]: ***
[knetworkmanager-0.8/src/CMakeFiles/tdeinit_knetworkmanager-shared.dir/knetworkmanager-wireless_menuitem.cpp.o]
Error 1
make[2]: Leaving directory `/build/src/build'
make[1]: ***
[knetworkmanager-0.8/src/CMakeFiles/tdeinit_knetworkmanager-shared.dir/all] Error 2
make[1]: Leaving directory `/build/src/build'
make: *** [all] Error 2
The next error encountered after the patch was:
[ 75%] Building CXX object
knetworkmanager-0.8/src/CMakeFiles/tdeinit_knetworkmanager-shared.dir/knetworkmanager-menuitem.cpp.o
cd /build/src/build/knetworkmanager-0.8/src && /usr/bin/c++
-Dtdeinit_knetworkmanager_shared_EXPORTS -DHAVE_CONFIG_H -march=x86-64
-mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4
-D_FORTIFY_SOURCE=2 -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL
-DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include
tqt.h -fPIC -I/build/src/build/knetworkmanager-0.8/src -I/build/src/build
-I/opt/trinity/include -I/opt/tqt3/include -I/usr/include/tqt
-I/opt/trinity/include/dbus-1-tqt -I/usr/include/NetworkManager
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0
-I/usr/lib/dbus-1.0/include -UQT_NO_ASCII_CAST -o
CMakeFiles/tdeinit_knetworkmanager-shared.dir/knetworkmanager-menuitem.cpp.o -c
/build/src/knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-menuitem.cpp
/build/src/knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-menuitem.cpp: In
member function 'void NetworkMenuItem::slotActivate()':
/build/src/knetworkmanager8/knetworkmanager-0.8/src/knetworkmanager-menuitem.cpp:99:163:
error: 'QCString' was not declared in this scope
make[2]: ***
[knetworkmanager-0.8/src/CMakeFiles/tdeinit_knetworkmanager-shared.dir/knetworkmanager-menuitem.cpp.o]
Error 1
make[2]: Leaving directory `/build/src/build'
make[1]: ***
[knetworkmanager-0.8/src/CMakeFiles/tdeinit_knetworkmanager-shared.dir/all] Error 2
make[1]: Leaving directory `/build/src/build'
make: *** [all] Error 2
I attempted to patch the TQString -> TQCString consistent with the earlier
patch -- but that obviously failed. I have grepped QCString and TQString looking
at the declarations, but I am over my c++ multi-inheritance limit at this point.
Can someone point me in the right direction to correct the QCString error.
Admittedly, my first attempt may have caused the second error, so can someone
confirm the first patch as well. Thanks.
--
David C. Rankin, J.D.,P.E.