You are not logged in.

#1 2009-10-19 17:22:56

djg1971
Member
Registered: 2008-09-11
Posts: 185

Cannot Make Xxdiff Compile And Install

xxdiff is supported by lots of distros, but unfortunately not arch...

downloaded the src package from http://furius.ca/xxdiff/

as root:  unpacked, ran python setup helper scripts, ran qt3to4 in src directory...

modified Makefile.bootstrap to set qt directory and set path to qmake binary...

did:  "make -f Makefile.bootstrap makefile"

then, "make" gives:

/usr/bin/uic3 optionsDialogBase.ui -o optionsDialogBase.h
g++ -c -pipe -DXX_DEBUG -g -D_REENTRANT -Wall -W -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../share/qt/mkspecs/linux-g++ -I. -I../../../include/QtCore -I../../../include/QtGui -I../../../include/Qt3Support -I../../../include -I. -I. -o optionsDialog.o optionsDialog.cpp
In file included from ./resources.h:651,
                 from ./optionsDialog.h:35,
                 from optionsDialog.cpp:27:
./resources.inline.h: In member function 'int* XxResources::getDynProgTable(uint, uint) const':
./resources.inline.h:266: error: 'realloc' was not declared in this scope
optionsDialog.cpp: In member function 'void XxOptionsDialog::onApply()':
optionsDialog.cpp:572: warning: suggest parentheses around comparison in operand of '=='
make: *** [optionsDialog.o] Error 1


Too bad this is (still) so painful, xxdfiff is very handy.  Anyone know how to make this work??

Offline

#2 2009-10-19 18:41:56

grey
Member
From: Europe
Registered: 2007-08-23
Posts: 679

Re: Cannot Make Xxdiff Compile And Install


Good ideas do not need lots of lies told about them in order to gain public acceptance.

Offline

#3 2009-10-19 18:48:54

djg1971
Member
Registered: 2008-09-11
Posts: 185

Re: Cannot Make Xxdiff Compile And Install

grey,

that doesn't work.  i wouldn't have posted this if it did.  adding the #include statement in resources.inline.h helps make get started, but it doesn't get much further before the following is encountered:

app.cpp: In member function 'XxResources* XxApp::buildResources() const':
app.cpp:2159: error: call of overloaded 'QTextIStream(QByteArray&)' is ambiguous
/usr/include/QtCore/qtextstream.h:353: note: candidates are: QTextIStream::QTextIStream(FILE*) <near match>
/usr/include/QtCore/qtextstream.h:352: note:                 QTextIStream::QTextIStream(QByteArray*) <near match>
/usr/include/QtCore/qtextstream.h:351: note:                 QTextIStream::QTextIStream(const QString*) <near match>
app.cpp:2160: error: no matching function for call to 'XxResParser::parse(QTextIStream&, XxResources&)'
./resParser.h:107: note: candidates are: void XxResParser::parse(const QString&, XxResources&)
./resParser.h:110: note:                 void XxResParser::parse(Q3TextStream&, XxResources&)
app.cpp: In member function 'bool XxApp::saveToFile(const QString&, bool, bool, bool)':
app.cpp:2434: warning: comparison between signed and unsigned integer expressions
app.cpp: In member function 'void XxApp::saveSelectedOnly()':
app.cpp:3005: warning: comparison between signed and unsigned integer expressions
app.cpp: In member function 'void XxApp::saveOptions()':
app.cpp:3093: warning: comparison between signed and unsigned integer expressions
make: *** [app.o] Error 1

the point is that there are multiple C++ compiling issues that need to be addressed, and there is no package, no buildable package, and no available hacking methodology (that I can find) which will solve them all.  So I was hoping someone had slogged through it and could comment on how to do all the necessary fixes.

Offline

#4 2009-10-19 18:59:08

grey
Member
From: Europe
Registered: 2007-08-23
Posts: 679

Re: Cannot Make Xxdiff Compile And Install

Sorry - I jumped to conclusions.
The last message on the AUR site of the package is from 09. October and says that it builds OK. So I assumed that there couldn't be illegal C++ code in it.

I'll try to have a look later.


Good ideas do not need lots of lies told about them in order to gain public acceptance.

Offline

#5 2009-10-19 19:39:48

grey
Member
From: Europe
Registered: 2007-08-23
Posts: 679

Re: Cannot Make Xxdiff Compile And Install

You're right - PKGBUILD is broken, but not badly so. And the package still compiles once you fix the PKGBUILD. Here is the patch:

--- PKGBUILD    2009-10-19 21:36:12.000000000 +0200
+++ PKGBUILD.new    2009-10-19 21:34:25.000000000 +0200
@@ -14,7 +14,7 @@
 build() {
 cd "$srcdir/$pkgname-$pkgver/src"
 sed -i "1i#include <stdlib.h>" resources.inline.h || return 1
-make -f Makefile.bootstrap makefile || return 1
-make || return 1
+make QTDIR=/opt/qt -f Makefile.bootstrap makefile || return 1
+make QTDIR=/opt/qt || return 1
 install -D -m 555 "$srcdir/$pkgname-$pkgver/bin/xxdiff" "$pkgdir/usr/bin/xxdiff"
 }

Edit: Did you give meld a try? I recommend it.

Last edited by grey (2009-10-19 19:47:23)


Good ideas do not need lots of lies told about them in order to gain public acceptance.

Offline

#6 2009-10-19 20:53:07

djg1971
Member
Registered: 2008-09-11
Posts: 185

Re: Cannot Make Xxdiff Compile And Install

grey,

still doesn't work.  via AUR & yaourt, I get the following, including the edits you suggested to PKGBUILD:

==> Starting build()...
/opt/qt/bin/qmake -o Makefile.qmake xxdiff.pro
cat Makefile.qmake Makefile.extra > Makefile
/opt/qt/bin/uic markersWidgetBase.ui -o markersWidgetBase.h
make: *** [markersWidgetBase.h] Segmentation fault
==> ERROR: Build Failed.
    Aborting...
Error: Makepkg was unable to build xxdiff package.

Offline

#7 2009-10-19 21:15:42

grey
Member
From: Europe
Registered: 2007-08-23
Posts: 679

Re: Cannot Make Xxdiff Compile And Install

Since it works for me, the C code is definitely legal.

What happens if you call uic directly in the xxdiff-3.2/src/ directory?
If that also seg faults, what do you get for
/opt/qt/bin/uic -h
/opt/qt/bin/uic -version
ldd /opt/qt/bin/uic


Good ideas do not need lots of lies told about them in order to gain public acceptance.

Offline

#8 2009-10-19 21:38:48

djg1971
Member
Registered: 2008-09-11
Posts: 185

Re: Cannot Make Xxdiff Compile And Install

grey,

thanks much -- your last post reminded me to try running yaourt as root to do the build, which worked fine.  i have never had problems with the fakeroot environment before, but then again i generally use pacman and have used relatively few aur packages since i've been using arch (~ 1.5 years).

i had not heard of meld, but installed that as well to compare:  I think xxdiff is much cleaner -- virtually no thought and interpretation required to see what is going on between the two files, which is after all exactly the point of the utility.

thanks again,
david

Offline

Board footer

Powered by FluxBB