Opened 15 years ago
Closed 15 years ago
#21138 closed defect (fixed)
strigi fails to build 64-bit
Reported by: | andrea@… | Owned by: | clubjuggler@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | LP64 | Cc: | ruud@…, mf2k (Frank Schima), julienzoubian@…, nicos_pavlov@…, bgrupe27, domiman@…, macports@…, nerdling (Jeremy Lavergne), charmedguy18@… |
Port: | strigi |
Description (last modified by tobypeterson)
Looks like a 64-bit issue to me.
Attachments (7)
Change History (30)
Changed 15 years ago by andrea@…
Attachment: | strigi_build.txt added |
---|
comment:1 Changed 15 years ago by mf2k (Frank Schima)
Owner: | changed from macports-tickets@… to clubjuggler@… |
---|
comment:2 Changed 15 years ago by tobypeterson
Description: | modified (diff) |
---|---|
Keywords: | LP64 added; snowleopard removed |
Summary: | strigi fails to build on OS 10.6 → strigi fails to build 64-bit |
Version: | 1.8.99 |
comment:7 follow-up: 8 Changed 15 years ago by mkr@…
The problem is in strigi itself. I tried to compile it by hand and found that some variables have wrong types.
You have to make two changes, to compile it successfully:
src/daemon/dbus/dbuscpp/dbusmessagereader.cpp: Line 66
change: DBusMessageReader::operator>>(int64_t& s) {
into: DBusMessageReader::operator>>(dbus_int64_t& s) {
build/src/daemon/dbus/dbusclientinterface.cpp: Line 148
change: uint64_t mtime;
into: dbus_uint64_t mtime;
The second file is generated during compilation.
So the workaround is:
Do "sudo port install strigi", wait until it breaks and change the first file:
cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_strigi/work/strigi-0.6.3/
edit src/daemon/dbus/dbuscpp/dbusmessagereader.cpp
Then "sudo port install strigi" again, wait until it breaks again and change the second file:
edit src/daemon/dbus/dbusclientinterface.cpp
(in MacPorts it's built in the src directory, so no "build/" in front of the path)
Then "sudo port install strigi" again, and it should compile successfully.
I'll see if I can communicate this directly to the strigi people...
comment:8 Changed 15 years ago by ruud@…
Replying to mkr@…:
The problem is in strigi itself. I tried to compile it by hand and found that some variables have wrong types.
You have to make two changes, to compile it successfully:
Fixes it for me, thanks.
comment:11 Changed 15 years ago by mf2k (Frank Schima)
I'm not quite able to make the 2nd patch work in the Portfile. I'm going to attach my attempt so far.
Changed 15 years ago by mf2k (Frank Schima)
Attachment: | Portfile-strigi added |
---|
Modified strigi portfile
Changed 15 years ago by mf2k (Frank Schima)
Attachment: | patch-dbusclientinterface.cpp.diff added |
---|
This is the 2nd patch based on a generated file that I cannot get to work with the portfile.
Changed 15 years ago by mf2k (Frank Schima)
Attachment: | patch-dbusmessagereader.cpp.diff added |
---|
This is the 1st patch and it works fine.
Changed 15 years ago by mf2k (Frank Schima)
Attachment: | patch-MacroCheckGccVisibility.cmake.diff added |
---|
Re-made the existing portfile patch to use p0.
Changed 15 years ago by payam.minoofar@…
Attachment: | strigi.txt added |
---|
comment:12 Changed 15 years ago by payam.minoofar@…
As of today, I can't get strigi to build with any of the above prescriptions. I have attached the output that port reported as strigi.txt
comment:13 Changed 15 years ago by florian.feldhaus@…
Same for me. The two fixes solved the first problems, but Strigi didn't finnish building. I figured out, that it was building i386 and x86_64 binaries, even I didn't have the universal option set. The following worked for me: sudo port clean strigi sudo port install strigi -universal
You will run into the problems mentioned above. If the patches don't work, apply the changes by hand!
comment:17 Changed 15 years ago by macports@…
Workaround worked for me (using the mentioned patches and -universal option)
comment:18 Changed 15 years ago by zuxez@…
Hi. I came up with this patch to fix the issue for Gentoo/Prefix. The problem is that strigi seems to have some internal data type problems, which in conjunction with the auto-generation of the files just heads for serious trouble. Anyway, you can't make the types use dbus_-tyles because the interface src/daemon/clientinterface.h is used for makecode.pl which contains no dbus-stuff at all and defines "virtual void indexFile(const std::string& path, uint64_t mtime, const std::vector<char>& content)" which imho is the "uint64_t mtime" that fails in the generated src/daemon/dbus/dbusclientinterface.cpp. So the nearest workaround is to switch from the dbus_-types in dbusmessagereader.cpp to the standard defines. This patch allows for fully automatic building (at least with Gentoo/Prefix). Maybe it's to some help for you :-)
Kind regards,
Heiko
Changed 15 years ago by jeremy.laine@…
Attachment: | fix-dbus-types.patch added |
---|
Update Portfile to fix build on x86_64
comment:23 Changed 15 years ago by nerdling (Jeremy Lavergne)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Committed in r58800.
port -dv install strigi