[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

building fwbuilder on obsd3.0 (long)



Hi, all,

Short form: has anyone succeeded in building and running
fwbuilder-1.0.2 on obsd 3.0/3.1 ? I've seen the discussions
on misc@ for fwbuilder, but they don't help...

Long form:

On an obsd3.0/i386, I am unsuccessfully trying to compile fwbuilder
(http://www.fwbuilder.org/).

IMHO (not having much experience with C++, compiler output below),
it is a gtk-- issue: the compiler can't find an operator to compare NULL
with an instance of the Gtk::CTree_Helpers::Row class. I found the
``Row'' class definition in /usr/local/include/gtk--/ctree.h, but was unable
to figure out even a closely-suitable for the purpose operator or method
(despite the comment in fwbuilder-1.0.2/src/gui/ObjectTree.cc, line 532,
where is claimed that there is one).

Compiler output (wrapped for readability, wrapped lines start with two spaces):

ObjectTree.cc: In method `const class traverse_tree_and_find_id & 
traverse_tree_and_find_id::operator ()(Gtk::CTree_Helpers::Row)':
ObjectTree.cc:517: no match for `Gtk::CTree_Helpers::Row & == int'
/usr/include/g++/stl_tree.h:188: candidates are: bool operator ==
  (const _Rb_tree_base_iterator &, const _Rb_tree_base_iterator &)
/opt/fwb/include/fwbuilder/IPAddress.hh:170: bool libfwbuilder::operator ==
  (const libfwbuilder::IPNetwork &, const libfwbuilder::IPNetwork &)
/opt/fwb/include/fwbuilder/IPAddress.hh:135: bool libfwbuilder::operator ==
  (const libfwbuilder::Netmask &, const libfwbuilder::Netmask &)
/opt/fwb/include/fwbuilder/IPAddress.hh:86: bool libfwbuilder::operator ==
  (const libfwbuilder::IPAddress &, const libfwbuilder::IPAddress &)
ObjectTree.cc:524: no match for `Gtk::CTree_Helpers::Row & != int'
/usr/include/g++/stl_tree.h:193: candidates are: bool operator !=
  (const _Rb_tree_base_iterator &, const _Rb_tree_base_iterator &)
gmake[2]: *** [ObjectTree.o] Error 1

The piece of source that causes trouble is (ObjectTree.cc, lines 510-530):

class traverse_tree_and_find_id {
    string row_id;
    Gtk::CTree_Helpers::Row res;
    public:
    traverse_tree_and_find_id(const string &_id):row_id(_id),res() {}
    operator Gtk::CTree_Helpers::Row() const { return res; }
    const traverse_tree_and_find_id& operator()(Gtk::CTree_Helpers::Row r) {
    if (res==NULL) {
        char *c=(char*)(r.get_data());
        if ( c && row_id==c ) {
        res=r; r.expand(); return *this;
        } else {
        res=std::for_each(r.subtree().begin(),r.subtree().end(),
                  traverse_tree_and_find_id(row_id));
        if (res!=NULL) r.expand();
        }
    }

    return *this;
    }
};


Any help/ideas will be greatly appretiated.

Best Regards,
Stoyan Genov



Visit your host, monkey.org