Ticket #396 (closed defect: fixed)

Opened 13 years ago

Last modified 11 years ago

pybbftp doesn't compile on saturn

Reported by: spascoe Owned by: spascoe
Priority: critical Milestone: PostAlpha_review
Component: ndg2 Version:
Keywords: Delivery Cc:

Description (last modified by spascoe) (diff)

I need to get the DeliveryService code running on machines other than glue.

Also, before the python API is built on I need to cut down on the number of warnings gcc produces when compiling the API. Some are historical from bbftp, some are probably harmless and some are worrying -- they may indicate definition conflicts that will create subtle errors in the future.

It makes sense to do this at the same time as trying to compile the package on a wider veriety of linux systems, including both 32 and 64 bit architectures. Hopefully less warnings will help.

I don't expect to do this before the AHM, but it should be done within a month. Rather than create a new milestone I'm labelling optimistically as it PostAlpha_review.

Change History

comment:1 Changed 13 years ago by spascoe

  • Type changed from task to defect
  • Description modified (diff)
  • Summary changed from Python API compilation warnings and portability review to pybbftp doesn't compile on saturn

comment:2 Changed 13 years ago by spascoe

  • Component changed from T01_Discovery to T05_Delivery

comment:3 Changed 13 years ago by spascoe

  • Priority changed from desirable to critical

comment:4 Changed 13 years ago by spascoe

  • Status changed from new to assigned

comment:5 Changed 13 years ago by spascoe

The number of warnings has been reduced and all test cases now run successfuly on callisto. However, everything fails miserably on saturn and easterly. Callisto's success was achieved by adding lots of #include statements that should have been in the source (implicitly declared functions were often declared wrongly) and using socklen_t when available.

I believe there is a general problem with the portability of the bbftp source. The configure script and in-source #if* statments try to select the correct functions and structures to use LFS (large file support) and 64bit versions where possible but I don't think this approach is entirely compatable with recent versions of glibc.

The use of _LARGEFILE64_SOURCE needs to be changed and maybe start using _FILE_OFFSET_BITS=64 (see the  glibc manual).

comment:6 Changed 13 years ago by spascoe

  • Status changed from assigned to closed
  • Resolution set to fixed

All test cases have pass on glue, saturn, easterly and callisto.

The final bug was mine :-). I didn't realise the msglen parameter to bbftp_private_send/recv didn't include a terminating NULL character.

The number of warnings generated during compilation has been significantly reduced, which should help identify any future bugs.

comment:7 Changed 11 years ago by lawrence

  • Keywords Delivery added
  • Component changed from T05_Delivery to ndg2

moved to component ndg2 (obsolete) as part of ndg2 cleanup

Note: See TracTickets for help on using tickets.