Opened 6 years ago

Closed 6 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 Schmidt)
Port: qpopper

Description (last modified by ryandesign (Ryan 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@… 6 years ago.
Patch file to be added to ports/mail/qpopper/files

Download all attachments as: .zip

Change History (5)

Changed 6 years ago by maurice@…

Attachment: patch-popper.c added

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

comment:1 Changed 6 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

Last edited 6 years ago by ryandesign (Ryan Schmidt) (previous) (diff)

comment:2 Changed 6 years ago by ryandesign (Ryan 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 6 years ago by ryandesign (Ryan 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 6 years ago by ryandesign (Ryan 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.