< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate] repro linking problem


Ok, thanks. Got it working with the old build system (after fixing the db 
header include in db_cxx.h).
Please find attached the first ;) patch. On my machine the web interface port 
5080 is already in use :-)

Greeetings
  Nils

On Monday 02 May 2005 18:25, Fischl jason wrote:
> The autotools stuff is not a supported build mechanism. In fact, I
> don't think anybody has got it working with repro at all. Did you try
> using the default build system?
>
> On 5/2/05, Scott Godin <slgodin@xxxxxxxxxxxx> wrote:
> > I'm not a unix builder - but it seems like dum is missing from the link
> > step.
> >
> > -----Original Message-----
> > From: Nils Ohlmeier [mailto:lists@xxxxxxxxxxxx]
> > Sent: Monday, May 02, 2005 9:14 AM
> > To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> > Subject: [reSIProcate] repro linking problem
> >
> > Hi there,
> >
> > I'm trying to compile and run the repro proxy from the SVN main tree
> > today on
> > my up-to-date Gentoo system. After fixing a lot of things by hand, I'm
> > able to compile it, but it fails when trying to link against the
> > resiprocate and dom libs. Any hints what I did wrong are appreciated.
> >
> > Thanks
> >   Nils
> >
> > What I did:
> > - checkout main tree from SVN
> > - changed to autoconf make environment according to README.autoconf
> >   (BTW: autoconf-2.59 and automake-1.9)
> > - removed the test directory from SUBDIRS variable in
> > resiprocate/Makefile.am
> > - ran 'autoreconf-2.59'
> > - 'make' called in the sip dir now builds resiprocate successfully
> >
> > For repro I did this:
> > - fixed the db_cxx.h include in BerkleyDb.cxx to from db4 to db4.2
> > - fixed DUM_ and RESIPROCATE_LIBDIRS in build/Makefile.pkg to point to
> > the .libs directories
> > - changed in build/Makefile.pkg DUM_LIBNAME to resipdum
> >
> > Then finally I can compile but during linking I get the following errors:
> >
> > g++                 -o bin.debug.Linux.i686/repro
> > obj.debug.Linux.i686/repro.o obj.debug.Linux.i686/RouteStore.o
> > obj.debug.Linux.i686/UserStore.o obj.debug.Linux.i686/ConfigStore.o
> > obj.debug.Linux.i686/AclStore.o obj.debug.Linux.i686/Store.o
> > obj.debug.Linux.i686/AbstractDb.o obj.debug.Linux.i686/BerkleyDb.o
> > obj.debug.Linux.i686/CommandLineParser.o obj.debug.Linux.i686/HttpBase.o
> > obj.debug.Linux.i686/HttpConnection.o obj.debug.Linux.i686/WebAdmin.o
> > obj.debug.Linux.i686/WebAdminThread.o obj.debug.Linux.i686/Proxy.o
> > obj.debug.Linux.i686/Registrar.o
> > obj.debug.Linux.i686/ReproServerAuthManager.o
> > obj.debug.Linux.i686/RequestContext.o
> > obj.debug.Linux.i686/ResponseContext.o
> >
> > obj.debug.Linux.i686/RequestProcessor.o
> > obj.debug.Linux.i686/RequestProcessorChain.o
> > obj.debug.Linux.i686/monkeys/DigestAuthenticator.o
> > obj.debug.Linux.i686/monkeys/RouteProcessor.o
> > obj.debug.Linux.i686/monkeys/AmIResponsible.o
> > obj.debug.Linux.i686/monkeys/LocationServer.o
> > obj.debug.Linux.i686/monkeys/ConstantLocationMonkey.o
> > obj.debug.Linux.i686/monkeys/RouteMonkey.o
> > obj.debug.Linux.i686/stateAgents/CertServer.o
> > obj.debug.Linux.i686/stateAgents/CertPublicationHandler.o
> > obj.debug.Linux.i686/stateAgents/CertSubscriptionHandler.o
> > obj.debug.Linux.i686/stateAgents/PrivateKeyPublicationHandler.o
> > obj.debug.Linux.i686/stateAgents/PrivateKeySubscriptionHandler.o
> > -L../build/../resiprocate/dum/.libs  -L../build/../resiprocate/.libs
> > -L/usr/local/ssl/lib  -L../build/../contrib/ares  -lresipdum 
> > -lresiprocate
> >
> > -lssl  -lcrypto  -lares  -ldb_cxx-4.2  -lpthread  -lpopt -lpopt
> > obj.debug.Linux.i686/repro.o(.text+0x15f0): In function `main':
> > /home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:142: undefined
> > reference
> >
> > to `resip::MasterProfile::MasterProfile[in-charge]()'
> > obj.debug.Linux.i686/repro.o(.text+0x1f18):/home/ohlmeini/resiprocate/mai
> >n/s ip/repro/repro.cxx:223:
> > undefined reference to `resip::MasterProfile::clearSupportedMethods()'
> > obj.debug.Linux.i686/repro.o(.text+0x1f3a):/home/ohlmeini/resiprocate/mai
> >n/s ip/repro/repro.cxx:224:
> > undefined reference to
> > `resip::MasterProfile::addSupportedMethod(resip::MethodTypes const&)'
> > obj.debug.Linux.i686/repro.o(.text+0x1f69):/home/ohlmeini/resiprocate/mai
> >n/s ip/repro/repro.cxx:225:
> > undefined reference to
> > `resip::MasterProfile::addSupportedScheme(resip::Data
> >
> > const&)'
> > obj.debug.Linux.i686/repro.o(.text+0x2289):/home/ohlmeini/resiprocate/mai
> >n/s ip/repro/repro.cxx:251:
> > undefined reference to
> > `resip::MessageFilterRule::MessageFilterRule[in-charge]
> > (std::vector<resip::Data, std::allocator<resip::Data> >,
> > resip::MessageFilterRule::HostpartTypes, std::vector<resip::MethodTypes,
> > std::allocator<resip::MethodTypes> >, std::vector<resip::Data,
> > std::allocator<resip::Data> >)'
> > obj.debug.Linux.i686/repro.o(.text+0x25ce):/home/ohlmeini/resiprocate/mai
> >n/s ip/repro/repro.cxx:265:
> > undefined reference to
> > `resip::MessageFilterRule::MessageFilterRule[in-charge]
> > (std::vector<resip::Data, std::allocator<resip::Data> >,
> > resip::MessageFilterRule::HostpartTypes, std::vector<resip::MethodTypes,
> > std::allocator<resip::MethodTypes> >, std::vector<resip::Data,
> > std::allocator<resip::Data> >)'
> > obj.debug.Linux.i686/repro.o(.text+0x28ca):/home/ohlmeini/resiprocate/mai
> >n/s ip/repro/repro.cxx:281:
> > undefined reference to `resip::DumThread::DumThread[in-charge]
> > (resip::DialogUsageManager&)'
> > obj.debug.Linux.i686/repro.o(.gnu.linkonce.t._ZN5resip13MasterProfileD1Ev
> >+0x c):
> > In function `resip::MasterProfile::~MasterProfile [in-charge]()':
> > /home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:142: undefined
> > reference
> >
> > to `vtable for resip::MasterProfile'
> > obj.debug.Linux.i686/repro.o(.gnu.linkonce.t._ZN5resip11UserProfileD2Ev+0
> >xc)
> >
> > In function `resip::UserProfile::~UserProfile [not-in-charge]()':
> > /home/ohlmeini/resiprocate/main/sip/repro/repro.cxx:142: undefined
> > reference
> >
> > to `vtable for resip::UserProfile'
> > obj.debug.Linux.i686/UserStore.o(.text+0x134): In function
> > `repro::UserStore::requestUserAuthInfo(resip::Data const&, resip::Data
> > const&, resip::Data const&, resip::TransactionUser&) const':
> > /home/ohlmeini/resiprocate/main/sip/repro/UserStore.cxx:45: undefined
> > reference to `resip::UserAuthInfo::UserAuthInfo[in-charge](resip::Data
> > const&, resip::Data const&, resip::Data const&, resip::Data const&)'
> > obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x44a): In
> > function
> >
> > `repro::DigestAuthenticator::handleRequest(repro::RequestContext&)':
> > monkeys/DigestAuthenticator.cxx:48: undefined reference to `typeinfo for
> > resip::UserAuthInfo'
> > obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x507):monkeys/D
> >ige stAuthenticator.cxx:66:
> > undefined reference to `resip::UserAuthInfo::getA1() const'
> > obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x51b):monkeys/D
> >ige stAuthenticator.cxx:67:
> > undefined reference to `resip::UserAuthInfo::getRealm() const'
> > obj.debug.Linux.i686/monkeys/DigestAuthenticator.o(.text+0x52f):monkeys/D
> >ige stAuthenticator.cxx:68:
> > undefined reference to `resip::UserAuthInfo::getUser() const'
> > ../build/../resiprocate/.libs/libresiprocate.so: undefined reference to
> > `resip::MessageFilterRule::matches(resip::SipMessage const&) const'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::NetworkAssociation::~NetworkAssociation [in-charge]()'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::KeepAliveManager::process(resip::KeepAliveTimeout&)'
> > ../build/../resiprocate/.libs/libresiprocate.so: undefined reference to
> > `resip::TransactionUserMessage::TransactionUserMessage[in-charge]
> > (resip::TransactionUserMessage::Type, resip::TransactionUser*)'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::DestroyUsage::DestroyUsage[in-charge]
> > (resip::Handle<resip::BaseUsage>)'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::operator<<(std::basic_ostream<char, std::char_traits<char> >&,
> > resip::UserProfile const&)'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::DestroyUsage::DestroyUsage[in-charge](resip::Dialog*)'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `typeinfo for resip::TransactionUserMessage'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `typeinfo for resip::KeepAliveTimeout'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `typeinfo for resip::DestroyUsage'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::NetworkAssociation::update(resip::SipMessage const&, int)'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::DestroyUsage::destroy()'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::operator<<(std::basic_ostream<char, std::char_traits<char> >&,
> > resip::UserAuthInfo const&)'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::UserProfile::DigestCredential::DigestCredential[in-charge]()'
> > ../build/../resiprocate/dum/.libs/libresipdum.so: undefined reference to
> > `resip::DestroyUsage::DestroyUsage[in-charge](resip::DialogSet*)'
> > collect2: ld returned 1 exit status
> > make: *** [bin.debug.Linux.i686/repro] Error 1
> > _______________________________________________
> > resiprocate-devel mailing list
> > resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> > https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
> > _______________________________________________
> > resiprocate-devel mailing list
> > resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> > https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
Index: repro.cxx
===================================================================
--- repro.cxx	(revision 4496)
+++ repro.cxx	(working copy)
@@ -214,9 +214,9 @@
    addDomains(proxy, args);
    
 #ifdef USE_SSL
