iFolderPackaging
Page to track the work done @ FreeCode to build iFolder in a sane way under Ubuntu. Later, packaging iFolder for debian/ubuntu should be trivial.
Questions? Contact Rubén Romero or Egil Möller
General info about Mono/.NET
.NET libraries are DRMish signed. To create a keypair or sign a library you're supposed to use the sn.exe utility, that crashes. Libraries can also be signed after compilation using http://www.eggheadcafe.com/community/aspnet/2/10011514/strong-name.aspx but you still need a keypair (somefile.snk) to do that. Go to a windows machien and get it done
iFolder 3.7
To build 3.7 by hand
Note: Ruibon has packaged the 3.7 server the cludgy way, with all deps as binary blobs in the source! Ick!
There is a page about compiling iFolder on Ubuntu, which describes a very much simplified process that doesn't really work. However, it's a good starting point: https://help.ubuntu.com/community/iFolderEnterpriseServer
Building the server
Extra build-deps:
apt-get install build-essential autoconf automake libtool apt-get install libmono-system-data2.0-cil libmono-security2.0-cil libmono-system-web2.0-cil libmono-system-runtime2.0-cil gsoap liblog4net1.2-cil libmono-ldap2.0-cil libflaim-dev uuid-dev libxml2-dev libmono-winforms2.0-cil
Run deps:
apt-get install libapache2-mod-mono mono-apache-server2
About different compiler versions for mono. Environment.OSVersion.Platform values fix according to http://lists.ximian.com/pipermail/mono-list/2005-May/026892.html
svn co https://forgesvn1.novell.com/svn/simias/trunk simias cd simias cp src/core/SimiasClient/Makefile.am src/core/SimiasClient/Makefile.am.orig grep -v "wsdl1 -nologo -out:SimiasService.c" src/core/SimiasClient/Makefile.am.orig | sed -e "s+wsdl -nologo -out:SimiasService2.cs+wsdl2 -nologo -out:SimiasService2.cs+g" > src/core/SimiasClient/Makefile.am sed -i -e "s+\$(GSOAP_PATH)/wsdl2h+wsdl2h+g" -e "s+\$(GSOAP_PATH)/soapcpp2+soapcpp2+g" -e "s+\$(GSOAP_PATH)/stdsoap2.c+/usr/include/gsoap/stdsoap2.c+g" -e "s+\$(GSOAP_PATH)/stdsoap2.h+/usr/include/stdsoap2.h+g" src/core/libsimias/Makefile.am sed -i -e "s+MONO_WEBSERVER_PATH = dependencies/external/Mono.WebServer+MONO_WEBSERVER_PATH = /usr/lib/mono/2.0+g" -e "s+Mono.WebServer.dll+Mono.WebServer2.dll+g" src/core/SimiasApp/Makefile.am grep -l "MONO_PATH=@webbindir@:@bindir@" $(find . -name "*.in") | while read name; do sed -i -e "s+MONO_PATH=@webbindir@:@bindir@+MONO_PATH=@webbindir@:/usr/lib/mono/2.0+g" $name; done grep -l "MONO_PATH=@_webbindir_@:@_bindir_@" $(find . -name "*.in") | while read name; do sed -i -e "s+MONO_PATH=@_webbindir_@:@_bindir_@+MONO_PATH=@_webbindir_@:/usr/lib/mono/2.0+g" $name; done sed -i -e "s+AC_CHECK_PROG(RESGEN, resgen, resgen)+AC_CHECK_PROG(RESGEN, resgen, resgen, resgen2)+g" configure.in sed -i -e "s+webPath =( MachineArch+string webPath =( MachineArch+g" src/server/setup/SimiasServerSetup.cs sed -i -e "s+((int)Environment.OSVersion.Platform == 128)+(((int)Environment.OSVersion.Platform == 128) || ((int)Environment.OSVersion.Platform == 4))+g" src/core/SimiasClient/MyEnvironment.cs export CSC_LIBFLAG="/target:library" export WSDL=wsdl2 export CSC2="gmcs2 /d:MONO /d:MONONATIVE" export CSC="gmcs2 /d:MONO /d:MONONATIVE" export MONO=mono ./autogen.sh --prefix=/usr make sudo make install
Installing the server
cd /usr/bin; ln -s gmcs2 gmcs # Needed to avoid http://lists.ximian.com/pipermail/mono-bugs/2008-October/080532.html mkdir -p /var/www/.config/.mono/keystore chown -R www-data:www-data /var/www/.config cp /usr/etc/simias/apache/default/ifolder_* /etc/apache2/conf.d emacs /etc/apache2/conf.d/ifolder* /etc/apache2/conf.d/simias*
Note: IFolder 3.7 only works with HTTPS. Warning: The error message shown in the client if you don't use SSL is very cryptic.
Building the client by hand
Extra build-deps:
simias libgtk2.0-dev
svn co https://forgesvn1.novell.com/svn/ifolder/trunk ifolder cd ifolder/ifolder sed -i -e "s+\$(GSOAP_PATH)/wsdl2h+wsdl2h+g" -e "s+\$(GSOAP_PATH)/soapcpp2+soapcpp2+g" -e "s+\$(GSOAP_PATH)/stdsoap2.c+/usr/include/gsoap/stdsoap2.c+g" -e "s+\$(GSOAP_PATH)/stdsoap2.h+/usr/include/stdsoap2.h+g" src/common/libifolder/Makefile.am sed -i -e "s+mcs+\$(CSC)+g" src/UI/Linux/TrayIcon/Makefile.am sed -i -e "s+\(# Configure files\)+AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt)\n\1+g" configure.in msguniq --use-first src/UI/Linux/LinuxClient/po/en.po > src/UI/Linux/LinuxClient/po/en.po.new; mv src/UI/Linux/LinuxClient/po/en.po.new src/UI/Linux/LinuxClient/po/en.po export CSC_LIBFLAG="/target:library" export WSDL=wsdl2 export CSC2="gmcs2 /d:MONO /d:MONONATIVE" export CSC="gmcs2 /d:MONO /d:MONONATIVE" export MONO=mono ./autogen.sh --prefix=/usr make sudo make install
Installing the client
Dependencies:
apt-get install libeel2-2
Building dependencies
Not really needed, as all seems to be packaged already, but this one wasn't in my old Ubuntu, so I compiled it by hand:
Building CsharpLDAP by hand
Building: The URL is snarfed from http://forge.novell.com/modules/xfcontent/file.php/ldapcsharp/ldapcsharp/CsharpLDAP-v2.1.10/CsharpLDAP-v2.1.10.zip
wget http://forge.novell.com/modules/xfcontent/private.php/ldapcsharp/ldapcsharp/CsharpLDAP-v2.1.10/CsharpLDAP-v2.1.10.zip unzip CsharpLDAP-v2.1.10.zip cd CsharpLDAP mv Novell.Directory.LDAP Novell.Directory.Ldap recode text/crlf..text build.sh recode text/crlf..text Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/ResultCodeMessages.txt sed -e 's+\\"+"+g' -i Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/ResultCodeMessages.txt recode text/crlf..text Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/ExceptionMessages.txt sed -e 's+\\"+"+g' -i Novell.Directory.Ldap/Novell.Directory.Ldap.Utilclass/ExceptionMessages.txt sed -i -e "s+assembly: AssemblyDelaySign(false)+assembly: AssemblyKeyFile("Novell.Directory.Ldap.snk")+g" Novell.Directory.Ldap/Novell.Directory.Ldap/AssemblyInfo.cs sed -i -e "s+^mcs+gmcs2+g" -e "s+which mcs+which gmcs2+g" -e "s+resgen+resgen2+g" build.sh chmod ugo+x ./build.sh
Copy your .snk keypair file into lib/Novell.Directory.Ldap.snk. If you have no other, you can use ifolder.snk. Then continue building
./build.sh
Installing:
sudo cp lib/Novell.Directory.Ldap.dll /usr/lib/mono/2.0/ sudo gacutil /i lib/Novell.Directory.Ldap.dll
iFolder 3.6
Rui Boon made a package for this. Awesome work man!
To install Ruibons 3.6 version
This package and PPA repository works for Ubuntu 8.04 LTS Hardy Heron under x86. No 64 bit support!
- sources.list:
deb http://ppa.launchpad.net/ruiboon/ubuntu hardy main deb-src http://ppa.launchpad.net/ruiboon/ubuntu hardy main
Server
apt-get install mono-apache-server libapache2-mod-mono simias ifolder3 libsimias0 libsimias-dev mkdir /var/www/.config/.mono/keypairs/ chown www-data:www-data /var/www/.config/.mono/keypairs/ simias-server-setup chown www-data:www-data /home/srv/simias -R
To set up webaccess and admin web:
cd /etc/apache2/conf.d cat simias.conf rm simias.conf cp /etc/simias/apache/default/* . emacs simias* ifolder*
NOTE: Don't set cn=admin as SIMIAS admin!!! Simias admin and SimiasProxy should be new (previously unexistend) users.
Client
apt-get install ifolder3 mono-xsp
You also need to install the build deps as Ruibon has forgotten some deps somewhere along the path...
apt-get build-dep simias ifolder3
iFolderPackaging (last edited 2011-05-13 13:47:13 by business-89-133-214-82)