Created attachment 162268 [details] Diff patch between current port version and upgrade to v2.3.2_2 (i) Port revision update to include patches in aid of clearing clang compiler warnings. (ii) Added experimental port option "ACTIVESYNC" to build with MS Exchange ActiveSync support. Later to move to a slave port if possible. Poudriere test passes on 10.1_amd64. Has been runtime tested in production for several days with no issues so far.
Created attachment 162272 [details] Diff patch between current port version and upgrade to v2.3.2_2 Removed "CFLAGS+=" from Makefile.
Thanks Euan, A couple of review notes: * OPTIONS_DEFAULT left empty? (might be OK for a slave port) * +.if ${PORT_OPTIONS:MACTIVESYNC} LIB_DEPENDS should be converted to options helpers: ACTIVESYNC_LIB_DEPENDS= * RUN_DEPENDS:= ${BUILD_DEPENDS} use is discouraged now. See: http://www2.au.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/book.html#makefile-depend - Section 5.8.2. RUN_DEPENDS I leave these notes here either for you to update the attachment on, or Kurt to take care of.
(In reply to Kubilay Kocak from comment #2) I think you're right. BUILD_DEPENDS should only be for ports that can be removed after building and are not needed for runtime. I will amend this and try to convert to options helpers.
(In reply to Kubilay Kocak from comment #2) Hmmm, I think I know why it was like this now. Because if I add the sope dependency to LIB_DEPENDS, make complains with the following error: " pattern /usr/local/GNUstep/Local/Library/Libraries/libDOM.so in LIB_DEPENDS is not valid " So I added it back to both BUILD_DEPENDS and RUN_DEPENDS, but without the substitution. Is that better or worse?
(In reply to Euan Thoms from comment #4) Of course, doh! It's because the full path is used. So it will only worlk in LIB_DEPENDS if sope adds /usr/local/GNUstep/Local/Library/Libraries as a library path environment variable. I haven't tested for that yet.
(In reply to Euan Thoms from comment #5) Good, the sope lib is already found by make, so I can simply add it to LIB_DEPENDS without the full path substitution. Along with the "ACTIVESYNC_LIB_DEPENDS=" the port is looking noticable neater. Thanks Kubilay for the tips. portlint -AC still passes. I'll submit a new patch shortly.
Created attachment 162277 [details] Diff patch between current port version and upgrade to v2.3.2_2 Made changes as discussed in comments #2 to #6.
Looks much better, though I'm still not sure about an empty OPTIONS_DEFAULT= and whats its for.
OPTIONS_DEFAULT would specify which (if any) port options should be selected / enabled by default. As for now, the only option is EAS (Exchange ActiveSync) which should remain disabled by default. I don't know if not having OPTIONS_DEFAULT behaves the same as OPTIONS_DEFAULT=, but if it does, it sure could be removed.
(In reply to Kubilay Kocak from comment #8) Oh yeah, forgot about that. I just assumed it was always needed, even if empty. I'll remove it, test and update the patch once more.
Created attachment 162278 [details] Diff patch between current port version and upgrade to v2.3.2_2 Made changes as discussed in comments #8 to #10.
It looks as if the ActiveSync option only adds a tiny number of dependencies (three small libraries, one of which is likely to be installed anyway). It might be worth defaulting this to on, so that the package builds get it, and just let people building their own turn it off (eventually it should be moved to a separate port for just the plugin).
(In reply to David Chisnall from comment #12) I agree with your logic completely, and I did ponder about this. The thing is, it's marked experimental because ActiveSync is new and I've heard it can be a PITA to get working right. But perhaps I'm confusing it with OpenChange. I want to encourage feedback since I don't use it myself. I think if they have to actively engage in the port option, and report back with good results, and suggest making it default. That will give me more confidence. Kubilay, Kurt, Martin, your thoughts? Cast your votes if you wish. Certainly I will make a slave port, if possible. When I get some time and I'm confident the ActiveSync plugin works OK on FreeBSD.
Just my 2 cents: Having it disabled by default is closest to the situation we would have if it was its own port, e.g. an additional step is required if someone wants to use this functionality. Therefore I'd stick to disable it by default. Having said that, I also think making this a separate port would make the most sense. I'll try to help with that, Euan.
(In reply to Martin Waschbüsch from comment #14) > Just my 2 cents: > > Having it disabled by default is closest to the situation we would have if > it was its own port, e.g. an additional step is required if someone wants to > use this functionality. Therefore I'd stick to disable it by default. > > Having said that, I also think making this a separate port would make the > most sense. I'll try to help with that, Euan. Having it disabled by default also means people using only binary packages will never get it. Whereas having it on by default means that they will, and people who really do not want it can rebuild without it.
OK, I've decided to just leave the port as it is for now. Let's get it committed. At least the ActiveSync support is easily available. I'm busy with sending the patches upstream at the moment, it's a fairly big job. Plus all these alterations gives Kurt extra work to test/approve/commit. Once I'm done with sending the patches upstream I'll start making the slave port, which is the ideal solution.
testing@work
A commit references this bug: Author: pi Date: Sun Oct 25 06:49:17 UTC 2015 New revision: 400146 URL: https://svnweb.freebsd.org/changeset/ports/400146 Log: www/sogo: fix lots of compiler warnings PR: 203910 Submitted by: Euan Thoms <euan@potensol.com> (maintainer) Changes: head/www/sogo/Makefile head/www/sogo/files/patch-ActiveSync_GNUmakefile head/www/sogo/files/patch-Main_SOGo+DAV.m head/www/sogo/files/patch-SOPE_GDLContentStore_GCSChannelManager.m head/www/sogo/files/patch-SOPE_NGCards_CardElement.m head/www/sogo/files/patch-SOPE_NGCards_CardGroup.m head/www/sogo/files/patch-SOPE_NGCards_NSCalendarDate+NGCards.m head/www/sogo/files/patch-SOPE_NGCards_iCalMonthlyRecurrenceCalculator.m head/www/sogo/files/patch-SOPE_NGCards_iCalPerson.m head/www/sogo/files/patch-SOPE_NGCards_iCalRecurrenceRule.m head/www/sogo/files/patch-SOPE_NGCards_versitCardsSaxDriver_VSSaxDriver.m head/www/sogo/files/patch-SoObjects_Appointments_MSExchangeFreeBusy.m head/www/sogo/files/patch-SoObjects_Appointments_SOGoAppointmentFolder.m head/www/sogo/files/patch-SoObjects_Appointments_SOGoAppointmentObject.m head/www/sogo/files/patch-SoObjects_Appointments_SOGoCalendarComponent.m head/www/sogo/files/patch-SoObjects_Appointments_iCalAlarm+SOGo.m head/www/sogo/files/patch-SoObjects_Appointments_iCalEvent+SOGo.h head/www/sogo/files/patch-SoObjects_Appointments_iCalEvent+SOGo.m head/www/sogo/files/patch-SoObjects_Contacts_NGVCard+SOGo.m head/www/sogo/files/patch-SoObjects_Contacts_SOGoContactEntryPhoto.m head/www/sogo/files/patch-SoObjects_Contacts_SOGoContactFolders.m head/www/sogo/files/patch-SoObjects_Contacts_SOGoContactGCSEntry.m head/www/sogo/files/patch-SoObjects_Contacts_SOGoContactGCSList.m head/www/sogo/files/patch-SoObjects_Contacts_SOGoContactSourceFolder.m head/www/sogo/files/patch-SoObjects_Mailer_NSDictionary+Mail.m head/www/sogo/files/patch-SoObjects_Mailer_NSString+Mail.m head/www/sogo/files/patch-SoObjects_Mailer_SOGoMailAccounts.m head/www/sogo/files/patch-SoObjects_Mailer_SOGoMailBaseObject.m head/www/sogo/files/patch-SoObjects_Mailer_SOGoMailBodyPart.m head/www/sogo/files/patch-SoObjects_Mailer_SOGoMailFolder.m head/www/sogo/files/patch-SoObjects_Mailer_SOGoMailForward.m head/www/sogo/files/patch-SoObjects_Mailer_SOGoMailLabel.m head/www/sogo/files/patch-SoObjects_Mailer_SOGoMailObject.m head/www/sogo/files/patch-SoObjects_SOGo_BSONCodec.m head/www/sogo/files/patch-SoObjects_SOGo_LDAPSource.m head/www/sogo/files/patch-SoObjects_SOGo_NSCalendarDate+SOGo.m head/www/sogo/files/patch-SoObjects_SOGo_NSData+Crypto.m head/www/sogo/files/patch-SoObjects_SOGo_NSDictionary+DAV.m head/www/sogo/files/patch-SoObjects_SOGo_NSString+Utilities.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoCache.h head/www/sogo/files/patch-SoObjects_SOGo_SOGoCacheGCSFolder.h head/www/sogo/files/patch-SoObjects_SOGo_SOGoCacheGCSFolder.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoCacheGCSObject.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoCacheObject.h head/www/sogo/files/patch-SoObjects_SOGo_SOGoContentObject.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoFolder.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoGCSFolder.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoGroup.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoObject.m head/www/sogo/files/patch-SoObjects_SOGo_SOGoParentFolder.h head/www/sogo/files/patch-SoObjects_SOGo_SOGoParentFolder.m head/www/sogo/files/patch-SoObjects_SOGo_SQLSource.m head/www/sogo/files/patch-SoObjects_SOGo_WORequest+SOGo.m head/www/sogo/files/patch-SoObjects_SOGo_instance-framework.make head/www/sogo/files/patch-SoObjects_SOGo_master-framework.make head/www/sogo/files/patch-Tests_Unit_SOGoTest.m head/www/sogo/files/patch-Tests_Unit_TestNGMimeAddressHeaderFieldGenerator.m head/www/sogo/files/patch-Tests_Unit_TestNGMimeMessageGenerator.m head/www/sogo/files/patch-Tests_Unit_TestVersit.m head/www/sogo/files/patch-Tests_Unit_TestiCalRecurrenceCalculator.m head/www/sogo/files/patch-Tests_Unit_TestiCalTimeZonePeriod.m head/www/sogo/files/patch-Tools_SOGoEAlarmsNotifier.m head/www/sogo/files/patch-Tools_SOGoSockDOperation.m head/www/sogo/files/patch-Tools_SOGoToolCreateFolder.m head/www/sogo/files/patch-Tools_SOGoToolExpireUserSessions.m head/www/sogo/files/patch-Tools_SOGoToolManageEAS.m head/www/sogo/files/patch-Tools_SOGoToolRemoveDoubles.m head/www/sogo/files/patch-Tools_SOGoToolRenameUser.m head/www/sogo/files/patch-Tools_SOGoToolRestore.m head/www/sogo/files/patch-Tools_SOGoToolUserPreferences.m head/www/sogo/files/patch-Tools_sogo-tool.m head/www/sogo/files/patch-UI_Common_UIxToolbar.m head/www/sogo/files/patch-UI_Contacts_UIxContactActions.m head/www/sogo/files/patch-UI_Contacts_UIxContactFolderActions.m head/www/sogo/files/patch-UI_Contacts_UIxContactFolderProperties.m head/www/sogo/files/patch-UI_Contacts_UIxContactView.m head/www/sogo/files/patch-UI_MailPartViewers_UIxMailPartHTMLViewer.m head/www/sogo/files/patch-UI_MailPartViewers_UIxMailPartViewer.m head/www/sogo/files/patch-UI_MailerUI_UIxMailFolderActions.m head/www/sogo/files/patch-UI_MailerUI_UIxMailListActions.h head/www/sogo/files/patch-UI_MailerUI_UIxMailMainFrame.m head/www/sogo/files/patch-UI_MainUI_SOGoMicrosoftActiveSyncActions.m head/www/sogo/files/patch-UI_PreferencesUI_UIxPreferences.m head/www/sogo/files/patch-UI_SOGoUI_SOGoAptFormatter.m head/www/sogo/files/patch-UI_Scheduler_UIxCalDateSelector.m head/www/sogo/files/patch-UI_Scheduler_UIxCalDayTable.h head/www/sogo/files/patch-UI_Scheduler_UIxCalDayTable.m head/www/sogo/files/patch-UI_Scheduler_UIxCalDayView.m head/www/sogo/files/patch-UI_Scheduler_UIxCalListingActions.m head/www/sogo/files/patch-UI_Scheduler_UIxCalMonthView.m head/www/sogo/files/patch-UI_Scheduler_UIxCalViewPrint.m head/www/sogo/files/patch-UI_Scheduler_UIxComponentEditor.m head/www/sogo/files/patch-UI_Scheduler_UIxRecurrenceEditor.m head/www/sogo/pkg-plist
Test-builds are all fine. Thanks for the huge patch, it's now committed.