-   WebAdmin admin( store, regData, &security, args.mNoWebChallenge );
+   WebAdmin admin( store, regData, &security, args.mNoWebChallenge, args.mHttpPort );
 #else
-   WebAdmin admin( store, regData, NULL, args.mNoWebChallenge );
+   WebAdmin admin( store, regData, NULL, args.mNoWebChallenge, args.mHttpPort );
 #endif
    WebAdminThread adminThread(admin);
 
Index: CommandLineParser.cxx
===================================================================
--- CommandLineParser.cxx	(revision 4496)
+++ CommandLineParser.cxx	(working copy)
@@ -22,6 +22,7 @@
    int tcpPort = 5060;
    int tlsPort = 5061;
    int dtlsPort = 0;
+   int httpPort = 5080;
    int disableV4 = false;
    int disableV6 = false;
    char* domains = 0;
@@ -48,6 +49,7 @@
       {"tcp",            0,  POPT_ARG_INT,    &tcpPort, 0, "add TCP transport on specified port", "5060"},
       {"tls",            0,  POPT_ARG_INT,    &tlsPort, 0, "add TLS transport on specified port", "5061"},
       {"dtls",           0,  POPT_ARG_INT,    &dtlsPort, 0, "add DTLS transport on specified port", "5061"},
+      {"http",           0,  POPT_ARG_INT,    &httpPort, 0, "add HTTP/web frontend on specified port", "5080"},
       {"disable-v6",     0,  POPT_ARG_NONE,   &disableV6, 0, "disable IPV6", 0},
       {"disable-v4",     0,  POPT_ARG_NONE,   &disableV4, 0, "disable IPV4", 0},
       {"disable-auth",   0,  POPT_ARG_NONE,   &noChallenge, 0, "disable DIGEST challenges", 0},
@@ -80,6 +82,7 @@
    mTcpPort = tcpPort;
    mTlsPort = tlsPort;
    mDtlsPort = dtlsPort;
+   mHttpPort = httpPort;
    mUseV4 = !disableV4;
    mUseV6 = !disableV6;
    mDomains = toUriVector(domains, "domains"); 
Index: CommandLineParser.hxx
===================================================================
--- CommandLineParser.hxx	(revision 4496)
+++ CommandLineParser.hxx	(working copy)
@@ -22,6 +22,7 @@
       int mTcpPort;
       int mTlsPort;
       int mDtlsPort;
+      int mHttpPort;
       bool mUseV4;
       bool mUseV6;
       std::vector<Uri> mDomains;