General discussion on installation and configuration of SOGo

Text archives Help


Re: [SOGo] full SAML Webmail support with Inverse liblasso


Chronological Thread 
  • From: Ben Webber < >
  • To:
  • Subject: Re: [SOGo] full SAML Webmail support with Inverse liblasso
  • Date: Mon, 01 Dec 2014 13:33:16 +0000

Hi Ludovic,

I've been trying to build the latest code using the spec file from the
srpm in the repo I was using so I could test it for you, but it does not
seem to work. It comes up with errors about invalid rpaths. I have
attached the spec file I used if you want to take a look.

I took a look at the spec file for 2.2.10 for el5 and noticed it had:

QA_SKIP_BUILD_ROOT=1
export QA_SKIP_BUILD_ROOT

in the install section, so I tried adding that to the spec file I was
using, but it just came up with file not found errors on the same files
that I was getting the invalid rpath errors on before.

Ben



On 30/11/14 23:11, Ludovic Marcotte wrote:
> Hi Ben,
>
> Good time on the SAML testing. Pretty much all outstanding SAML
> issues/limitations were fixed (see
> http://sogo.nu/bugs/changelog_page.php?version_id=149 for details) last
> week and testing is required.
>
> Are you in a position to try nightly builds? There are none right now
> for CentOS/RHEL 7 but you could probably build your own easily using the
> srpm from the repo you use.
>
> Thanks,
>
> On 30/11/2014 02:38, Ben Webber wrote:
>> Hi,
>>
>> I have just joined this list and am a new user to SOGo. Thanks for a
>> great piece of software! I have also just got it set up with saml sso.
>> On setting this up I encountered a few issues. One was addressed in this
>> post:
>>
>> https://www.mail-archive.com/ /msg19097.html
>>
>> I could not reply to this message as I was not a member of the list when
>> it was sent, so I am sending this message instead. I am running on
>> CentOS 7. I used this repository to get the packages:
>>
>> https://copr.fedoraproject.org/coprs/jaile/sogo/
>>
>> I, like the others who have appeared to have done this, used this page
>> for guidance (it is in French):
>>
>> http://wiki.auf.org/wikiteki/Projet/SOGo/TestsSAML
>>
>> I needed to make the modifications described to lasso, but the patch
>> file that is linked on that page however is for lasso 2.3.6 and I am
>> using lasso 2.4.0 (this was provided by the repository linked above). I
>> am not a developer, but I have gone through the diff file and applied
>> the changes in it by hand to the 2.4.0 codebase for lasso and made a few
>> other changes so that it would compile. This was just guesswork so be
>> warned, but it seems to work so I have attached the diff to this email
>> for anybody else if they want to see it.
>>
>> I also needed to make a change to the dovecot code so that there was
>> enough room in the input buffer for the saml assertion when it is
>> received from crudesaml. This was that I needed change
>> LOGIN_MAX_INBUF_SIZE to 4096 in src/login-common/client-common.h
>>
>> Hope this helps someone else anyway,
>>
>> Ben
>>
>>
>>
>>
>> This message has been scanned for malware by SurfControl plc.
>> www.surfcontrol.com
>
>
#%define sogo_version 2.2.11a
#%define sope_major_version 4
#%define sope_minor_version 9

%ifarch %ix86
%define enable_openchange 0
%endif

%{!?sogo_major_version: %global sogo_major_version %(/bin/echo %{sogo_version} | /bin/cut -f 1 -d .)}

%define sogo_user sogo

Summary:      SOGo
Name:         sogo
Version:      %{sogo_version}
Release:      1%{?dist}
Vendor:       http://www.inverse.ca/
Packager:     Inverse inc. <
 >
License:      GPL
URL:          http://www.inverse.ca/contributions/sogo.html
Group:        Productivity/Groupware
Source0:      SOGo-%{sogo_version}.tar.gz
Source1:      sogod.service
#Patch0:       sogo-default.diff
#Patch1:	      sogo-configure.diff
Prefix:       /usr
AutoReqProv:  off
Requires:     gnustep-base >= 1.23, gnustep-make, sope%{sope_major_version}%{sope_minor_version}-core, httpd, sope%{sope_major_version}%{sope_minor_version}-core, sope%{sope_major_version}%{sope_minor_version}-appserver, sope%{sope_major_version}%{sope_minor_version}-ldap, sope%{sope_major_version}%{sope_minor_version}-cards >= %{sogo_version}, sope%{sope_major_version}%{sope_minor_version}-gdl1-contentstore >= %{sogo_version}, sope%{sope_major_version}%{sope_minor_version}-sbjson, libmemcached, memcached, tmpwatch
BuildRoot:    %{_tmppath}/%{name}-%{version}-%{release}
BuildRequires:  gcc-objc gnustep-base-devel sope%{sope_major_version}%{sope_minor_version}-appserver-devel sope%{sope_major_version}%{sope_minor_version}-core-devel sope%{sope_major_version}%{sope_minor_version}-ldap-devel sope%{sope_major_version}%{sope_minor_version}-mime-devel sope%{sope_major_version}%{sope_minor_version}-xml-devel sope%{sope_major_version}%{sope_minor_version}-gdl1-devel sope%{sope_major_version}%{sope_minor_version}-sbjson-devel libmemcached-devel sed openldap-devel glib2-devel gnutls-devel libgcrypt-devel avahi-devel libxml2-devel libxslt-devel libicu-devel libffi-devel gmp-devel %{?oc_build_depends}


# Required by MS Exchange freebusy lookups
%{?el5:Requires: curl}
%{?el5:BuildRequires: curl-devel}
%{?!el5:Requires: libcurl}
%{?!el5:BuildRequires: libcurl-devel}

# saml is enabled everywhere except on el5 since its glib2 is prehistoric
%define saml2_cfg_opts "--enable-saml2"
%{?el5:%define saml2_cfg_opts ""}
%{?el7:%define saml2_cfg_opts ""}
%{?!el5:Requires: lasso}
%{?!el5:BuildRequires: lasso-devel}

%description
SOGo is a groupware server built around OpenGroupware.org (OGo) and
the SOPE application server.  It focuses on scalability.

The Inverse edition of this project has many feature enhancements:
- CalDAV and GroupDAV compliance
- full handling of vCard as well as vCalendar/iCalendar formats
- support for folder sharing and ACLs

The Web interface has been rewritten in an AJAX fashion to provided a faster
UI for the users, consistency in look and feel with the Mozilla applications,
and to reduce the load of the transactions on the server.

%package -n sogo-tool
Summary:      Command-line toolsuite for SOGo
Group:        Productivity/Groupware
Requires:     sogo = %{sogo_version}
AutoReqProv:  off

%description -n sogo-tool
Administrative tool for SOGo that provides the following internal commands:
  backup          -- backup user folders
  restore         -- restore user folders
  remove-doubles  -- remove duplicate contacts from the user addressbooks
  check-doubles   -- list user addressbooks with duplicate contacts

%package -n sogo-slapd-sockd
Summary:      SOGo backend for slapd and back-sock
Group:        Productivity/Groupware
AutoReqProv:  off

%description -n sogo-slapd-sockd
SOGo backend for slapd and back-sock, enabling access to private addressbooks
via LDAP.

%package -n sogo-ealarms-notify
Summary:      SOGo utility for executing email alarms
Group:        Productivity/Groupware
AutoReqProv:  off

%description -n sogo-ealarms-notify
SOGo utility executed each minute via a cronjob for executing email alarms.

%package -n sogo-activesync
Summary:      SOGo module to handle ActiveSync requests
Group:        Productivity/Groupware
Requires:     libwbxml, sogo = %{sogo_version}
BuildRequires: libwbxml-devel
AutoReqProv:  off

%description -n sogo-activesync
SOGo module to handle ActiveSync requests

%package -n sogo-devel
Summary:      Development headers and libraries for SOGo
Group:        Development/Libraries/Objective C
AutoReqProv:  off

%description -n sogo-devel
Development headers and libraries for SOGo. Needed to create modules.

%package -n sope%{sope_major_version}%{sope_minor_version}-gdl1-contentstore
Summary:      Storage backend for folder abstraction.
Group:        Development/Libraries/Objective C
Requires:     sope%{sope_major_version}%{sope_minor_version}-gdl1
AutoReqProv:  off

%description -n sope%{sope_major_version}%{sope_minor_version}-gdl1-contentstore
The storage backend implements the "low level" folder abstraction, which is
basically an arbitary "BLOB" containing some document.

SOPE is a framework for developing web applications and services. The
name "SOPE" (SKYRiX Object Publishing Environment) is inspired by ZOPE.

%package -n sope%{sope_major_version}%{sope_minor_version}-gdl1-contentstore-devel
Summary:      Development files for the GNUstep database libraries
Group:        Development/Libraries/Objective C
Requires:     sope%{sope_major_version}%{sope_minor_version}-gdl1
AutoReqProv:  off

%description -n sope%{sope_major_version}%{sope_minor_version}-gdl1-contentstore-devel
This package contains the header files for SOPE's GDLContentStore library.

SOPE is a framework for developing web applications and services. The
name "SOPE" (SKYRiX Object Publishing Environment) is inspired by ZOPE.

%package -n sope%{sope_major_version}%{sope_minor_version}-cards
Summary:      SOPE versit parsing library for iCal and VCard formats
Group:        Development/Libraries/Objective C
AutoReqProv:  off

%description -n sope%{sope_major_version}%{sope_minor_version}-cards
SOPE versit parsing library for iCal and VCard formats

%package -n sope%{sope_major_version}%{sope_minor_version}-cards-devel
Summary:      SOPE versit parsing library for iCal and VCard formats
Group:        Development/Libraries/Objective C
Requires:     sope%{sope_major_version}%{sope_minor_version}-cards
AutoReqProv:  off

%description -n sope%{sope_major_version}%{sope_minor_version}-cards-devel
SOPE versit parsing library for iCal and VCard formats

#%if %{sogo_major_version} >= 2
#%package openchange-backend
#Summary:      SOGo backend for OpenChange
#Group:        Productivity/Groupware
#AutoReqProv:  off

#%description openchange-backend
#SOGo backend for OpenChange
#%endif

########################################
%prep
rm -fr ${RPM_BUILD_ROOT}
%setup -q -n SOGo-%{sogo_version}
#%patch0 -p0
#%patch1 -p0

# small tweak to the python script for RHEL5
# if hex(sys.hexversion) < 0x02060000
#%if %{python_sys_pyver} < 33947648
#  sed -i 's!/usr/bin/env python!/usr/bin/env python2.6!' Scripts/openchange_user_cleanup
#%endif


# ****************************** build ********************************
%build
. /usr/lib64/GNUstep/Makefiles/GNUstep.sh
./configure %saml2_cfg_opts

case %{_target_platform} in
ppc64-*) 
  cc="gcc -m64";
  ldflags="-m64";; 
