[MacPorts] #35467: openldap @2.4.31 fails to upgrade

MacPorts noreply at macports.org
Wed Aug 1 15:50:19 PDT 2012


#35467: openldap @2.4.31 fails to upgrade
--------------------------------------+-------------------------------------
 Reporter:  nonstop.server@…          |       Owner:  landonf@…           
     Type:  defect                    |      Status:  new                 
 Priority:  Normal                    |   Milestone:                      
Component:  ports                     |     Version:  2.1.2               
 Keywords:                            |        Port:  openldap            
--------------------------------------+-------------------------------------

Comment(by Peter_Dyballa@…):

 On a PPC Mac with just one processor I get as well the same error.

 I think the error is caused from these lines (with line numbers, but TABs
 removed by this input form) in
 /opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_databases_openldap/openldap/work/openldap-2.4.31/libraries/libmdb/mdb.c:

 {{{
   211   #ifndef _WIN32
   212   /**     A flag for opening a file and requesting synchronous data
 writes.
   213    *      This is only used when writing a meta page. It's not
 strictly needed;
   214    *      we could just do a normal write and then immediately
 perform a flush.
   215    *      But if this flag is available it saves us an extra system
 call.
   216    *
   217    *      @note If O_DSYNC is undefined but exists in /usr/include,
   218    * preferably set some compiler flag to get the definition.
   219    * Otherwise compile with the less efficient -DMDB_DSYNC=O_SYNC.
   220    */
   221   #ifndef MDB_DSYNC
   222   # define MDB_DSYNC      O_DSYNC
   223   #endif
   224   #endif
 }}}

 On my system I did not find a C header file with a valid definition of
 O_DSYNC. In /usr/include/sys/aio.h I found this:

 {{{
   127   /*
   128    * A aio_fsync() options
   129    * that the calling thread is to continue execution while
   130    * the lio_listio() operation is being performed, and no
   131    * notification is given when the operation is complete
   132    */
   133
   134   #ifndef O_SYNC  /* XXX investigate documentation error */
   135   #define O_SYNC                  0x0080  /* queued IO is completed
 as if by fsync() */
   136   #endif
   137   #if 0 /* O_DSYNC - NOT SUPPORTED */
   138   #define O_DSYNC                 0x1             /* queued async IO
 is completed as if by fdatasync() */
   139   #endif
 }}}

 So it seems we need to use -DMDB_DSYNC=O_SYNC…

-- 
Ticket URL: <https://trac.macports.org/ticket/35467#comment:4>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list