https://buildd.debian.org/status/package.php?p=ns2&suite=sid 
<https://buildd.debian.org/status/package.php?p=ns2&suite=sid>

The package fails to configure because of missing otcl:
Well it's not exactly "missing", the package is in the archive
and it was installed for the build, so the question was why
isn't the configure script finding it.
The cause is multiarchification of the otcl packaging. Lukilly
it's pretty easy to workaround from debian/rules.

Not so lukilly after doing so I get link failures :( and I can't figure out the cause.

g++ -Wl,-export-dynamic -o ns tcp/linux/tcp_naivereno.o tcp/linux/src/tcp_cong.o tcp/linux/src/tcp_highspeed.o tcp/linux/src/tcp_bic.o tcp/linux/src/tcp_htcp.o tcp/linux/src/tcp_scalable.o tcp/linux/src/tcp_cubic.o tcp/linux/src/tcp_westwood.o tcp/linux/src/tcp_vegas.o tcp/linux/src/tcp_hybla.o tcp/linux/src/tcp_illinois.o tcp/linux/src/tcp_yeah.o tcp/linux/src/tcp_veno.o tcp/linux/src/tcp_compound.o tcp/linux/src/tcp_lp.o tcp/linux/ns-linux-c.o tcp/linux/ns-linux-param.o tools/random.o tools/rng.o tools/ranvar.o common/misc.o common/timer-handler.o common/scheduler.o common/object.o common/packet.o common/ip.o routing/route.o common/connector.o common/ttl.o trace/trace.o trace/trace-ip.o classifier/classifier.o classifier/classifier-addr.o classifier/classifier-hash.o classifier/classifier-virtual.o classifier/classifier-mcast.o classifier/classifier-bst.o classifier/classifier-mpath.o mcast/replicator.o classifier/classifier-mac.o classifier/classifier-qs.o classifier/classifier-port.o src_rtg/classifier-sr.o src_rtg/sragent.o src_rtg/hdr_src.o adc/ump.o qs/qsagent.o qs/hdr_qs.o apps/app.o apps/telnet.o tcp/tcplib-telnet.o tools/trafgen.o trace/traffictrace.o tools/pareto.o tools/expoo.o tools/cbr_traffic.o adc/tbf.o adc/resv.o adc/sa.o tcp/saack.o tools/measuremod.o adc/estimator.o adc/adc.o adc/ms-adc.o adc/timewindow-est.o adc/acto-adc.o adc/pointsample-est.o adc/salink.o adc/actp-adc.o adc/hb-adc.o adc/expavg-est.o adc/param-adc.o adc/null-estimator.o adc/adaptive-receiver.o apps/vatrcvr.o adc/consrcvr.o common/agent.o common/message.o apps/udp.o common/session-rtp.o apps/rtp.o tcp/rtcp.o common/ivs.o common/messpass.o common/tp.o common/tpm.o apps/worm.o tcp/tcp.o tcp/tcp-sink.o tcp/tcp-reno.o tcp/tcp-newreno.o tcp/tcp-vegas.o tcp/tcp-rbp.o tcp/tcp-full.o tcp/rq.o baytcp/tcp-full-bay.o baytcp/ftpc.o baytcp/ftps.o tcp/scoreboard.o tcp/scoreboard-rq.o tcp/tcp-sack1.o tcp/tcp-fack.o tcp/scoreboard1.o tcp/tcp-linux.o tcp/linux/ns-linux-util.o tcp/tcp-asym.o tcp/tcp-asym-sink.o tcp/tcp-fs.o tcp/tcp-asym-fs.o tcp/tcp-int.o tcp/chost.o tcp/tcp-session.o tcp/nilist.o sctp/sctp.o apps/sctp_app1.o sctp/sctp-timestamp.o sctp/sctp-hbAfterRto.o sctp/sctp-multipleFastRtx.o sctp/sctp-mfrHbAfterRto.o sctp/sctp-mfrTimestamp.o sctp/sctp-cmt.o sctp/sctpDebug.o dccp/dccp_sb.o dccp/dccp_opt.o dccp/dccp_ackv.o dccp/dccp_packets.o dccp/dccp.o dccp/dccp_tcplike.o dccp/dccp_tfrc.o tools/integrator.o tools/queue-monitor.o tools/flowmon.o tools/loss-monitor.o queue/queue.o queue/drop-tail.o adc/simple-intserv-sched.o queue/red.o queue/semantic-packetqueue.o queue/semantic-red.o tcp/ack-recons.o queue/sfq.o queue/fq.o queue/drr.o queue/srr.o queue/cbq.o queue/jobs.o queue/marker.o queue/demarker.o link/hackloss.o queue/errmodel.o queue/fec.o link/delay.o tcp/snoop.o gaf/gaf.o link/dynalink.o routing/rtProtoDV.o common/net-interface.o mcast/ctrMcast.o mcast/mcast_ctrl.o mcast/srm.o common/sessionhelper.o queue/delaymodel.o mcast/srm-ssm.o mcast/srm-topo.o routing/alloc-address.o routing/address.o lib/int.Vec.o lib/int.RVec.o lib/dmalloc_support.o webcache/http.o webcache/tcp-simple.o webcache/pagepool.o webcache/inval-agent.o webcache/tcpapp.o webcache/http-aux.o webcache/mcache.o webcache/webtraf.o webcache/webserver.o webcache/logweb.o empweb/empweb.o empweb/empftp.o realaudio/realaudio.o mac/lanRouter.o classifier/filter.o common/pkt-counter.o common/Decapsulator.o common/Encapsulator.o common/encap.o mac/channel.o mac/mac.o mac/ll.o mac/mac-802_11.o mac/mac-802_11Ext.o mac/mac-802_3.o mac/mac-tdma.o mac/smac.o mobile/mip.o mobile/mip-reg.o mobile/gridkeeper.o mobile/propagation.o mobile/tworayground.o mobile/nakagami.o mobile/antenna.o mobile/omni-antenna.o mobile/shadowing.o mobile/shadowing-vis.o mobile/dumb-agent.o common/bi-connector.o common/node.o common/mobilenode.o mac/arp.o mobile/god.o mobile/dem.o mobile/topography.o mobile/modulation.o queue/priqueue.o queue/dsr-priqueue.o mac/phy.o mac/wired-phy.o mac/wireless-phy.o mac/wireless-phyExt.o mac/mac-timers.o trace/cmu-trace.o mac/varp.o mac/mac-simple.o satellite/sat-hdlc.o dsdv/dsdv.o dsdv/rtable.o queue/rtqueue.o routing/rttable.o imep/imep.o imep/dest_queue.o imep/imep_api.o imep/imep_rt.o imep/rxmit_queue.o imep/imep_timers.o imep/imep_util.o imep/imep_io.o tora/tora.o tora/tora_api.o tora/tora_dest.o tora/tora_io.o tora/tora_logs.o tora/tora_neighbor.o dsr/dsragent.o dsr/hdr_sr.o dsr/mobicache.o dsr/path.o dsr/requesttable.o dsr/routecache.o dsr/add_sr.o dsr/dsr_proto.o dsr/flowstruct.o dsr/linkcache.o dsr/simplecache.o dsr/sr_forwarder.o aodv/aodv_logs.o aodv/aodv.o aodv/aodv_rtable.o aodv/aodv_rqueue.o aomdv/aomdv_logs.o aomdv/aomdv.o aomdv/aomdv_rtable.o aomdv/aomdv_rqueue.o puma/puma.o mdart/mdart_adp.o mdart/mdart_dht.o mdart/mdart_ndp.o mdart/mdart_neighbor.o mdart/mdart_queue.o mdart/mdart_table.o mdart/mdart.o common/ns-process.o satellite/satgeometry.o satellite/sathandoff.o satellite/satlink.o satellite/satnode.o satellite/satposition.o satellite/satroute.o satellite/sattrace.o rap/raplist.o rap/rap.o rap/media-app.o rap/utilities.o common/fsm.o tcp/tcp-abs.o diffusion/diffusion.o diffusion/diff_rate.o diffusion/diff_prob.o diffusion/diff_sink.o diffusion/flooding.o diffusion/omni_mcast.o diffusion/hash_table.o diffusion/routing_table.o diffusion/iflist.o tcp/tfrc.o tcp/tfrc-sink.o mobile/energy-model.o apps/ping.o tcp/tcp-rfc793edu.o queue/rio.o queue/semantic-rio.o tcp/tcp-sack-rh.o tcp/scoreboard-rh.o plm/loss-monitor-plm.o plm/cbr-traffic-PP.o linkstate/hdr-ls.o mpls/classifier-addr-mpls.o mpls/ldp.o mpls/mpls-module.o routing/rtmodule.o classifier/classifier-hier.o routing/addr-params.o nix/hdr_nv.o nix/classifier-nix.o nix/nixnode.o routealgo/rnode.o routealgo/bfs.o routealgo/rbitmap.o routealgo/rlookup.o routealgo/routealgo.o nix/nixvec.o nix/nixroute.o diffserv/dsred.o diffserv/dsredq.o diffserv/dsEdge.o diffserv/dsCore.o diffserv/dsPolicy.o diffserv/ew.o diffserv/dewp.o queue/red-pd.o queue/pi.o queue/vq.o queue/rem.o queue/gk.o pushback/rate-limit.o pushback/rate-limit-strategy.o pushback/ident-tree.o pushback/agg-spec.o pushback/logging-data-struct.o pushback/rate-estimator.o pushback/pushback-queue.o pushback/pushback.o common/parentnode.o trace/basetrace.o common/simulator.o asim/asim.o common/scheduler-map.o common/splay-scheduler.o linkstate/ls.o linkstate/rtProtoLS.o pgm/classifier-pgm.o pgm/pgm-agent.o pgm/pgm-sender.o pgm/pgm-receiver.o mcast/rcvbuf.o mcast/classifier-lms.o mcast/lms-agent.o mcast/lms-receiver.o mcast/lms-sender.o queue/delayer.o xcp/xcpq.o xcp/xcp.o xcp/xcp-end-sys.o wpan/p802_15_4csmaca.o wpan/p802_15_4fail.o wpan/p802_15_4hlist.o wpan/p802_15_4mac.o wpan/p802_15_4nam.o wpan/p802_15_4phy.o wpan/p802_15_4sscs.o wpan/p802_15_4timer.o wpan/p802_15_4trace.o wpan/p802_15_4transac.o apps/pbc.o diffusion3/lib/nr/nr.o diffusion3/lib/dr.o diffusion3/filters/diffusion/one_phase_pull.o diffusion3/filters/diffusion/two_phase_pull.o diffusion3/lib/diffapp.o diffusion3/ns/diffagent.o diffusion3/ns/diffrtg.o diffusion3/ns/difftimer.o diffusion3/filter_core/filter_core.o diffusion3/filter_core/iolog.o diffusion3/filter_core/iostats.o diffusion3/lib/main/attrs.o diffusion3/lib/main/events.o diffusion3/lib/main/iodev.o diffusion3/lib/main/iohook.o diffusion3/lib/main/timers.o diffusion3/lib/main/message.o diffusion3/lib/main/tools.o diffusion3/apps/gear_examples/gear_common.o diffusion3/apps/gear_examples/gear_receiver.o diffusion3/apps/gear_examples/gear_sender.o diffusion3/apps/rmst_examples/rmst_sink.o diffusion3/apps/rmst_examples/rmst_source.o diffusion3/apps/ping/1pp_ping_sender.o diffusion3/apps/ping/1pp_ping_receiver.o diffusion3/apps/ping/2pp_ping_sender.o diffusion3/apps/ping/2pp_ping_receiver.o diffusion3/apps/ping/ping_common.o diffusion3/apps/ping/push_receiver.o diffusion3/apps/ping/push_sender.o diffusion3/filters/gear/gear_attr.o diffusion3/filters/gear/gear.o diffusion3/filters/gear/gear_tools.o diffusion3/filters/misc/log.o diffusion3/filters/misc/srcrt.o diffusion3/filters/misc/tag.o diffusion3/filters/rmst/rmst.o diffusion3/filters/rmst/rmst_filter.o delaybox/delaybox.o packmime/packmime_HTTP.o packmime/packmime_HTTP_rng.o packmime/packmime_OL.o packmime/packmime_OL_ranvar.o packmime/packmime_ranvar.o tmix/tmix.o tmix/tmixAgent.o tmix/tmix_delaybox.o gen/version.o gen/ns_tcl.o gen/ptypes.o common/win32.o common/tclAppInit.o common/main-monolithic.o -L/usr/lib/x86_64-linux-gnu -ltclcl -L/usr/lib/x86_64-linux-gnu -lotcl -L/usr/lib -ltk8.5 -L/usr/lib -ltcl8.5 -L/usr/lib/x86_64-linux-gnu -lXext -lX11 -lnsl -lpcap -ldl -lm -lm tools/queue-monitor.o: In function `QueueMonitor::QueueMonitor()':
queue-monitor.cc:(.text._ZN12QueueMonitorC2Ev[_ZN12QueueMonitorC5Ev]+0x202): 
undefined reference to `TclObject::bind(char const*, long*)'
queue-monitor.cc:(.text._ZN12QueueMonitorC2Ev[_ZN12QueueMonitorC5Ev]+0x21b): 
undefined reference to `TclObject::bind(char const*, long*)'
queue-monitor.cc:(.text._ZN12QueueMonitorC2Ev[_ZN12QueueMonitorC5Ev]+0x234): 
undefined reference to `TclObject::bind(char const*, long*)'
queue-monitor.cc:(.text._ZN12QueueMonitorC2Ev[_ZN12QueueMonitorC5Ev]+0x24d): 
undefined reference to `TclObject::bind(char const*, long*)'
packmime/packmime_OL.o: In function `PackMimeOpenLoop::PackMimeOpenLoop()':
packmime_OL.cc:(.text+0x85): undefined reference to `TclObject::bind(char 
const*, long*)'
collect2: ld returned 1 exit status
make[1]: *** [ns] Error 1
make[1]: Leaving directory `/ns2-2.35~rc10+dfsg'
dh_auto_build: make -j1 returned exit code 2
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
debian:/ns2-2.35~rc10+dfsg#

I'm not a tcl expert but this looks like a tclcl issue to me. The
versions of tclcl installed are given below

debian:/# dpkg -l *tclcl*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
un  libtclcl-dev   <none>         (no description available)
ii  libtclcl1      1.20-6         shared library of TclCL
ii  libtclcl1-dev  1.20-6         development files of TclCL
ii  tclcl          1.20-6         tcl2c++ and otcldoc program from tclcl
ii  tclcl-dev      1.20-6         transitional dummy package to libtclcl-dev
debian:/#
I would cc the maintainers of tclcl but after looking closer it seems they are
the same as the maintainers of ns2 anyway.

P.S. I've attatched the patch for the configure script issue.



diff -ur ns2-2.35~rc10+dfsg/debian/control ns2-2.35~rc10+dfsg.new/debian/control
--- ns2-2.35~rc10+dfsg/debian/control	2011-10-29 14:13:27.000000000 +0000
+++ ns2-2.35~rc10+dfsg.new/debian/control	2012-01-07 02:16:04.000000000 +0000
@@ -7,6 +7,7 @@
 Build-Depends: debhelper (>= 7.0.50~), quilt (>= 0.46-7~), autotools-dev, 
 		tcl-dev, tk-dev, libxext-dev, libxt-dev, xgraph, libpcap0.8-dev,
 		libotcl1-dev, tclcl, tclcl-dev (>=1.20~RC3-3), perl (>=5.003)
+		dpkg-dev (>= 1.16.0)
 Standards-Version: 3.9.2
 Vcs-git: git://git.debian.org/git/pkg-netsim/ns2.git
 Vcs-Browser: http://git.debian.org/?p=pkg-netsim/ns2.git
Only in ns2-2.35~rc10+dfsg.new/debian/: ns2-doc.debhelper.log
Only in ns2-2.35~rc10+dfsg.new/debian/: ns2-examples.debhelper.log
Only in ns2-2.35~rc10+dfsg.new/debian/: ns2.debhelper.log
diff -ur ns2-2.35~rc10+dfsg/debian/rules ns2-2.35~rc10+dfsg.new/debian/rules
--- ns2-2.35~rc10+dfsg/debian/rules	2011-10-29 12:02:59.000000000 +0000
+++ ns2-2.35~rc10+dfsg.new/debian/rules	2012-01-07 01:15:58.000000000 +0000
@@ -19,6 +19,7 @@
 	dh_auto_clean -a
 	find . -name "*.o" -exec rm {} \;
 	find . -name ".cvsignore" -exec rm {} \;
+	rm -f config.log
 
 override_dh_auto_install:
 	mkdir -p debian/tmp/usr/bin
@@ -29,3 +30,15 @@
 
 override_dh_installchangelogs:
 	dh_installchangelogs CHANGES.html
+
+
+# set the --x-libraries= setting to the multiarch libdir.
+# this was the easiest way to make the configure script
+# find the multiarched otcl. I couldn't use --with-otcl=
+# because that makes unwanted assumptions about the 
+# relative locations of the library and headers.
+
+DEB_HOST_MULTIARCH ?= dpkg-architecture -qDEB_HOST_MULTIARCH
+
+override_dh_auto_configure:
+	dh_auto_configure -- --x-libraries=/usr/lib/$(DEB_HOST_MULTIARCH)
\ No newline at end of file

Reply via email to