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;