Opened 11 years ago

Closed 11 years ago

#40434 closed defect (fixed)

qpopper @4.0.9_0: Build failure: error: conflicting types for 'getline'

Reported by: maurice@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.2.0
Keywords: haspatch lion mountainlion Cc: ryandesign (Ryan Carsten Schmidt)
Port: qpopper

Description (last modified by ryandesign (Ryan Carsten Schmidt))

--->  Building qpopper
Error: org.macports.build for port qpopper returned: command execution failed
Please see the log file for port qpopper for details:
    /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_mail_qpopper/qpopper/main.log
:info:build popper.c:153:25: error: conflicting types for 'getline'
:info:build     char            *   getline();
:info:build                         ^
:info:build /usr/include/stdio.h:449:9: note: previous declaration is here
:info:build ssize_t getline(char ** __restrict, size_t * __restrict, FILE * __restrict) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
:info:build         ^
:info:build popper.c:428:2: error: conflicting types for 'getline'
:info:build *getline ( char *str, int size, POP *pPOP )
:info:build  ^
:info:build /usr/include/stdio.h:449:9: note: previous declaration is here

Problem appears to be that qpopper redefines getline and clang does not permit this. The fix appears to be cd

Attachments (1)

patch-popper.c (273 bytes) - added by maurice@… 11 years ago.
Patch file to be added to ports/mail/qpopper/files

Download all attachments as: .zip

Change History (5)

Changed 11 years ago by maurice@…

Attachment: patch-popper.c added

Patch file to be added to ports/mail/qpopper/files

comment:1 Changed 11 years ago by maurice@…

Apologies for the worst bug report I have ever submitted ... the problem is that qpopper redefines cline and clang does not allow this. The solution is to add:

@define getline localgetline

in the popper/popper.c file.

A patch file is included to do this patch, but it will also need to be added to the patchfiles line in the Portfile

Version 0, edited 11 years ago by maurice@… (next)

comment:2 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: haspatch lion mountainlion added; qpopper removed
Port: qpopper added
Summary: qpopper @4.0.9_0 - Compile error - Build failureqpopper @4.0.9_0: Build failure: error: conflicting types for 'getline'

comment:3 in reply to:  description ; Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added

Replying to maurice@…:

Problem appears to be that qpopper redefines getline and clang does not permit this.

It's not a compiler issue; it's an OS issue. OS X 10.7 Lion for the first time includes a function called "getline", but qpopper defines its own function of that name, and it happens to be different from the one in Lion, hence the error message. The fix we usually employ in other ports is to rename the project's getline function. In this case, qpopper is outdated, so I'll check if updating to the latest version would help.

comment:4 in reply to:  3 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: newclosed

Replying to ryandesign@…:

qpopper is outdated, so I'll check if updating to the latest version would help.

Yes it does. This specific problem was fixed in qpopper 4.1.b18. Updated the port to 4.1.0 in r111330.

Note: See TracTickets for help on using tickets.