*)
  cc="gcc";
  ldflags="";; 
esac

make CC="$cc" LDFLAGS="$ldflags" messages=yes

# OpenChange
%if %{sogo_major_version} >= 2
(cd OpenChange; \
 LD_LIBRARY_PATH=../SOPE/NGCards/obj:../SOPE/GDLContentStore/obj \
 make GNUSTEP_INSTALLATION_DOMAIN=SYSTEM )
%endif

# ****************************** install ******************************
%install

case %{_target_platform} in
ppc64-*)
  cc="gcc -m64";
  ldflags="-m64";;
*)
  cc="gcc";
  ldflags="";;
esac

make DESTDIR=${RPM_BUILD_ROOT} \
     GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \
     CC="$cc" LDFLAGS="$ldflags" \
     install
%{?!el7:install -d ${RPM_BUILD_ROOT}/etc/init.d}
%{?el7:install -d ${RPM_BUILD_ROOT}/usr/lib/systemd/system}
install -d ${RPM_BUILD_ROOT}/etc/cron.d
install -d ${RPM_BUILD_ROOT}/etc/cron.daily
install -d ${RPM_BUILD_ROOT}/etc/logrotate.d
install -d ${RPM_BUILD_ROOT}/etc/sysconfig
install -d ${RPM_BUILD_ROOT}/etc/httpd/conf.d
install -d ${RPM_BUILD_ROOT}/usr/sbin
install -d ${RPM_BUILD_ROOT}/var/lib/sogo
install -d ${RPM_BUILD_ROOT}/var/log/sogo
%{?!el7:install -d ${RPM_BUILD_ROOT}/var/run/sogo}
install -d ${RPM_BUILD_ROOT}/var/spool/sogo
#install -d -m 750 -o %sogo_user -g %sogo_user ${RPM_BUILD_ROOT}/etc/sogo
#install -m 640 -o %sogo_user -g %sogo_user Scripts/sogo.conf ${RPM_BUILD_ROOT}/etc/sogo/
# sogo user doesn't exist yet ...
install -d -m 750 ${RPM_BUILD_ROOT}/etc/sogo
install -m 640 Scripts/sogo.conf ${RPM_BUILD_ROOT}/etc/sogo/
install -m 755 Scripts/openchange_user_cleanup ${RPM_BUILD_ROOT}/%{_sbindir}
cat Apache/SOGo.conf | sed -e "s@/lib/@/%{_lib}/@g" > ${RPM_BUILD_ROOT}/etc/httpd/conf.d/SOGo.conf
install -m 600 Scripts/sogo.cron ${RPM_BUILD_ROOT}/etc/cron.d/sogo
cp Scripts/tmpwatch ${RPM_BUILD_ROOT}/etc/cron.daily/sogo-tmpwatch
chmod 755 ${RPM_BUILD_ROOT}/etc/cron.daily/sogo-tmpwatch
cp Scripts/logrotate ${RPM_BUILD_ROOT}/etc/logrotate.d/sogo
%{?!el7:cp Scripts/sogo-init.d-redhat ${RPM_BUILD_ROOT}/etc/init.d/sogod}
%{?!el7:chmod 755 ${RPM_BUILD_ROOT}/etc/init.d/sogod}
%{?el7:cp %{SOURCE1} ${RPM_BUILD_ROOT}/usr/lib/systemd/system/sogod.service}
%{?el7:chmod 755 ${RPM_BUILD_ROOT}/usr/lib/systemd/system/sogod.service}
cp Scripts/sogo-default ${RPM_BUILD_ROOT}/etc/sysconfig/sogo
rm -rf ${RPM_BUILD_ROOT}%{_bindir}/test_quick_extract

