[MacPorts] #36984: fetchmail - BUG in libdispatch client - ML 10.8.2

MacPorts noreply at macports.org
Mon Nov 26 22:56:33 PST 2012


#36984: fetchmail - BUG in libdispatch client - ML 10.8.2
------------------------+-------------------
  Reporter:  srothe@…   |      Owner:  pmq@…
      Type:  defect     |     Status:  new
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.1.2
Resolution:             |   Keywords:
      Port:  fetchmail  |
------------------------+-------------------

Comment (by matthias.andree@…):

 Greetings,

 I am the current upstream maintainer of fetchmail, am unaware of MacOS X
 idiosyncrasies beyond the mere fact that it exists, and causes irritation
 with GCD idiosyncrasies and recent MacOS X regressions.

 Having said that, I also know nothing of otool or .dylibs or any of that
 stuff, and I do not care to learn any of that stuff, or obtain MacOS X.
 I have not got the faintest clue as to why a single-threaded application
 needs to deal with threading garbage.  Very irritating.

 Documentation on this GCD requirement (keep file descriptor open, how to
 avoid GCD altogether, ...) is scarce and/or hard to find.
 I looked around Apple's developer docs, googled for quite a while without
 coming up with anything substantial, except that a few ported applications
 are also trapped by these GCD file descriptor idiosyncrasies, and
 apparently GCD has recently gotten in the fad of killing applications
 rather than just complaining.

 I find it strange that a UNIX-derived system is now breaking a UNIX
 application that has been around for far more of a decade -- and I am a
 bit alienated by the whole story:

 1. apparently the whole issue only appears if NLS (through
 gettext/libintl) is in use. LC_ALL=C appears to avoid it, according to
 srothe@'s reports.
 2. apparently the operating system forces underdocumented premature
 threading stuff on my single-threaded application
 3. apparently the operating system also imposes open file descriptors on
 my single-threaded application.
 4. Documentation on this GCD requirement (keep file descriptor open, how
 to avoid GCD altogether, ...) is scarce and/or hard to find.

 What I need is:

 1. I need to be able to close all file descriptors in the daemonize()
 functionm before and/or after close()ing all open file descriptors. That
 is how Unix has worked for ages, this is required to let go of controlling
 terminals and thereabouts so we can thoroughly detach from the process
 that launched fetchmail in order to go in the background.

 2. How do I avoid the system forcing additional constraints on my
 application that are in direct violation of relevant standards (details
 below)?

 3. How do I determine when this descriptor needs to remain open, and which
 one it is?

 I am not ready to break my application for other Unices just because one
 OS acts up and imposes restrictions that violate the Single Unix
 Specification aka. IEEE Std 1003.1;
 If MacOS X believes I must not close its special file descriptor, it is
 required, that it - when I call close(SPECIAL_MACOS_FILE_DESC) - sets
 errno = EBADF and returns -1, rather than kill the application.

 Now, how can we resolve the mess without depriving end users of
 established fetchmail functionality (such as NLS or background/daemon
 mode) that they could successfully use in earlier MacOS X 10.n versions?

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


More information about the macports-tickets mailing list