Page MenuHomeFreeBSD

Update GNUstep ports
ClosedPublic

Authored by theraven on Jun 30 2015, 4:13 PM.

Details

Summary

Update the currently-out-of-date GNUstep ports.

Test Plan

Tested on a 10.0amd64 jail with poudriere testport. Needs testing on 9.x - is there a command to test multiple ports at once?

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

theraven retitled this revision from to Update GNUstep ports.Jun 30 2015, 4:13 PM
theraven updated this object.
theraven edited the test plan for this revision. (Show Details)
theraven added a reviewer: bapt.
theraven set the repository for this revision to rP FreeBSD ports repository.
theraven changed the edit policy from "All Users" to "committers (Project)".
theraven updated this revision to Diff 6593.
bapt edited edge metadata.Jun 30 2015, 4:41 PM

put your list of ports in a file
poudriere bulk -t -f thefile -j thejail

I can do an exp-run too, I don't know if you tested all ports depending on gnustep?

I can do an exp-run too, I don't know if you tested all ports depending on gnustep?

I didn't, but since I'm testing on a 32-core machine I can probably do the equivalent overnight and save some project resource.

theraven edited edge metadata.EditedJun 30 2015, 8:48 PM
theraven removed rP FreeBSD ports repository as the repository for this revision.
theraven updated this revision to Diff 6607.

Updated the diff fixing a couple of issues after trying

  1. poudriere bulk -t -j 100amd64-testport -p theraven -f gnustep_ports

Where gnustep_ports contains every port that includes the word gnustep in its Makefile (therefore including anything with USES=gnustep). This now builds correctly. Build log:

https://reviews.freebsd.org/P67

bapt edited edge metadata.Jun 30 2015, 10:47 PM
bapt requested changes to this revision.
bapt added inline comments.
mail/pantomime/Makefile
13 ↗(On Diff #6607)

This was already an issue before -liconv should be ${ICONV_LIB} so USES=iconv deals by itself with iconv on 10+ when it is in libc

18 ↗(On Diff #6607)

Should be USES_OPENSSL=yes (does it only work with portversion of libssl?)

x11/terminal.app/Makefile
21 ↗(On Diff #6607)

Same comment as above concerning -liconv

This revision now requires changes to proceed.Jun 30 2015, 10:47 PM
theraven added inline comments.Jul 1 2015, 7:59 AM
mail/pantomime/Makefile
13 ↗(On Diff #6607)

This breaks it. The problem is that a (transitive) build dependency depends on libiconv. This then means that the libiconv header - which does things like #define iconv_open libiconv_open is installed and picked up during compilation. The linker then complains that libiconv_open is not installed.

18 ↗(On Diff #6607)

It should work with either.

bapt edited edge metadata.Jul 1 2015, 8:05 AM
bapt added a subscriber: tijl.
bapt added a comment.Jul 1 2015, 8:08 AM

Added @tijl for the iconv part

@tijl: I think we have an issue with USES=iconv here, as ICONV_LIB is not defined on FreeBSD 10.1 beside the fact that libiconv is pulled in as a dependency which prevent here from using ICONV_LIB instead of hardcoded "-liconv"

@theraven: note that -liconv like this will fail on poudriere on FreeBSD 10.2 and "recent" head because iconv.mk will not grab a dependency on libiconv

tijl added inline comments.Jul 1 2015, 9:15 AM
mail/pantomime/Makefile
13 ↗(On Diff #6607)

USES=iconv adds -DLIBICONV_PLUG to CPPFLAGS/CFLAGS/CXXFLAGS to omit those defines so check that the port respects these flags. You should be able to replace -liconv with ${ICONV_LIB} then.

theraven added inline comments.Jul 1 2015, 10:06 AM
mail/pantomime/Makefile
13 ↗(On Diff #6607)

Ah, that's the issue - OBJCFLAGS most needs to be set too. For this port and Terminal.app, I can do that, though it would be nice to do in a more generic way.

theraven edited edge metadata.Jul 1 2015, 10:07 AM
theraven set the repository for this revision to rP FreeBSD ports repository.
theraven updated this revision to Diff 6619.

Fix iconv usage by passing CPPFLAGS to make as OBJCFLAGS

bapt added inline comments.Jul 1 2015, 10:10 AM
mail/pantomime/Makefile
13 ↗(On Diff #6619)

OBJCFLAGS are already passed to the env via objc.mk

Just OBJCFLAGS+= CPPFLAGS in your port

theraven added inline comments.Jul 1 2015, 10:16 AM
mail/pantomime/Makefile
13 ↗(On Diff #6619)

This doesn't appear to work (and neither does OBJCFLAGS += ${CPPFLAGS})

tijl added inline comments.Jul 1 2015, 10:18 AM
mail/pantomime/Makefile
13 ↗(On Diff #6619)

Maybe USES=iconv should just add -DLIBICONV_PLUG to OBJCFLAGS too.

theraven edited edge metadata.Jul 1 2015, 1:06 PM
theraven updated this revision to Diff 6622.

Address iconv issues.

USES= iconv now sets the correct flag in OBJCFLAGS
USES= gnustep now propagates OBJCFLAGS into the stupidly named variable that GNUstep Make uses.

bapt edited edge metadata.Jul 1 2015, 1:12 PM
bapt accepted this revision.
This revision is now accepted and ready to land.Jul 1 2015, 1:12 PM
tijl added inline comments.Jul 1 2015, 1:18 PM
Mk/Uses/gnustep.mk
36 ↗(On Diff #6622)

Maybe move FLAGS to the second case below because there's no ${FLAGS} variable. And move LDFLAGS from below here.

mail/pantomime/Makefile
16 ↗(On Diff #6622)

s/USES_OPENSSL/USE_OPENSSL/

This revision was automatically updated to reflect the committed changes.