You are not logged in.

#1 2007-01-21 18:34:26

toofishes
Developer
From: Chicago, IL
Registered: 2006-06-06
Posts: 602
Website

guitone PKGBUILD- having trouble using Qt4 [solved]

http://guitone.thomaskeller.biz/
Guitone is a Qt-based, cross-platform graphical user interface for the distributed version control system monotone.

I usually don't have too much trouble with PKGBUILDs, but this one is giving me a hard time. The big issue is its dependency on Qt4 (package in community repo), and the refusal of the build to not somehow look in /opt/qt/ instead of /opt/qt4/.

Here is what I've tried, to little success:

# Contributor: Dan McGee <dpmcgee>

pkgname=guitone
pkgver=0.5
pkgrel=1
pkgdesc="Qt-based GUI for the Monotone version control system"
url="http://guitone.thomaskeller.biz/"
license="GPL"
arch=(i686 x86_64)
depends=('monotone' 'qt4')
source=(http://guitone.thomaskeller.biz/count.php?file=$pkgver/$pkgname-$pkgver.tgz 
        qt4build.patch guitone.desktop)

build() {
  cd $startdir/src/$pkgname-$pkgver
  #build.sh is a pain, so do what it does here
  QTDIR=/opt/qt4
  QMAKESPEC=/opt/qt4/mkspecs/linux-g++
  qmake guitone.pro

  cd guitone
  lupdate guitone.pro
  lrelease guitone.pro
  cd ..

  #last ditch effort to fix qt/qt4 compile problems
  #find -exec sed -i 's#/opt/qt/#/opt/qt4/#g'

  make

  #install freedesktop file
  mkdir -p $startdir/pkg/usr/share/applications
  install -m644 $startdir/src/guitone.desktop $startdir/pkg/usr/share/applications/guitone.desktop
}
#!/bin/sh

I've tried it with and without setting the QTDIR and QMAKESPEC variables, I tried throwing that sed in there which did nothing. I've tried qt-config, a script in the qt4 package that switches your environment variables to point at qt4 instead of qt3, and that didn't seem to make a difference.

This is where the build always fails:

g++ -c -pipe -g -D_REENTRANT -Wall -W -Wno-unused-parameter   -I/opt/qt/mkspecs/linux-g++ -I. -I/opt/qt4/include -Itmp -Isrc/view/dialogs -o tmp/Guitone.o src/view/Guitone.cpp
g++ -c -pipe -g -D_REENTRANT -Wall -W -Wno-unused-parameter   -I/opt/qt/mkspecs/linux-g++ -I. -I/opt/qt4/include -Itmp -Isrc/view/dialogs -o tmp/TreeView.o src/view/TreeView.cpp
In file included from src/view/TreeView.cpp:21:
src/view/TreeView.h:24:21: error: QTreeView: No such file or directory

You'll see that no matter what, the compiler seems to want to include that mkspec file from the /opt/qt/ directory, which I think is the problem.

If anyone could shed some light on this I'd much appreciate it. If you want to try out the PKGBUILD, you can build the package without monotone, but you won't be able to run it. Qt4 should be the only dependency for building.

EDIT:

Fixed. Maybe I should delete the src/ directory after I start changing environment variables to get rid of stale Makefiles.

Offline

#2 2007-01-22 19:37:54

phrakture
Arch Overlord
From: behind you
Registered: 2003-10-29
Posts: 7,879
Website

Re: guitone PKGBUILD- having trouble using Qt4 [solved]

qtreeview.h is in /opt/qt4/include/Qt - does TreeView.cpp include <Qt> or <qtreeview> ?

Offline

#3 2007-01-23 04:05:21

toofishes
Developer
From: Chicago, IL
Registered: 2006-06-06
Posts: 602
Website

Re: guitone PKGBUILD- having trouble using Qt4 [solved]

#include <QTreeView>

is in TreeView.h, where the compile fails. The first file contains no references to Qt files that are exclusive to Qt4 (although it does have includes to two Qt3 files), so I would guess that is why it doesn't fail.

Offline

Board footer

Powered by FluxBB