# OpenChange
%if %{sogo_major_version} >= 2
(cd OpenChange; \
 LD_LIBRARY_PATH=${RPM_BUILD_ROOT}%{_libdir} \
 make DESTDIR=${RPM_BUILD_ROOT} \
     GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \
      CC="$cc" LDFLAGS="$ldflags" \
   install)
%endif

# ActiveSync
(cd ActiveSync; \
 LD_LIBRARY_PATH=${RPM_BUILD_ROOT}%{_libdir} \
 make DESTDIR=${RPM_BUILD_ROOT} \
     GNUSTEP_INSTALLATION_DOMAIN=SYSTEM \
      CC="$cc" LDFLAGS="$ldflags" \
   install)

# ****************************** clean ********************************
%clean
rm -fr ${RPM_BUILD_ROOT}

# ****************************** files ********************************
%files -n sogo
%defattr(-,root,root,-)

%{?!el7:/etc/init.d/sogod}
%{?el7:/usr/lib/systemd/system/sogod.service}
/etc/cron.daily/sogo-tmpwatch
%dir %attr(0700, %sogo_user, %sogo_user) %{_var}/lib/sogo
%dir %attr(0700, %sogo_user, %sogo_user) %{_var}/log/sogo
%{?!el7:%dir %attr(0755, %sogo_user, %sogo_user) %{_var}/run/sogo}
%dir %attr(0700, %sogo_user, %sogo_user) %{_var}/spool/sogo
%dir %attr(0750, root, %sogo_user) %{_sysconfdir}/sogo
%{_sbindir}/sogod
%{_sbindir}/openchange_user_cleanup
%{_libdir}/libSOGo.so.*
%{_libdir}/libSOGoUI.so.*
%{_libdir}/GNUstep/SOGo/AdministrationUI.SOGo
%{_libdir}/GNUstep/SOGo/Appointments.SOGo
%{_libdir}/GNUstep/SOGo/CommonUI.SOGo
%{_libdir}/GNUstep/SOGo/Contacts.SOGo
%{_libdir}/GNUstep/SOGo/ContactsUI.SOGo
%{_libdir}/GNUstep/SOGo/MailPartViewers.SOGo
%{_libdir}/GNUstep/SOGo/Mailer.SOGo
%{_libdir}/GNUstep/SOGo/MailerUI.SOGo
%{_libdir}/GNUstep/SOGo/MainUI.SOGo
%{_libdir}/GNUstep/SOGo/PreferencesUI.SOGo
%{_libdir}/GNUstep/SOGo/SchedulerUI.SOGo

%{_libdir}/GNUstep/Frameworks/SOGo.framework/Resources
%{_libdir}/GNUstep/Frameworks/SOGo.framework/Versions/%{sogo_major_version}/libSOGo.so.*
%{_libdir}/GNUstep/Frameworks/SOGo.framework/Versions/%{sogo_major_version}/Resources
%{_libdir}/GNUstep/Frameworks/SOGo.framework/Versions/Current
%{_libdir}/GNUstep/SOGo/Templates
%{_libdir}/GNUstep/SOGo/WebServerResources
%{_libdir}/GNUstep/OCSTypeModels
%{_libdir}/GNUstep/WOxElemBuilders-*

%config(noreplace) %attr(0640, root, %sogo_user) %{_sysconfdir}/sogo/sogo.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/sogo
%config(noreplace) %{_sysconfdir}/cron.d/sogo
%config(noreplace) %{_sysconfdir}/httpd/conf.d/SOGo.conf
%config(noreplace) %{_sysconfdir}/sysconfig/sogo
%doc ChangeLog NEWS Scripts/*sh Scripts/updates.php Apache/SOGo-apple-ab.conf

%files -n sogo-tool
%{_sbindir}/sogo-tool

%files -n sogo-ealarms-notify
%{_sbindir}/sogo-ealarms-notify

%files -n sogo-slapd-sockd
%{_sbindir}/sogo-slapd-sockd

%files -n sogo-activesync
%{_libdir}/GNUstep/SOGo/ActiveSync.SOGo
%doc ActiveSync/LICENSE ActiveSync/README

%files -n sogo-devel
%{_includedir}/SOGo
%{_includedir}/SOGoUI
%{_libdir}/libSOGo.so
%{_libdir}/libSOGoUI.so
%{_libdir}/GNUstep/Frameworks/SOGo.framework/Headers
%{_libdir}/GNUstep/Frameworks/SOGo.framework/libSOGo.so
%{_libdir}/GNUstep/Frameworks/SOGo.framework/SOGo
%{_libdir}/GNUstep/Frameworks/SOGo.framework/Versions/%{sogo_major_version}/Headers
%{_libdir}/GNUstep/Frameworks/SOGo.framework/Versions/%{sogo_major_version}/libSOGo.so
%{_libdir}/GNUstep/Frameworks/SOGo.framework/Versions/%{sogo_major_version}/SOGo

%files -n sope%{sope_major_version}%{sope_minor_version}-gdl1-contentstore
%defattr(-,root,root,-)
%{_libdir}/libGDLContentStore*.so.*

%files -n sope%{sope_major_version}%{sope_minor_version}-gdl1-contentstore-devel
%{_includedir}/GDLContentStore
%{_libdir}/libGDLContentStore*.so

%files -n sope%{sope_major_version}%{sope_minor_version}-cards
%{_libdir}/libNGCards.so.*
%{_libdir}/GNUstep/SaxDrivers-*
%{_libdir}/GNUstep/SaxMappings
%{_libdir}/GNUstep/Libraries/Resources/NGCards

%files -n sope%{sope_major_version}%{sope_minor_version}-cards-devel
%{_includedir}/NGCards
%{_libdir}/libNGCards.so

#%if %{sogo_major_version} >= 2
#%files openchange-backend
#%defattr(-,root,root,-)
#%{_libdir}/GNUstep/SOGo/*.MAPIStore
#%{_libdir}/mapistore_backends/*
#%endif

# **************************** pkgscripts *****************************
%pre
if ! id %sogo_user >& /dev/null; then
  /usr/sbin/useradd -d %{_var}/lib/sogo -c "SOGo daemon" -s /sbin/nologin -M -r %sogo_user
fi

%post
# update timestamp on imgs,css,js to let apache know the files changed
find %{_libdir}/GNUstep/SOGo/WebServerResources  -exec touch {} \;
%{?!el7:/sbin/chkconfig --add sogod}
%{?!el7:/etc/init.d/sogod condrestart  >&/dev/null}
%{?el7:/bin/systemctl enable sogod.service}
%{?el7:/bin/systemctl try-restart sogod.service}

%preun
if [ "$1" == "0" ]
then
  %{?!el7:/sbin/chkconfig --del sogod}
  %{?!el7:/sbin/service sogod stop > /dev/null 2>&1}
  %{?el7:/bin/systemctl stop sogod.service}
  %{?el7:/bin/systemctl disable sogod.service}
fi

%postun
if test "$1" = "0"
then
  /usr/sbin/userdel %sogo_user
  /usr/sbin/groupdel %sogo_user > /dev/null 2>&1
  %{?!el7:/bin/rm -rf %{_var}/run/sogo}
  /bin/rm -rf %{_var}/spool/sogo
  # not removing /var/lib/sogo to keep .GNUstepDefaults
fi

# ********************************* changelog *************************
%changelog
* Sun Sep 14 2014 Gilles Gagniard <
 >
- Fix build on el7, disable openchange, and fix sogo user handling
- Add all missing build and runtime dependencies
- Replace old sysv init by shiny new systemd service on el7

* Wed Jan 15 2014 Jean Raby <
 >
- New package: sogo-activesync
- explicitly list all *.SOGo modules in sogo package
- added dependency on sogo = %version for sogo-tool

* Thu Apr 17 2013 Jean Raby <
 >
- Install openchange_user_cleanup in sbindir instead of doc

* Wed Apr 10 2013 Jean Raby <
 >
- use %sogo_user instead of 'sogo'
- install a sample sogo.conf in /etc/sogo

* Tue Jan 22 2013 Jean Raby <
 >
- Create the sogo user as a system user
- Use %attr() to set directory permissions instead of chown/chmod

* Mon Nov 12 2012 Jean Raby <
 >
- Add missing dependency on lasso and lasso-devel

* Mon Nov 05 2012 Jean Raby <
 >
- Disable saml2 on rhel5 - glib2 too old

* Fri Nov 02 2012 Jean Raby <
 >
- Enable saml2

* Tue Aug 28 2012 Jean Raby <
 >
- Add openchange_cleanup.py and tweak it to work on RHEL5

* Tue Jul 31 2012 Jean Raby <
 >
- treat logrotate file as a config file

* Fri May 24 2012 Jean Raby <
 >
- %post: restart sogo if it was running before rpm install

* Fri Mar 16 2012 Jean Raby <
 >
- %post: update timestamp on imgs,css,js to let apache know the files changed

* Fri Feb 16 2012 Jean Raby <
 >
- Use globbing to include all sql upgrade scripts instead of listing them all

* Tue Jan 10 2012 Jean Raby <
 >
- /etc/cron.d/sogo

* Thu Oct 27 2011 Wolfgang Sourdeau <
 >
- make build of sogo-openchange-backend conditional to sogo_version >= 2

* Fri Oct 14 2011 Wolfgang Sourdeau <
 >
- adapted to gnustep-make 2.6
- added sogo-openchange-backend

* Tue Sep 28 2010 Wolfgang Sourdeau <
 >
- removed "README" from documentation

* Fri Aug 20 2010 Wolfgang Sourdeau <
 >
- added sogo-ealarms-notify package

* Tue Apr 06 2010 Wolfgang Sourdeau <
 >
- added sogo-slapd-sockd package

* Thu Jul 31 2008 Wolfgang Sourdeau <
 >
- added dependencies on sopeXY-appserver, -core, -gdl1-contentstore and -ldap

* Wed May 21 2008 Wolfgang Sourdeau <
 >
- removed installation of template and resource files, since it is now done by the upstream package

* Tue Oct 4 2007 Francis Lachapelle <
 >
- added package sope-gdl1-contentstore

* Wed Jul 18 2007 Wolfgang Sourdeau <
 >
- initial build



Archive powered by MHonArc 2.6.18.

Top of page